Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры МПТ 2012 ДИМОН.doc
Скачиваний:
40
Добавлен:
16.04.2019
Размер:
2.02 Mб
Скачать

14 Режимы адресации к580вм80

В обозначении команды каким-либо образом определяются каждые, участвующие в операции операнды. Способ определения операнда называется адресацией. Для МПС разработано около 20 режимов адресации, направленных на сокращение длины программы и времени её выполнения. В МП К580 используются следующие виды адресации:

  1. Прямая адресация. Команда содержит полный 16 битный адрес памяти. Команда 3-х байтна.

  2. Непосредственная адресация (Immediate) Команда содержит непосредственно операнд, т.е. байт данных.

  3. К освенная адресация (Indirect). В КОП 2 или 3 бита определяет регистровую пару, которая содержит адрес операнда. B регистровой паре ВС лежит адрес, который надо прочитать.

  4. Р егистровая адресация. КОП содержит группу бит (3), которые указывают на регистр, содержащий операнд. Если встречается регистр М, то подразумевается, что адрес находится в регистровой паре HL. Характерный признак – два операнда.

  5. Неявная адресация. Адрес операнда явно не указан, но он подразумевается, т.е. в самом коде команды закладывается, с каким кодом операнда надо работать.

  6. Стековая. Push – заталкивание в стек; POР – Чтение стека. При этом адрес вершины стека указывается SP. Кроме рассмотренных используются адресации:

  7. Индексная адресация;

  8. Базовая адресация (все адреса вычисляются относительно базового адреса).

13. Система команд микропроцессора к580.

Система команд К580 содержит 78 базовых команд, а с учетом модификации их 244. Все команды можно разбить на следующие группы:

  1. Команды пересылок (97);

  2. Арифметические команды (74);

  3. Логические команды (32);

  4. Команды перехода и возврата (35);

  5. Управляющие команды (6).

1)

а) Типа «регистр-регистр». MOV R1, R2; MVI R, data8; LXI RP, adr16.

б) Типа «регистр-память» MOV R, M; MVI M, data8; MOV M, R; LDA adr16; STA adr16.

Запрещается делать пересылки типа «память-память», а так же из регистра М в него же. Вместо этого используют регистр HLT.

Косвенная адресация через регистровую пару: LDAX RP; STAX RP; LHLD adr16; PUSH RP; POP RP; Циклические пересылки XCHG(HL,DE){RR}, XTHL(HL, вершина стека){RM}; Команды ввода-вывода IN adr8; OUT adr8.

2) Арифметические.

А) Сложение ADD R (A=A+R); ADI data8 (A=A+data8); ADD M (A=A+M[HL]); DAD RP (HLHL+RP);

Б) Сложение с учетом переноса (Carry). ADC R (A=A+R+C {C – флаг переноса}); ADC M; ACI data8.

В) Вычитание SUB R; SUB M; SUI data8

Г) вычитание с учетом заёма (Barrow) SBB M; SBI data8;

Д) Инкрементирование (+1). INR R; INR M; INX RP;

Е) Декрементирование (-1). DCR R; DCR M; DCX RP;

Ж) Десятичная коррекция. DAA.

З) Сравнение CMP R; CMP M;

3) Логические команды.

А) лог «И». ANA R (A&R{AA&R}); ANI data8;

Б) Логическое «ИЛИ» ORA R (A<-AR); ORI data8;

В) Исключающее «ИЛИ» XRA R (AAR); XRI data8;

Г) Инвертирование аккумулятора CMA AнеA

Е) Циклические сдвиги: сдвиг влево RLC

R AL.

Ее отличие в том, что флаг С включают внутрь контура переноса. Сдвиг вправо RRC, а с включеным внутрь контура С – RAR.

4) Команды перехода и возврата.

А) Команды безусловного перехода. JMP adr16. Команды безусловного вызова подпрограммы CALL adr16. Команда безусловного возврата из подпрограммы RET. В стек  СК.

Команды условного перехода J<cond> adr16. Условного вызова подпрограммы C<COND> adr16; условного возврата из подпрограммы R<CON> adr16.

Z=0

Z=1

C=0

C=1

S=0

S=1

P=0

P=1

Усл-й переход

Jnz

Jz

Jc

Jnc

Jp

Jm

Jpo

Jpe

Условный вызов

Cnz

Cz

Cc

Cnc

Cp

Cm

Cpo

Cpe

Условный выход

Rnz

Rz

Rc

Rnc

Rp

Rm

Rpo

rpe

Безусловный переход: jm b2b3 (b2b3PC); вызов подпрограммы: CALL b2b3 (H(PC)M[SP-1], L(PC)M[SP-2], b2b3PC). По команде RET происходит следующее: M[SP]  L(PC), M[SP]H[PC] восстановление программного счетчика. К этой же группе относятся команды обработки прерываний и команды рестарта N=0…7; RST N – перегружает содержимое счетчика команд в стек, а в младший байт заносится начальный адрес обращений прерываний для которых PCN*8.

RST 0 0000h

0001h

RST 1 0008h

RST 2 0010h

RST 3 0018h

RST 4 0020h

RST 5 0028h

RST 6 0030h

RST 7 0038h

Отличие команды RST от команды CALL состоит в том, что здесь происходит сброс внутреннего триггера разрешения прерывания. После этого запрещается обращение других прерываний.

  1. Управляющие.

HALT – останов. Вызывает прекращение выполнения программы и переход в состояние останова.

NOP – холостая команда. Занимает 4 машинный такта. Используется для задержки и для замены не нужных команд после отладки программы.

EI, DI - команды разрешения/запрещения прерывания.

STC – команды установки флага переноса (С1) SET C.

CMC – команда инвертирования С.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]