|
|
Компьютеры - MSP430 - Система команд MSP43030 июня 2011
Оглавление: 1. MSP430 2. Система команд MSP430 3. Мнемоника эмулируемых команд 4. Компиляторы и ассемблеры
MSP430 имеет фоннеймановскую архитектуру, с единым адресным пространством для команд и данных. Память может адресоваться как побайтово, так и пословно. Порядок хранения 16-разрядных слов little-endian.
Процессор содержит 16 16-разрядных ортогональных регистров. Регистр R0 используется как программный указатель, регистр R1 как указатель стека, регистр R2 как регистр статуса, а R3 как специальный регистр именуемый генератор констант, R2 также может использоваться в качестве генератора констант. Генератор констант используется для сокращения общей длины команды вследствие неявного представления константы в коде операции. Регистры с R4 по R15 используются как регистры общего назначения.
Набор инструкций очень простой и представлен 27-ю инструкциями, 24-я эмулированными инструкциями. Инструкции имеют как 8-битную, так и 16-битную форму обработки операндов. Бит B/W управляет этим признаком.
MSP430 система команд
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Команда |
0 |
0 |
0 |
1 |
0 |
0 |
opcode |
B/W |
As |
register |
Однооперандные команды |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
B/W |
As |
register |
RRC Вращение вправо через перенос |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
As |
register |
SWPB Обмен байтов |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
B/W |
As |
register |
RRA Вращение вправо арифметическое |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
As |
register |
SXT Расширение знака байта до слова |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
B/W |
As |
register |
PUSH Опустить операнд в стек |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
As |
register |
CALL Вызов подпрограммы; сохранить PC в стеке и загрузить PC новым значением |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
RETI Возврат из прерывания; Извлечь SR и PC из стека |
0 |
0 |
1 |
условие |
10-бит знаковое смещение |
Условный переход; PC = PC + 2×offset |
0 |
0 |
1 |
0 |
0 |
0 |
10-бит знаковое смещение |
JNE/JNZ Переход если не_равно/не_ноль |
0 |
0 |
1 |
0 |
0 |
1 |
10-бит знаковое смещение |
JEQ/JZ Переход если равно/ноль |
0 |
0 |
1 |
0 |
1 |
0 |
10-бит знаковое смещение |
JNC/JLO Переход если не_перенос/меньший |
0 |
0 |
1 |
0 |
1 |
1 |
10-бит знаковое смещение |
JC/JHS Переход если перенос/больший |
0 |
0 |
1 |
1 |
0 |
0 |
10-бит знаковое смещение |
JN Переход если отрицательный |
0 |
0 |
1 |
1 |
0 |
1 |
10-бит знаковое смещение |
JGE Переход если больше_или_равно |
0 |
0 |
1 |
1 |
1 |
0 |
10-бит знаковое смещение |
JL Переход если больше |
0 |
0 |
1 |
1 |
1 |
1 |
10-бит знаковое смещение |
JMP Переход |
opcode |
source |
Ad |
B/W |
As |
destination |
Двух операндная арифметика |
0 |
1 |
0 |
0 |
source |
Ad |
B/W |
As |
destination |
MOV Переслать источник в приемник |
0 |
1 |
0 |
1 |
source |
Ad |
B/W |
As |
destination |
ADD Прибавить источник к приемнику |
0 |
1 |
1 |
0 |
source |
Ad |
B/W |
As |
destination |
ADDC Прибавить источник_и_перенос к приемнику |
0 |
1 |
1 |
1 |
source |
Ad |
B/W |
As |
destination |
SUBC Вычесть источник из приемника |
1 |
0 |
0 |
0 |
source |
Ad |
B/W |
As |
destination |
SUB Вычесть источник из приемник |
1 |
0 |
0 |
1 |
source |
Ad |
B/W |
As |
destination |
CMP Сравнить источник с приемником |
1 |
0 |
1 |
0 |
source |
Ad |
B/W |
As |
destination |
DADD Decimal Десятичное сложение источника и приемника |
1 |
0 |
1 |
1 |
source |
Ad |
B/W |
As |
destination |
BIT Проверка битов источника и приемника |
1 |
1 |
0 |
0 |
source |
Ad |
B/W |
As |
destination |
BIC Битовая очистка |
1 |
1 |
0 |
1 |
source |
Ad |
B/W |
As |
destination |
BIS Битовая установка |
1 |
1 |
1 |
0 |
source |
Ad |
B/W |
As |
destination |
XOR Исключающее или источника с приемником |
1 |
1 |
1 |
1 |
source |
Ad |
B/W |
As |
destination |
AND Логический AND источника с приемником |
Все инструкции 16-ти битные. 4 способа адресации операнда, определены в 2-х битах как As поле.
Это Регистровый, индексный, косвенный-регистровый, косвенно-регистровый с пост декрементом. Поле Ad определяет два способа адресации Регистровый и индексный.
MSP430 Режим адресации
As |
Регистр |
Синтаксис |
Описание |
00 |
n |
Rn |
Регистровый. Операнд содержимое одного из регистров из Rn. |
01 |
n |
x |
Индексный. Операнд находится в памяти по адресу Rn+x.
X-слово находится после текущей команды.
|
10 |
n |
@Rn |
Косвенный регистровый. Операнд находится в памяти по адресу, который содержится в регистре Rn. |
11 |
n |
@Rn+ |
Косвенный регистровый с автоинкрементом. В зависимости от значения разряда B/W значение регистра Rn увеличивается после выполнения операции на 1 или 2. |
Режимы адресации при использовании R0 |
01 |
0 |
LABEL |
Относительный. x Операнд в памяти по адресу PC+x. |
11 |
0 |
#x |
Непосредственный. @PC+ Адрес операнда из х-слова находящегося после текущей команды. |
Использование R2 и R3, специальный способ декодирования |
01 |
2 |
&LABEL |
Абсолютный. Операнд в памяти по адресу взятому из x. |
10 |
2 |
#4 |
Константа 4. |
11 |
2 |
#8 |
Константа 8. |
00 |
3 |
#0 |
Константа 0. |
01 |
3 |
#1 |
Константа 1. при байтовых операциях. |
10 |
3 |
#2 |
Константа 2. |
11 |
3 |
#-1 |
Константа −1 или 0xFFFF. |
Просмотров: 6176
|