Для описания системы команд используются следующие обозначения:
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].






