Команды передачи данных
Мнемоника | Название команды | КОП | Б | Ц | Коммент |
mov A, Rn | Пересылка в аккумулятор из регистров общего назначения R0 – R7 текущего банка | 11101iii | (A) (Rn) | ||
mov A, ad | Пересылка в аккумулятор прямоадресуемого байта | (A) (ad) | |||
mov A, @Ri | Пересылка в аккумулятор байта из внутр. ОЗУ (i=0,1) | 1110011i | (A) ((Ri)) | ||
mov A, #data8 | Загрузка в аккумулятор константы | (A) #data8 | |||
mov Rn, A | Пересылка в регистр из аккумулятора | 11111iii | (Rn) (A) | ||
mov Rn, ad | Пересылка в регистр прямоадресуемого байта | 10101iii | (Rn) (ad) | ||
mov Rn, #data8 | Загрузка в регистр константы | 01111iii | (Rn) #data8 | ||
mov ad, A | Пересылка по прямому адресу аккумулятора | (ad) (A) | |||
mov ad, Rn | Пересылка по прямому адресу регистра | 10001ii | (ad) (Rn) | ||
mov add, ads | Пересылка прямоадресуемого байта по прямому адресу | (add) (ads) | |||
mov ad, @Ri | Пересылка байта из внутреннего ОЗУ по прямому адресу | 1000011i | (ad) ((Ri)) | ||
mov ad, #data8 | Пересылка по прямому адресу константы | (ad) #data8 | |||
mov @Ri, A | Пересылка во внутреннее ОЗУ из аккумулятора | ((Ri)) (A) | |||
mov @Ri, ad | Пересылка во внутреннее ОЗУ прямоадресуемого байта | 0110011i | ((Ri)) (ad) | ||
mov @Ri, #data8 | Пересылка во внутреннее ОЗУ константы | 0111011i | ((Ri)) #data8 | ||
mov DPTR, #data16 | Загрузка указателя данных | DPTR #data16 | |||
movc A,@A+DPTR | Пересылка в аккумулятор байта из памяти программ | (A) ((A)+DPTR)) | |||
movc A,@A+PC | Пересылка в аккумулятор байта из памяти программ | (PC) (PC)+1; (A) ((A)+(PC)) | |||
movx A,@Ri | Пересылка в аккумулятор байта из внешнего ОЗУ | 1110001i | (A) ((Ri)) | ||
movx A,@DPTR | Пересылка в аккумулятор байта из расширенного внешнего ОЗУ | (A) ((DPTR)) | |||
movx @Ri, A | Пересылка во внешнее ОЗУ из аккумулятора | 1111001i | ((Ri)) (A) | ||
movx @DPTR,A | Пересылка в расширенное внешнее ОЗУ из аккумулятора | ((DPTR)) (A) | |||
push ad | Загрузка в стек | (SP) (SP)+1; ((SP)) (ad) | |||
pop ad | Извлечение из стека | (ad) ((SP)); (SP) (SP)-1 | |||
xch A, Rn | Обмен аккумулятора с регистром | 11001iii | (A)«(Rn) | ||
xch A, ad | Обмен аккумулятора с прямоадресуемым байтом | (A)«(ad) | |||
xch A, @Ri | Обмен аккумулятора с байтом из внутреннего ОЗУ | (A)«((Ri)) | |||
xchd A, Ri | Обмен младшей тетрады аккумулятора с младшей тетрадой внутреннего ОЗУ | 1101011i | (A0-3)«((Ri0-3)) |
Команды арифметических операций
Мнемоника | Название команды | КОП | Б | Ц | Коммент |
add A, Rn | Сложение аккумулятора с регистром общего назначения R0 – R7 текущего банка | 00101iii | (A) (A) + (Rn) | ||
add A, ad | Сложение аккумулятора с прямоадресуемым байтом | (A) (A) + (ad) | |||
add A, @Ri | Сложение аккумулятора с байтом из внут. ОЗУ (i=0,1) | 0010011i | (A) (A) + (Ri) | ||
add A,#data8 | Сложение аккумулятора с константой | (A) (A) + #data8 | |||
addc A, Rn | Сложение аккумулятора с регистром общего назначения R0 – R7 и переносом | 00111iii | (A) (A) + (Rn)+(C) | ||
addc A, ad | Сложение аккумулятора с прямоадресуемым байтом и переносом | (A) (A) + (ad)+(C) | |||
addc A, @Ri | Сложение аккумулятора с байтом из внут. ОЗУ и переносом | 0011011i | (A) (A) + (Ri)+(C) | ||
addc A,#data8 | Сложение аккумулятора с константой и переносом | (A) (A) + #data8 +(C) | |||
da A | Десятичная коррекция аккумулятора | ||||
subb A, Rn | Вычитание из аккумулятора, регистра общего назначения и заема | 10011iii | (A) (A) - (Rn) - (C) | ||
subb A, ad | Вычитание из аккумулятора, прямоадресуемого байта и заема | (A) (A) - (Ad) - (C) | |||
subb A, @Ri | Вычитание из аккумулятора, байта из внутреннего ОЗУ и заема | 1001011i | (A) (A) - ((Ri)) - (C) | ||
subb A, #data8 | Вычитание из аккумулятора, константы и заема | (A) (A) - #data8 - (C) | |||
inc A | Инкремент аккумулятора | (A) (A) + 1 | |||
inc Rn | Инкремент регистра | 00001ii | (Rn) (Rn) + 1 | ||
inc ad | Инкремент прямоадресуемого байта | (ad) (ad) + 1 | |||
inc @Ri | Инкремент байта из внутр. ОЗУ | 0000011i | ((Ri)) ((Ri)) +1 | ||
inc DPTR | Инкремент указателя данных | (DPTR) (DPTR) + 1 | |||
dec A | Декремент аккумулятора | (A) (A) - 1 | |||
dec Rn | Декремент регистра | 00011ii | (Rn) (Rn) - 1 | ||
dec ad | декремент прямоадресуемого байта | (ad) (ad) - 1 | |||
dec @Ri | Декремент байта из внутр. ОЗУ | 0001011i | ((Ri)) ((Ri)) -1 | ||
mul AB | Умножение аккумулятора и регистра B | (B)(A) (A)*(B) | |||
div AB | Деление аккумулятора на регистр B | (A),(B) (A)/(B) |
Команды логических операций
Мнемоника | Название команды | КОП | Б | Ц | Коммент |
anl A, Rn | Логическое И аккумулятора и регистра общего назначения R0 – R7 текущего банка | 01011iii | (A) (A) Илог (Rn) | ||
anl A, ad | Логическое И аккумулятора и прямоадресуемого байта | (A) (A) Илог (ad) | |||
anl A, @Ri | Логическое И аккумулятора с байтом из внут. ОЗУ (i=0,1) | 0101011i | (A) (A) Илог (Ri) | ||
anl A,#data8 | Логическое И аккумулятора и константы | (A) (A) Илог #data8 | |||
anl ad, A | Логическое И прямоадресуемого байта и аккумулятора | (ad) (ad) Илог (A) | |||
anl ad,#data8 | Логическое И прямоадресуемого байта и константы | (ad) (ad) Илог #data8 | |||
orl A, Rn | Логическое ИЛИ аккумулятора и регистра общего назначения R0 – R7 текущего банка | 01001iii | (A) (A) ИЛИлог (Rn) | ||
orl A, ad | Логическое ИЛИ аккумулятора и прямоадресуемого байта | (A) (A) ИЛИлог (ad) | |||
orl A, @Ri | Логическое ИЛИ аккумулятора с байтом из внут. ОЗУ (i=0,1) | 0100011i | (A) (A) ИЛИлог ((Ri)) | ||
orl A,#data8 | Логическое ИЛИ аккумулятора и константы | (A) (A) ИЛИлог #data8 | |||
orl ad, A | Логическое ИЛИ прямоадресуемого байта и аккумулятора | (ad) (ad) ИЛИлог (A) | |||
orl ad,#data8 | Логическое ИЛИ прямоадресуемого байта и константы | (ad) (ad) ИЛИлог #data8 | |||
xrl A, Rn | Исключающее ИЛИ аккумулятора и регистра общего назначения R0 – R7 текущего банка | 01101iii | (A) (A) ИЛИискл (Rn) | ||
xrl A, ad | Исключающее ИЛИ аккумулятора и прямоадресуемого байта | (A) (A) ИЛИискл (ad) | |||
xrl A, @Ri | Исключающее ИЛИ аккумулятора с байтом из внут. ОЗУ (i=0,1) | 0110011i | (A) (A) ИЛИискл (Ri) | ||
xrl A,#data8 | Исключающее ИЛИ аккумулятора и константы | (A) (A) ИЛИискл #data8 | |||
xrl ad, A | Исключающее ИЛИ прямоадресуемого байта и аккумулятора | (ad) (ad) ИЛИискл (A) | |||
xrl ad,#data8 | Исключающее ИЛИ прямоадресуемого байта и константы | (ad) (ad) ИЛИискл #data8 | |||
clr A | Сброс аккумулятора | (A) 0 | |||
cpl A | Инверсия аккумулятора | (A) / (A) | |||
rl A | Сдвиг аккумулятора влево циклический | (A.n+1) (A.n.). n=0-6; (A.0) (A.7) | |||
rlc A | Сдвиг аккумулятора влево через перенос | (A.n+1) (A.n.). n=0-6; (A.0) (C); (C) (A.7) | |||
rr A | Сдвиг аккумулятора вправо циклический | (A.n) (A.n+1), n=0-6; (A.7) (A.0) | |||
rrc A | Сдвиг аккумулятора вправо через перенос | (A.n) (A.n+1). n=0-6; (A.7) (C); (C) (A.0) | |||
swap A | Обмен местами тетрад в аккумуляторе | (A.0, A.1, A.2, A.3) «(A.4, A.5, A.6, A.7) |
Команды операций с битами
Мнемоника | Название команды | КОП | Б | Ц | Коммент |
clr C | Сброс переноса | (С) 0 | |||
clr bit | Сброс бита | (bit) 0 | |||
setb C | установка переноса | (С) 1 | |||
setb bit | Установка бита | (bit) 1 | |||
cpl C | Инверсия переноса | (С) /(С) | |||
cpl bit | Инверсия бита | (bit) /(bit) | |||
anl C, bit | Логическое И бита и переноса | (С) (С) Илог (bit) | |||
anl C, /bit | Логическое И инверсии бита и переноса | (С) (С) Илог /(bit) | |||
orl C, bit | Логическое ИЛИ бита и переноса | (С) (С) ИЛИлог (bit) | |||
orl C, /bit | Логическое ИЛИ инверсии бита и переноса | (С) (С) ИЛИлог /(bit) | |||
mov C, bit | Пересылка бита в перенос | (С) (bit) | |||
mov bit, C | Пересылка переноса в бит | (bit) (C) |
Команды передачи управления
Мнемоника | Название команды | КОП | Б | Ц | Коммент |
ljmp ad16 | Длинный абсолютный переход в полном объеме памяти программ | (PC) ad16 | |||
ajmp ad11 | Длинный абсолютный переход в полном объеме памяти программ | (PC) (PC)+2, затем (PC 0-10) ad11 | |||
sjmp rel | Короткий относительный переход в нутрии страницы 256 байт | (PC) (PC)+2, затем (PC) (PC) + rel | |||
jmp @A+DPTR | Косвенный относительный переход | (PC) (A)+(DPTR) | |||
jz rel | Переход, если аккумулятор равен 0 | (PC) (PC)+2, затем если (A)=0, то (PC) (PC) + rel | |||
jnz rel | Переход, если аккумулятор не равен 0 | (PC) (PC)+2, затем если (A)<>0, то (PC) (PC) + rel | |||
jc rel | Переход, если перенос равен 1 | (PC) (PC)+2, затем если (C)=1, то (PC) (PC) + rel | |||
jnc rel | Переход, если перенос равен нулю | (PC) (PC)+2, затем если (C)=0, то (PC) (PC) + rel | |||
jb bit,rel | Переход, если бит равен единице | (PC) (PC)+3, затем если (bit)=1, то (PC) (PC) + rel | |||
jnb bit,rel | Переход, если бит равен нулю | (PC) (PC)+3, затем если (bit)=0, то (PC) (PC) + rel | |||
jbc bit,rel | Переход, если бит установлен, последующим сбросом бита | (PC) (PC)+3, затем если (bit)=1, то (PC) (PC) + rel, (bit) 0 | |||
djnz Rn, rel | Декремент регистра и переход если не нуль | 11011iii | (PC) (PC)+2, (Rn) (Rn)-1, затем если (Rn)<>0, то (PC) (PC) + rel | ||
djnz ad, rel | Декремент прямоадресуемого байта и переход если не нуль | (PC) (PC)+2, (ad) (ad)-1, затем если (ad)<>0, то (PC) (PC) + rel | |||
cjne A, ad, rel | Сравнение аккумулятора с прямоадресуемым байтом и переход, если не равно | (PC) (PC)+3, если (A)<>(ad), то (PC) (PC) + rel при этом если (A)<(ad), то (C) 1, иначе (C) 0 | |||
cjne A, #data8, rel | Сравнение аккумулятора с константой и переход, если не равно | (PC) (PC)+3, если (A)<> #data8, то (PC) (PC) + rel при этом если (A)<#data8, то (C) 1, иначе (C) 0 | |||
cjne Rn, #data8, rel | Сравнение регистра с константой и переход, если не равно | 10111iii | (PC) (PC)+3, если (Rn)<> #data8, то (PC) (PC) + rel при этом если (Rn)<#data8, то (C) 1, иначе (C) 0 | ||
cjne @Ri, #data8, rel | Сравнение байта во внутреннем ОЗУ и переход, если не равно | 1011011i | (PC) (PC)+3, если ((Ri))<> #data8, то (PC) (PC)+rel, при этом если ((Ri))<#data8, то (C) 1, иначе (C) 0 | ||
lcall ad16 | Длинный абсолютный вызов подпрограммы | (PC) (PC)+3, (SP) (SP)+1, и ((SP)) (PC0-7); затем (SP) (SP)+1 и ((SP)) (PC8-15); затем (PC) ad16 | |||
acall ad11 | Абсолютный вызов подпрограммы внутри двухкилобайтной страницы | (PC) (PC)+3, (SP) (SP)+1, и ((SP)) (PC0-7); затем (SP) (SP)+1 и ((SP)) (PC8-15); затем (PC0-10) ad11 | |||
ret | Возврат из подпрограммы | (PC8-15)((SP)); (SP) (SP)-1; затем (PС0-7) ((SP)); (SP) (SP)-1 | |||
reti | Возврат из подпрограммы обработки прерывания | (PC8-15)((SP)); (SP) (SP)-1; затем (PС0-7) ((SP)); (SP) (SP)-1 | |||
nop | Холостая команда | (PC) (PC)+1 | |||