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