Интернет магазин китайских планшетных компьютеров



Компьютеры - MSP430 - Система команд MSP430

30 июня 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.


Просмотров: 6024


<<< Intel 8051
SiRFstar III >>>