Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.1.doc
Скачиваний:
4
Добавлен:
24.08.2019
Размер:
86.53 Кб
Скачать

Сибирская Государственная Автомобильно-дорожная Академия

Кафедра АППиЭ

Лабораторная работа 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 десятичная коррекция сложения