Реклама:

Набор команд 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

Перестановка полубайтов EXT

Да

       

ADD

Прибавление SCR к АСС

 

Да

Да

Да

Да

ADDC

Прибавление SCR к АСС с переносом

 

Да

Да

Да

Да

SUBB

Вычитание SCR из АСС с займом

 

Да

Да

Да

Да

INC

Положительное приращение EXT

Да

Да

Да

Да

 

DEC

Отрицательное приращение EXT

Да

Да

Да

Да

 

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, предназначенная для организации циклов.

Команды UltraSPARC III || Оглавление || Сравнение наборов команд