Выбор (A) и (F) из стека
POP PSW | <B1> | F1 |
7 0
F [(SP)]; A [(SP)+1]; SP (SP)+2
Действие этой команды противоположно действию команды 2.6. Эта команда аналогична команде 2.7 и отличается лишь регистрами. Команда выполняется за три цикла (10 тактов). Содержимое регистра признаков изменяется в соответствии с кодом записанного в стеке слова.
Пример:
D) POP PSW
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
080D | F1 | F1 |
SP | 0BAC | 0BAE |
0BAC | ||
0BAD | ||
A | ||
FL | ||
PC | 080D | 080E |
Обмен данными
а) Обмен между DE и HL .
XCHG | (H) «(D) ; (L) « (E)<B1> | EB |
7 0
б)Обмен вершины стека с HL
XTHL | (L) «[(SP)];(H) « [(SP) +1] <B1> | E3 |
7 0
По этим командам происходит обмен данными между регистрами D и H, E и L (а) или между регистрами и ячейками памяти (б), адреса которых выбираются из регистра SP (указателя стека). Команды однобайтовые и выполняются за 1 или 5 циклов (4 или 13 тактов) соответственно для команд a) и б). После выполнения команды содержимое регистра признаков не изменяется.
Примеры:
D1) XTHL
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
00D1 | E3 | E3 |
L | 2A | 5A |
H | 0C | |
SP | 12B2 | 12B2 |
12B2 | 5A | 2A |
12B3 | 0C | |
PC | 00D1 | 00D2 |
После выполнения операции содержимое указателя стека остается таким же, как и до выполнения операции.
E) XCHG
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
080E | EB | EB |
D | ||
E | FA | 2B |
H | ||
L | 2B | FA |
FL | ||
PC | 080E | 080F |
Пересылка НL
а) Пересылка в указатель стека
SPHL | (SP)(H) (L) <B1> | F9 |
7 0
б) Пересылка в счетчик команд
PCHL | (PC)(H) (L) <B1> | E9 |
7 0
При выполнении этих команд содержимое регистровой пары HL передается в регистрSP - указатель стека (а) или в регистр PC -счетчик команд (б). При этом старший байт принимается из регистра Н, а младший - из регистра L. Содержимое регистров Н и L при выполнении команды не изменяется. Не изменяется также содержимое регистра признаков F. Команда выполняется за один цикл (5 тактов).
Примеры:
F) SPHL
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
080F | F9 | F9 |
SP | 0BB0 | 0BAC |
H | 0B | 0B |
L | AC | AC |
FL | ||
PC | 080F |
PCHL
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
E9 | E9 | |
PC | 09AE | |
H | ||
L | AE | AE |
FL |
Контрольные вопросы и здания
1. Назначение команд пересылки.
2. Размер команд пересылки.
3. Какие из следующих команд не относятся к группе команд пересылки:
- PUSH D;
- MVI M, A6;
- LXI H, 012E;
- CALL 023D;
- LDAX D;
- CMA.
4. Как влияют команды пересылки на состояние регистра признаков?
5. Как выполняется команда MOV D, M?
6. Какая или какие из приведенных ниже мнемонических значений ошибочны:
- MOV D, B4;
- LHLD 01D6;
- PUSH PSW;
- PCHL;
- POP C;
- LDA B4;
- STAX D.
7. Какая из команд MOV C,M и MOV D,E требует для своего выполнения больше времени и почему?
8. В каком случае после выполнения команды MOV H, L содержимое регистров H и L не изменится?
9. Как выполняется команда SPHL?
10. Особенности выполнения команды POP PSW.
Глава 3. Приращение / отрицательное приращение
3.1 Приращение/отрицательное приращение регистра
а)
INR ri | ri (ri) + 1 <B1> | ri |
б)
DCR ri | ri (ri) – 1 <B1> | ri |
7 0
В качестве регистров могут быть использованы A, B, C, D, E, H, L, M. При выполнении этой команда содержимое выбранного регистра увеличивается (а) или уменьшается (б) на единицу. Команда изменяет содержимое всех триггеров признаков кроме признака переноса, который остается без изменения. Команда выполняется за один цикл (5 тактов), а если в качестве регистра выбрана память M, то число циклов увеличивается до трех (10 тактов).
В команде DCR ri триггер Th устанавливается так же, как и команде вычитания.
Примеры:
A) INR L
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
015A | 2C | 2C |
L | DB | DC |
FL | ||
PC | 015A | 015B |
DCR M
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
H | ||
L | ||
EF | EE | |
FL | ||
PC |
C9) DCR E
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
02C9 | 1D | 1D |
E | A0 | 9F |
FL | ||
PC | 02C9 | 02CA |
C) INR B
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
012C | ||
B | FF | |
FL | ||
PC | 012C | 012D |
Дата добавления: 2016-05-11; просмотров: 1473;