Способы адресации:
1. Прямая регистровая (в командах участвуют только регистры)
MOV R1,A
2. Непосредственная адресация (#)
MOV A,#50H; (A)ß50H (непосредственные данные); отсутствие «#» - ошибка!!!
3. Косвенная регистровая адресация (в регистре указывается адрес ячейки памяти)
MOV @R1,A; ((R1))ßA
4. Неявная адресация:
RET
Все команды можно разбить на 6 групп (96 команд):
1. Команды пересылки и обмена
2. Арифметические
3. Логические
4. Команды работы с портами
5. команды передачи управления
6. Команды управления режимами работ
В процессе выполнения команд возможно изменение флагов C, AS, BS, F0, F1, TF.
1. Команды прямые регистровые.
MOV A,Rn n=0,1..7
MOV Rn,A Rn – регистр общего назначения
MOVR1,R2 – команды обмена между регистрами НЕТ!
команды непосредственной загрузки:
MOV A,#d8 # - d8
MOV Rn,#d8
команды с косвенной адресацией:
MOV A,@Ri i=0,1 (А)ß((Ri))
MOV @Ri,A
MOV @Ri,#d8
MOV A,PSW
MOV PSW,A
MOV A,T T – таймер-счетчик
MOV T,A
XCH A,Rn Команда обмена (A)(Rn)
XCH A,@Ri (A)((Ri))
XCHD A,@Rn Обмен младших тетрад (старшие не меняются)
SWAP A – обмен тетрад в А
Команды пересылки между внешней ПД и аккумулятором:
MOVX A,@Ri
MOVX @Ri,A
Из ПК:
MOVP A,@A пересылка в А из ячейки памяти текущей страницы
MOVP3 A,@A пересылка в А из ячейки памяти третей страницы (обычно используют для хранения констант, табличных данных и т.п.)
|
Пример 1: переслать из ячейки с адресом 20Н 3-йстарницы ПК константу в R5. MOV A,#20H MOVP3 A,@A MOV R5,A |
Пример 2: передать текущее значение таймера в регистр R5 без потери содержимого аккумулятора.
XCH A,R5
MOV A,T
XCH R5,A
Пример 3: в ячейках 15Н и 20Н ПД находятся неупакованные десятично‑двоичные кодированные числа. В ячейке 15Н находится старшая цифра, а в 20Н – младшая. Упаковать эти числа в ячейку с адресом 30Н.
|
MOV R0,#15H MOV R1,#20H XCHD A,@R0 SWAP A XCHD A,@R1 MOV R0,#30H MOV @R0,A |
2. Арифметическиекоманды.
Команды сложения:
ADD A,Rn (A)ß(A)+(Rn)
ADD A,@Ri (A)ß(A)+((Ri))
ADD A,#d8 (A)ß(A)+d8
Эти же команды с учетом флага переноса:
ADDC A,Rn (A)ß(A)+(Rn)+C
ADDC A,@Ri (A)ß(A)+((Ri))+C
ADDC A,#d8 (A)ß(A)+d8+C
Команда двоично-десятичной коррекции аккумулятора:
DA A
Для вычитания:
ВычитаемоеàДополнительный кодà «+»
Команды инкремента и декремента:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.