Таненбаум Э.- Архитектура компьютера. стр.309
Таблица 5.11. Некоторые моделируемые команды UltraSPARC III
Команда
|
Описание
|
MOV SRC, DST
|
Выполнение команды OR с операндами SRC и GO и сохранение
|
|
результата в DST
|
CMPSRC1, SRC2
|
Вычитание SRC2 из SRC1 (команда SUBCC) и сохранение результата в GO
|
TST SRC
|
Выполнение команды ORCC с операндами SRC и GO и сохранение
|
|
результата в GO
|
NOT DST
|
Выполнение команды XNOR с операндами DST и GO
|
NEG DST
|
Вычитание SRC2 из SRC1 (команда SUBCC) и сохранение результата в GO
|
INC DST
|
Прибавление 1 к DST (непосредственный операнд) — команда ADD
|
DEC DST
|
Вычитание 1 из DST (непосредственный операнд) — команда SUB
|
CLR DST
|
Выполнение команды OR с операндами GO и GO и сохранение
|
|
результата в DST
|
NOP
|
Выполнение команды SETHI с операндами GO и 0
|
RET
|
Выполнение команды JMPL % 17 + 8, %G0
|
Команды 8051
Набор команд 8051 очень прост. Все они представлены в табл. 5.12. В каждой строке таблицы указан мнемонический код, краткое описание и режимы адресации для источников или приемников (входных или выходных регистров), обозначенных, соответственно, как SCR или EXT. Вполне объяснимо разнообразие команд M0V для перемещения данных между сумматором (АСС), регистрами и памятью. Также предусмотрены команды помещения элементов в стек и их выталкивания из стека. Указатель стека устанавливается в специальном регистре. Память в диапазоне выше адреса 256 всегда является внешней, так как объем встроенной памяти 8051 равен 128 байт, а 8052 — 256 байт. Обращение к внешней памяти осуществляется только через 16-разрядный регистр DPTR. Группу команд перемещения дополняют разнообразные команды перестановки элементов регистров.
В микросхеме 8051 реализованы простые арифметические команды сложения, вычитания, умножения и деления, причем две последние работают со строго определенными регистрами. Допустимы и широко применяются команды положительного и отрицательного приращения. Кроме того, предусмотрены команды логических вычислений и циклического сдвига.
Далее в табл. 5.12 указаны побитовые операции. Например:
SETB 43
Таблица 5.12. Набор команд процессора 8051
Ком.
|
Описание
|
АСС
|
Per.
|
Неп.
|
@R
|
# С Бит
|
MOV
|
Перемещение из SCR в ACC
|
|
Да
|
Да
|
Да
|
Да
|
MOV
|
Перемещение из SCR в регистр
|
Да
|
|
Да
|
|
Да
|
MOV
|
Перемещение из SCR в память
|
Да
|
Да
|
Да
|
Да
|
Да
|
MOV
|
Перемещение из SCR в ОЗУ через регистр
|
Да
|
|
Да
|
|
Да
|
MOV
|
Перемещение 16-разрядной константы в DPTR
|
|
|
|
|
|
MOVC
|
Перемещение кода в АСС со смещением от DPTR
|
|
|
|
|
|
MOVC
|
Перемещение кода в АСС со смещением от PC
|
|
|
|
|
|
MOVX
|
Перемещение байта из внешнего ОЗУ в АСС
|
|
|
|
Да
|
|
MOVX
|
Перемещение байта из внешнего ОЗУ в АСС @DPTR
|
|
|
|
|
|
MOVX
|
Перемещение байта из АСС во внешнее ОЗУ
|
|
|
|
Да
|
|
MOVX
|
Перемещение байта и АСС @DPTR во внешнее ОЗУ
|
|
|
|
|
|
PUSH
|
Помещение SCR байта в стек
|
|
|
Да
|
|
|
POP
|
Выталкивание байта из стека в EXT
|
|
|
Да
|
|
|
хсн
|
Обмен данными между АСС и EXT
|
Да
|
|
Да
|
Да
|
|
XCHD
|
Обмен цифрой младшего разряда между АСС иЕХТ
|
|
|
Да
|
|
|
SWAP
|
Перестановка полубайтов ЕХТ
|
Да
|
|
|
|
|
ADD
|
Прибавление SCR к АСС
|
|
Да
|
Да
|
Да
|
Да
|
ADDC
|
Прибавление SCR к АСС с переносом
|
|
Да
|
Да
|
Да
|
Да
|
SUBB
|
Вычитание SCR из АСС с займом
|
|
Да
|
Да
|
Да
|
Да
|
INC
|
Положительное приращение ЕХТ
|
Да
|
Да
|
Да
|
Да
|
|
DEC
|
Отрицательное приращение ЕХТ
|
Да
|
Да
|
Да
|
Да
|
|
INC
|
DPTR
|
|
|
|
|
|
MUL
|
Умножение
|
|
|
|
|
|
DIV
|
Деление
|
|
|
|
|
|
DA
|
Десятичная коррекция ЕХТ
|
Да
|
|
|
|
|
ANL
|
SCR И АСС
|
|
Да
|
Да
|
Да
|
Да
|
ANL
|
АСС И ЕХТ
|
|
|
Да
|
|
|
ANL
|
Непосредственный операнд И ЕХТ
|
|
|
Да
|
|
|
ORL
|
SCR ИЛИ АСС
|
|
Да
|
Да
|
Да
|
Да
|
ORL
|
АСС ИЛИ ЕХТ
|
|
|
Да
|
|
|
ORL
|
Непосредственный операнд ИЛИ ЕХТ
|
|
|
Да
|
|
|
XRL
|
SCR ИСКЛЮЧАЮЩЕЕ ИЛИ АСС
|
|
Да
|
Да
|
Да
|
Да
|
XRL
|
АСС ИСКЛЮЧАЮЩЕЕ ИЛИ ЕХТ
|
|
|
Да
|
|
|
XRL
|
Непосредственный операнд ИСКЛЮЧАЮЩЕЕ ИЛИ ЕХТ
|
|
|
Да
|
|
|
CLR
|
Сброс ЕХТ
|
Да
|
|
|
|
|
Ком.
CPL
|
Описание
Образование дополнения EXT
|
АСС
Да
|
Per. Hen.
|
@R # С
|
Бит
|
RL
|
Циклический сдвиг EXT влево
|
Да
|
|
|
|
RLC
|
Циклический сдвиг ЕХТ влево путем переноса
|
Да
|
|
|
|
RR
|
Циклический сдвиг ЕХТ вправо
|
Да
|
|
|
|
RRC
|
Циклический сдвиг ЕХТ вправо через перенос
|
Да
|
|
|
|
CLR
|
Сброс бита
|
|
|
Да
|
Да
|
SET В
|
Установка бита
|
|
|
Да
|
Да
|
CPL
|
Дополнение бита
|
|
|
Да
|
Да
|
ANL
|
SCR И перенос
|
|
|
|
Да
|
ANL
|
Дополнение SCR И перенос
|
|
|
|
Да
|
ORL
|
SCR ИЛИ перенос
|
|
|
|
Да
|
ORL
|
Дополнение SCR ИЛИ перенос
|
|
|
|
Да
|
MOV
|
Перемещение SCR к переносу
|
|
|
|
Да
|
MOV
|
Перемещение переноса к SCR
|
|
|
|
Да
|
JV
|
Относительный переход (если перенос)
|
|
|
|
|
JNC
|
Относительный переход (если нет переноса)
|
|
|
|
|
JB
|
Относительный переход (если установлен бит прямого доступа)
|
|
|
|
Да
|
JNB
|
Относительный переход (если бит прямого доступа не установлен)
|
|
|
|
Да
|
JBC
|
Относительный переход (если бит прямого доступа установлен, а переноса нет)
|
|
|
|
Да
|
ACALL
|
Вызов подпрограммы (11-разрядная адресация)
|
|
|
|
|
LCALL
|
Вызов подпрограммы (16-разрядная адресация)
|
|
|
|
|
RET
|
Возврат после вызова подпрограммы
|
|
|
|
|
RETI
|
Возврат после прерывания
|
|
|
|
|
SJMP
|
Короткий относительный переход (8-разрядная адресация)
|
|
|
|
|
AJMP
|
Абсолютный переход (11-разрядная адресация)
|
|
|
|
|
UMP
|
Абсолютный переход (16-разрядная адресация)
|
|
|
|
|
JMP
|
Косвенный переход относительно DPR + АСС
|
|
|
|
|
JZ
|
Переход при нулевом значении АСС
|
|
|
|
|
JNZ
|
Переход при ненулевом значении АСС
|
|
|
|
|
CJNE
|
Сравнение SCR с АСС, переход при неравенстве
|
|
Да
|
Да
|
|
CJNE
|
Сравнение SCR с непосредственным операндом, переход при неравенстве
|
|
Да
|
Да
|
|
DJNZ
|
Отрицательное приращение ЕХТ, переход при неравенстве нулю
|
|
|
|
|
NOP
|
Пустая операция
|
|
|
|
|
Эта операции устанавливает (делает равным 1) бит 43, но не оказывает влияния на остальные биты того же байта. За командами побитовых операций в таблице следуют команды передачи управления, в частности переходов, вызовов подпрограмм, условных переходов (две команды) и сравнения, а также команда DJNZ, предназначенная для организации циклов.