Лабораторная работа №5
Изучение временных диаграмм выполнение команд управления программой.
Цель: изучить особенности функционирования микропроцессора при выполнении команд управления, организации условных и безусловных переходов в программах; приобрести навыки модульного программирования.
1. Команды загрузки и перемещения данных.
Мнемоника команд |
Число байт |
Выполняемые действия |
Состав машинных циклов/количество тактов в циклах |
Команды загрузки в аккумулятор |
|||
LDAX RP |
1 |
A<=M(RP) |
1/4; 2/3=2/7 |
LDA<B2><B3> |
3 |
A<=M(B3,B2) |
4/3=1/4+2/3+3/5+1/3 |
Команды запоминания содержимого аккумулятора |
|||
STAX RP |
1 |
M(RP)<=A |
1/2=1/4 |
STA<B2><B3> |
3 |
M(B3,B2)<=A |
4/13=1/4,2/3; 3/3 4/4 |
Команды реестровых пар и указателя стека |
|||
LXI RP<B2><B3> |
3 |
RP<=<B2><B3> |
3/10=1/4,2/3,3/3 |
LXI SP<B2><B3> |
3 |
3/10=1/4,2/3,3/3 |
|
LHLD<B2><B3> |
3 |
L<=M(B2,B3); H<=M(B2+1,B3) |
5/16=1/4,2/3,3/3,4/3 |
Команда запоминания содержимого регистровой пары HL |
|||
SHLD<B2><B3> |
3 |
M(B2,B3)<=L; M(B2+1,B3)<=H |
5/16=1/5,2/3,3/3,4/3,5/3 |
Команды перемещения данных |
|||
MOV R1,R2 |
1 |
R1<=R2 |
1/5 |
MOV R,M |
1 |
R<=M(HL) |
2/7=1/4+2/3 |
MOV M,R |
1 |
M(HL)<=R |
2/7=1/4+2/3 |
MVI R <B2> |
2 |
R<=B2 |
2/7=1/4+2/3 |
MVI M <B2> |
2 |
M(HL)<=B2 |
3/10=1/4+2/3 |
Команды межрегистрового обмена |
|||
XCHG |
1 |
L<=>E H<=>D |
1/4 |
XTHL |
1 |
L<=>M(SP), H<=>M(SP+1) |
1/5 |
SPHL |
1 |
SP<=L, SP<=H |
1/5 |
PCHL |
1 |
PC<=L, PC<=H |
1/1,1/5 |
Команды операций со стеком |
|||
PUSH RP |
1 |
SP<=SP-1; M(SP)<=RP |
3/11=1/5+2/3+3/3 |
PUSH PSW |
1 |
M(SP)<=A |
3/11=1/5+2/3+3/3 |
POP RP |
1 |
RPL<=M(SP) |
3/10=1/4+2/3+3/3 |
POP PSW |
1 |
SP<=SP-1, M(SP)<=A, SP<=SP-1, M(SP)<=F, F=M(SP), SP<=SP+1, A<=M(SP), SP<=SP+1 |
3/10=1/4+2/3+3/3 |
Условные обозначения:
RP - имя регистровой пары
R - имя регистра
M - ячейка памяти с адресом, указанным в регистровой паре
SP - указатель стека
PC - программный счетчик
PSW - регистр СС программы
При выполнении той или иной команды МП в самом начале машинного цикла формирует её и выдает на ШД 8-разрядное слово состояние. Код СС соответствует типу выполняемого машинного цикла команды.
2. Типы машинных циклов и коды СС МП.
Разряд СС |
Условное обозначение сигнала |
Тип выполняемого машинного цикла |
|||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
||
D0 |
ППР(INIT) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
D1 |
ЗП/ВЫП(WO) |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
D2 |
СТЕК(STACK) |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
D3 |
П.ОСТ(HLTA) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
D4 |
ВЫВ(OUT) |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
D5 |
М1(M1) |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
D6 |
ВВ(INP) |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
D7 |
ЧТ.ПАМ(MEMR) |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
H-код СС |
A2 |
82 |
00 |
86 |
04 |
42 |
10 |
23 |
8A |
2B |
Типы машинных циклов:
1 (A2) – выборка команды из памяти
2 (82) – чтение информации из памяти
3 (00) – запись информации в память
4 (86) – чтение информации из стека
5 (04) – запись информации в стек
6 (42) – ввод информации из внешнего устройства
7 (10) – вывод информации во внешнее устройство
8 (23) – обработка прерывания
9 (8A) – останова
10 (2B) – обработка прерывания во время останова
Задание: составить программу пересылки массива данных из области памяти 0800 – 0809 в область памяти 0810 – 0819.
3. Блок-схема программы
4. Листинг программы в машинном коде и на языке Assembler
Адрес |
Машинный код |
Мнемоника команды |
Комментарии |
0820 |
0E |
MVI C,0A |
C<=0A – передача 8-разрядных данных 0A в регистр C |
0821 |
0A |
||
0822 |
21 |
LXI H,0800 |
rpH<=0800 – передача в регистровую пару H 16-разрядных данных в виде адреса памяти 0800 |
0823 |
00 |
||
0824 |
08 |
||
0825 |
11 |
LXI D,0810 |
rpD<=0810 – передача в регистровую пару D 16-разрядных данных в виде адреса памяти 0810 |
0826 |
10 |
||
0827 |
08 |
||
0828 |
7E |
MOV A,M |
A<=M(rpH) – передача в аккумулятор данных из rpH |
0829 |
EB |
XCHG |
H<=>D,L<=>E – обмен содержимым rpH и rpD |
082A |
77 |
MOV M,A |
M(rpH)<=A – передача из аккумулятора данных в rpH |
082B |
EB |
XCHG |
H<=>D,L<=>E – обмен содержимым rpH и rpD |
082C |
2C |
INR L |
L<=L+1 – увеличение на 1 8-разрядного регистра L |
082D |
1C |
INR E |
E<=E+1 – увеличение на 1 8-разрядного регистра E |
082E |
0D |
DCR C |
C<=C-1 – уменьшение на 1 8-разрядного регистра С |
082F |
C2 |
JNZ 0828 |
PC<=0828 – задает переход на выполнение команды, расположенной по адресу 0828. При условии что флаг Z=0 |
0830 |
28 |
||
0831 |
08 |
||
0832 |
76 |
HLT |
Останов процессора |
5. Временные диаграммы.
Самая короткая команда: XCHG: 1/4 (перенос из регистра в память устройства, запись в противоположный регистр)
Самая длинная команда: XTHL L<=>M(SP); H<=>M(SP+1)
LHLD<B2><B3> L<=M<B3><B2> 5/16
Вывод: изучили особенности функционирования микропроцессора при выполнении команд управления, организации условных и безусловных переходов в программах; приобрели навыки модульного программирования..
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.