Порты ввода/вывода. Система управления МКЭВМ. Автономное использование МК-48. БИС расширителя ввода/вывода, страница 4

Способы адресации:

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 пересылка в А из ячейки памяти третей страницы (обычно используют для хранения констант, табличных данных и т.п.)

3FF

4-я стр.

300

2FF

200

1FF

100

0FF

0-я стр.

000

Пример 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Н.

15Н

0

0

0

0

Х

Х

Х

Х

Ст. цифра

20Н

0

0

0

0

Y

Y

Y

Y

Мл. цифра

Х

Х

Х

Х

Y

Y

Y

Y

Ст. цифра

Мл. цифра

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

Для вычитания:

ВычитаемоеàДополнительный кодà «+»

Команды инкремента и декремента: