Система команд

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

A - аккумулятор;

Rn - регистр общего назначения с номером n;

Direct - любой регистр специального назначения или ячейка внутреннего ОЗУ;

#Data - байт данных, содержащийся во втором байте кода команды.

Met - метка в командах переходов, указывающая какая команда будет выполняться следующей.

Bit – имя прямоадресуемого бита (например: A.1, P2.3)

Наиболее часто используемые команды:

1.Сложение содержимого аккумулятора и содержимого второго операнда, результат записывается в аккумулятор.

ADD A,Rn; A+Rn A - прибавить к содержимому аккумулятора содержимое регистра общего назначения с номером n

ADD A,Direct; A+Direct A - прибавить к содержимому аккумулятора содержимое ячейки внутреннего ОЗУ или регистра специального назначения

ADD A,#Data; A+Data A - прибавить к содержимому аккумулятора данные, содержащиеся во втором байте команды

2.Вычитание из содержимого аккумулятора содержимого второго операнда, результат записывается в аккумулятор.

SUBB A,Rn; A-Rn A

SUBB A,Direct; A-Direct A

SUBB A,#Data; A-Data A

3.Увеличение содержимого указанного операнда на 1.

INC A; A+1 A

INC Direct; Direct+1 Direct

INC Rn; Rn+1 Rn

4.Уменьшение содержимого указанного операнда на 1.

DEC A; A-1 A

DEC Direct; Direct-1 Direct

DEC Rn; Rn-1 Rn

5.Логическое умножение («И») содержимого аккумулятора и содержимого второго операнда, результат записывается в аккумулятор.

ANL A,Rn; A AND Rn A

ANL A,Direct; A AND Direct A

ADD A,#Data; A AND Data A

6.Логическое сложение («ИЛИ») содержимого аккумулятора и содержимого второго операнда, результат записывается в аккумулятор.

ORL A,Rn; A OR Rn A

ORL A,Direct; A OR Direct A

ORL A,#Data; A OR Data A

7.”Исключающее или” содержимого аккумулятора и содержимого второго операнда, результат записывается в аккумулятор.

XRL A,Rn; A XOR Rn A

XRL A,Direct; A XOR Direct A

XRL A,#Data; A XOR Data A

8.Очистка аккумулятора – содержимое всех разрядов аккумулятора сбрасывается в ноль.

CLR A; 0 А

9. Переслать содержимое второго операнда в первый.

MOV A,Rn; Rn A

MOV A,Direct;Direct A

MOV A,#Data;Data A

MOV Rn,A; A Rn

MOV Rn,Direct;Direct Rn

MOV Rn,#Data;Data Rn

MOV Direct,Rn; Rn Direct

MOV Direct,A;A Direct

MOV Direct,#Data;Data Direct

10.Безусловный (обязательный) переход на команду, обозначенную указанной в команде меткой.

LJMP Met

11.Осуществить переход на команду, обозначенную указанной в команде меткой, если содержимое аккумулятора

равно 0:

JZ Met

не равно 0:

JNZ Met

12.Осуществить переход на команду, обозначенную указанной в команде меткой, если содержимое операнда не равно заданным в команде данным.

CJNE A,#Data,Met;перейти на метку Met, если A ≠ Data

CJNE Rn,#Data,Met;перейти на метку Met, если Rn≠Data

13.Уменьшить на единицу содержимое указанного регистра Rn и, если содержимое Rn не ноль, - переход на метку, указанную в команде.

DJNZ Rn,Met

14.Установка в «1» прямоадресуемого бита.

SETB Bit ; 1 Bit

15.Сброс в «0» прямоадресуемого бита.

CLR Bit ; 0 bit

16.Инвертирование содержимого прямоадресуемого бита.

CPL Bit ; /Bit Bit

11.Осуществить переход на команду, обозначенную указанной в команде меткой, если содержимое прямоадресуемого бита

равно 0:

JNB Bit,Met

не равно 0:

JB Bit,Met

Замечание: при использовании команд переходов необходимо учитывать, что при невыполнении заданного в команде условия будет выполняться следующая за ней команда. При задании метки перед командой, после метки ставится двоеточие.

С другими функциональными возможностями ОМЭВМ и полным перечнем команд можно ознакомиться в [2].


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



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