Система команд семейства MCS-51

Всего в системе команд семейства MCS-51 можно выделить 5 групп.

Арифметические команды. Обеспечивают выполнение операций сложения и вычитания (в том числе с учетом переноса) над целочисленными 8-разряд­ными операндами, инкремент и декремент регистров и ячеек внутренней па­мяти данных, двоично-десятичную коррекцию содержимого аккумулятора. Особенностью системы команд MCS-51 является наличие в составе этой груп­пы команд умножения и деления 8-разрядных целочисленных операндов. Получающийся 16-разрядный результат хранится в регистрах А и В. Резуль­татом выполнения арифметических команд является, кроме нового содержи­мого аккумулятора, измененное значение регистра PSW.

Логические команды. Выполняют операции AND, OR, «исключающее ИЛИ», сдвиги содержимого аккумулятора вправо и влево, очистку аккуму­лятора и перестановку его тетрад.

В качестве операндов могут использоваться непосредственные данные и содержимое ячеек внутренней памяти данных. Выполнение некоторых ло­гических команд влияет на значение флага С (перенос) регистра PSW.

Команды пересылки данных. Осуществляют передачу данных между ячей­ками внутренней памяти данных (команды MOV), внешней памяти данных (команды MOVX) и аккумулятором. Существуют две команды MOVC, по­зволяющие читать в аккумулятор содержимое памяти программ. К этой группе относятся парные команды PUSH и POP, осуществляющие загрузку и выгрузку содержимого прямо адресуемой ячейки в стек (из стека). Име­ются четыре команды взаимного обмена информацией между ячейками внутренней памяти данных (ХСН и XCHD). Команды пересылки данных значения флагов в регистре PSW не изменяют.

Команды работы с битами. Эти команды устанавливают в «1» (SETB) или «0» (CLR) прямо адресуемый бит внутренней памяти данных, изменяют его значение на противоположное (CPL), выполняют операции AND и OR над флагом переноса С и прямо адресуемым битом (ANL и ORL), осу­ществляют пересылку значения между флагом С и прямо адресуемым би­том (MOV), осуществляют передачу управления по состоянию флага С или прямо адресуемого бита (JC, JNC, JB, JNB, JBC); Команды этой группы, выполняющие логические операции и осуществляющие пересылку значе­ния бита, изменяют значение флага С регистра PSW. Остальные команды на флаги не действуют.

Команды передачи управления. Передача управления может осуществлять­ся безусловно или по условию, без возврата или с возвратом. В последнем случае для возврата необходимо хранить состояние процессора. Система ко­манд MCS-51 кроме обычных «длинных» переходов с использованием 16-разрядного адреса унаследовала от семейства MCS-48 команды передачи управления с «коротким» 11-разрядным адресом. Группа команд передачи управления включает четыре команды безусловного перехода без возврата («ультракороткая» SJMP, «короткая» AJMP, «длинная» LJMP и переход по значению A+DPTR в команде JMP), две команды безусловного перехода с возвратом («короткая» ACALL и «длинная» LCALL), восемь команд услов­ного перехода без возврата. Имеются две команды возврата: из обычной подпрограммы команда RET и из подпрограммы обработки прерывания команда RETI. Завершает эту группу и всю систему команд NOP - «нет операции». Команды передачи управления значения флагов в регистре PSW не изменяют, кроме команд условного перехода CJNE, влияющих на значе­ние флага С.

При описании системы команд далее используются следующие обозначения:

Rn один из регистров R0..R7 в банке регистров, определенном битами регистра PSW;

direct адрес ячейки внутренней памяти данных.

@Ri ячейка внутренней памяти данных, косвенно адресуемая через регистры R0 или R1 текущего банка;

#data 8-разрядная константа, включенная в команду;

#data 16 16-разрядная константа, включенная в команду;

addr 16 16-разрядный адрес перехода в командах LCALL и LJMP;

addr 11 11-разрядный адрес перехода в командах ACALL и AJMP;

rel 8-разрядная константа со знаком (в дополнительном коде). Определяет величину смещения в команде SJMP и всех командах условных переходов;

bit адрес бита во внутренней памяти данных. Команды следующим образом изменяют значение флагов регистра PSW:

Instruction Flag Instruction Flag
С OV АС С OV AC
ADD X X X CLRC  
ADD X X X CPLC X
SUBB X X X ANL C.bit X
MUL 0 X ANL C./bit X
DIV 0 X ORL C.bit X
DA X ORL C,/bit X
RRC X MOV C.bit X
RLC X CJNE X
SETB C      

Таблица команд микроконтроллеров семейства MCS-51 приведена в При­ложении А.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: