Сибирская Государственная Автомобильно-дорожная Академия
Кафедра АППиЭ
Лабораторная работа 1
«Система команд однокристальной микроЭВМ К1816ВЕ52»
Выполнил: студент 31АП
Склюев К.С.
Принял: преподаватель к.т.н. Руппель А.А.
Омск – 2012г.
Цель: изучение системы команд однокристальной микроЭВМ К1816ВЕ52.
Все команды К1816ВЕ52 можно условно разделить на группы:
пересылки (28), логические (25), арифметические (24), передачи управления (17) и битового процессора (17).
Команды пересылок
MOV A, R1 перемещение данных из рон R1 в аккумулятор А
MOV A, 01 перемещение данных из ячейки памяти с адресом 01 в аккумулятор А MOV A,
@R0 перемещение данных из ячейки памяти с адресом хранящимся в рон R0
в аккумулятор А
MOV A, #99 перемещение числа 99 в аккумулятор
MOV R2, A перемещение числа из аккумулятора в рон R2
MOV R3, 44 перемещение данных из ячейки памяти с адресом 44 в рон R3
MOV R4, #23 перемещение числа 23 в рон R4
MOV 44, A перемещение данных из аккумулятора в ячейку памяти с адресом 44
MOV 32, R5 перемещение данных из рон R5 в ячейку памяти с адресом 32
MOV 33, 44 перемещение данных из ячейки памяти с адресом 44 в ячейку памяти с
адресом 33
MOV 10, @R0 перемещение данных из ячейки памяти с адресом хранящимся в рон
R0 в ячейку памяти с адресом 10
MOV 20, #56 перемещение числа 56 в ячейку памяти с адресом 10
MOV @R1, A перемещение числа из аккумулятора в ячейку памяти с адресом в рон R1
MOV @R0, 45 перемещение числа из ячейки памяти с адресом 45 в ячейку памяти с
адресом в рон R0
MOV @R1, #11 перемещение числа 45 в ячейку памяти с адресом в рон R1
MOV DPTR, #01AB перемещение числа 01AB в регистр косвенного адреса DPTR
MOVC A, @A+DPTR перемещение числа, находящегося в области CSEG с адресом,
находящимся как сумма аккумулятора и регистра косвенного
адреса, в аккумулятор
MOVC A, @A+PC перемещение числа, находящегося в области CSEG с адресом,
находящимся как сумма аккумулятора и счётчика,в аккумулятор.
MOVX A, @R1 перемещение числа, находящегося в области XSEG с адресом,
находящимся в рон R1 , в аккумулятор.
MOVX A, @DPTR перемещение числа, находящегося в области XSEG с адресом,
находящимся регистре косвенного адреса , в аккумулятор.
MOVX A, @R1 перемещение числа, находящегося в области CSEG с адресом,
находящимся как сумма аккумулятора и регистра косвенного
адреса, в аккумулятор.
MOVX @R1, A перемещение числа из аккумулятора A в ячейку памяти в области
XSEG с адресом находящегося в рон R1
MOVX @DPTR, A перемещение числа из аккумулятора A в ячейку памяти в области
XSEG с адресом находящегося в регистре косвенного адреса
PUSH 01 перемещает число 01 в стек SP
POP 40 перемещает число из стека в приёмник
XCH A, R4 обмен значениями между рон R4 и
аккумулятор A
XCH A, 00 обмен значениями между переменной-байтом и
аккумулятором A
XCH A, @R1 обменивает значениями ячейку памяти с
адресом R1 и аккумулятор A
XCHD A, @R1 обмен младшей тетрады (биты 3-0) аккумулятора с
содержимым младшей тетрады (биты 3-0) ячейки
внутреннего ОЗУ
Логические и арифметические команды
ANL A, R1 логическое умножение числа в аккумуляторе A и в рон R1 и
помещение результата в аккумулятор A.
ANL A, 44 логическое умножение числа в аккумуляторе A и числа в ячейке с
адресом 44 и помещение результата в аккумулятор A.
ANL A, @R1 логическое умножение числа в аккумуляторе A и числа с адресом в
R1 и помещение результата в аккумулятор A.
ANL A, #34 логическое умножение числа в аккумуляторе A и числа 34 и
помещение результата в аккумулятор A.
ANL 03, A логическое умножение числа в аккумуляторе A и числа в ячейке с
адресом 03 и помещение результата в эту ячейку.
ANL 05, #33 логическое умножение числа 33 и числа в ячейке с
адресом 05 и помещение результата в эту ячейку.
ORL A, R1 логическое сложение числа в аккумуляторе A и в рон R1 и
помещение результата в аккумулятор A.
ORL A, 44 логическое сложение числа в аккумуляторе A и числа в ячейке с
адресом 44 и помещение результата в аккумулятор A.
ORL A, @R1 логическое сложение числа в аккумуляторе A и числа с адресом в
R1 и помещение результата в аккумулятор A.
ORL A, #34 логическое сложение числа в аккумуляторе A и числа 34 и
помещение результата в аккумулятор A.
ORL 03, A логическое сложение числа в аккумуляторе A и числа в ячейке с
адресом 03 и помещение результата в эту ячейку.
ORL 05, #33 логическое умножение числа 33 и числа в ячейке с
адресом 05 и помещение результата в эту ячейку.
XRL A, R1 логическая команда “ИСКЛЮЧАЮЩЕЕ ИЛИ”над битами числа в
аккумуляторе A и в рон R1 и помещение результата в аккумуляторA.
XRL A, 44 логическая команда “ИСКЛЮЧАЮЩЕЕ ИЛИ”над битами числа в
аккумуляторе A и числа в ячейке с адресом 44 и помещение
результата в аккумулятор A.
XRL A, @R1 логическая команда “ИСКЛЮЧАЮЩЕЕ ИЛИ”над битами числа в
аккумуляторе A и числа с адресом в
R1 и помещение результата в аккумулятор A.
XRL A, #34 логическая команда “ИСКЛЮЧАЮЩЕЕ ИЛИ”над битами числа в
аккумуляторе A и числа 34 и
помещение результата в аккумулятор A.
XRL 03, A логическая команда “ИСКЛЮЧАЮЩЕЕ ИЛИ”над битами числа в
аккумуляторе A и числа в ячейке с
адресом 03 и помещение результата в эту ячейку.
XRL 05, #33 логическая команда “ИСКЛЮЧАЮЩЕЕ ИЛИ”над битами числа 33
и числа в ячейке с адресом 05 и помещение результата в эту
ячейку.
CLR A сброс аккумулятора A в 0
CLP A инверсия аккумулятора (замена 1 битов на 0 и наоборот
RL A сдвигает восемь бит аккумулятора на один бит влево, бит 7
засылается на место бита 0
RLC A сдвигает восемь бит аккумулятора и флаг переноса влево на один
бит
RR A сдвигает восемь бит аккумулятора на один бит вправо, бит 0
засылается на место бита 7
RRC A сдвигает восемь бит аккумулятора и флаг переноса вправо на один
бит
SWAP A меняет местами первые четыре и последние 4 бита числа в
аккумуляторе
ADD A, R1 сложение числа в аккумуляторе A и в рон R1 и
помещение результата в аккумулятор A.
ADD A, 44 сложение числа в аккумуляторе A и числа в ячейке с
адресом 44 и помещение результата в аккумулятор A.
ADD A, @R1 сложение числа в аккумуляторе A и числа с адресом в
R1 и помещение результата в аккумулятор A.
ADD A, #34 сложение числа в аккумуляторе A и числа 34 и
помещение результата в аккумулятор A.
ADDC A, R1 сложение числа в аккумуляторе A и в рон R1 с учётом признака
переноса и помещение результата в аккумулятор A.
ADDC A, 44 сложение числа в аккумуляторе A и числа в ячейке с
адресом 44 с учётом признака переноса и помещение результата в
аккумулятор A.
ADDC A, @R1 сложение числа в аккумуляторе A и числа с адресом в
R1 с учётом признака переноса и помещение результата в
аккумулятор A.
ADDC A, #34 сложение числа в аккумуляторе A и числа 34 с учётом
признака переноса и
помещение результата в аккумулятор A.
SUBB A, R1 вычитание из числа в аккумуляторе A числа в рон R1 с учётом
признака переноса и помещение результата в аккумулятор A
(вычитание с заемом).
SUBB A, direct вычитание из числа в аккумуляторе A числа в ячейке с
адресом 44 с учётом признака переноса и помещение результата в
аккумулятор A.
SUBB вычитание из числа в аккумуляторе A числа с адресом в
R1 с учётом признака переноса и помещение результата в
аккумулятор A.
SUBB A, #34 вычитание из числа в аккумуляторе A числа 34 с учётом признака
переноса и помещение результата в аккумулятор A.
INC A прибавляет 1 к аккумулятору
INC Rn прибавляет 1 к рону
INC 04 прибавляет 1 к ячейке памяти с адресом 04
INC @R1 прибавляет 1 к ячейке памяти с адресом в рон R1
INC DPTR прибавляет 1 к регистру косвенного адреса
DEC A вычитает 1 из аккумулятора
DEC 04 вычитает 1 из ячейки памяти с адресом 04
DEC @R1 вычитает 1 из ячейки памяти с адресом в рон R1
DEC R1 вычитает 1 из числа в рон R1
MUL AB умножение целых чисел в аккумуляторах A и B и помещение
результата в B и A
DIV AB деление целого числа в аккумуляторе A на число в B, в A
помещается целая часть от деления, в B – отсаток.
DA A десятичная коррекция сложения