Российский государственный
профессионально-педагогический университет
Институт электроэнергетики и информатики
Кафедра микропроцессорной управляющей вычислительной техники
Лабораторная работа № 5
«Изучение временных диаграмм выполнения команд управления программой»
Выполнил: Дёмкин П.В.
Группа: ВТ-416
Проверил: Мешков В.В.
Екатеринбург, 2008
Цель работы: Изучение особенностей функционирования микропроцессора при выполнении команд передачи управления, организации условных и безусловных переходов в программах; приобретение навыков модульного программирования.
Команды управления программой. Таблица:
Мнемоника команд |
Число байт |
Выполняемые действия |
Состав машинных циклов/кол-во тактов в циклах |
А. Команды простых переходов. I. Команды безусловного перехода |
|||
JMP <B2><B3> |
3 |
(PC)L<=<B2> (PC)H <=<B3> |
J, 2/3, 2/3 |
II. Команды условного перехода. 1.Команды переходов по состоянию флага нуля (Z) А) Переход, если результат нулевой (Z=1) |
|||
JZ <B2><B3> |
3 |
(PC)L <=<B2> (PC)H <=<B3> (PC)<=(PC)+1 |
¼, 2/3, 2/3 если условие перехода выполняется ¼, 2/3, 2/3 если условие перехода не выполняется |
В) Переход если результат не нулевой (Z=0) |
|||
JNZ <B2><B3> |
3 |
(PC) ¬ (byte 3, byte 2) |
¼, 2/3, 2/3 |
2. Команды перехода по состоянию флага переноса С А) переход если перенос имеется (С=1) |
|||
JC <B2><B3> |
3 |
то же, если CY = 1 |
¼, 2/3, 2/3 |
Б) Переход, если перенос отсутствует (С=0) |
|||
JNC <B2><B3> |
3 |
то же, если CY = 0 |
¼, 2/3, 2/3 |
3). Команды перехода по состоянию флага четности(P) A) Переход, если результат четный (Р=1) |
|||
JPE <B2><B3> |
3 |
то же, если P = 1 |
¼, 2/3, 2/3 |
Б) Переход, если результат не четный |
|||
JPO <B2><B3> |
3 |
то же, если P = 0 |
¼, 2/3, 2/3 |
4. Команды перехода по состоянию флага знака (S) А) Переход, если результат отрицательный (S=1) |
|||
JM <B2><B3> |
3 |
то же, если S = 1 |
¼, 2/3, 2/3 |
Б) Переход, если результат положительный (S =0) |
|||
JP <B2><B3> |
3 |
то же, если S = 0 |
¼, 2/3, 2/3 |
Б. Команды переходов с возвратом I. Команды безусловных переходов с возвратом 1. Команды безусловного перехода к подпрограмме |
|||
CALL <B2><B3> |
3 |
(M)SP-1 ¬ (PCh) (M)SP-2 ¬ (PCl) (SP) ¬ (SP) - 2 (PC) ¬ ( byte 3, 2) |
1/5, 2/3, 2/3, 5/3 5/3 |
2. Команды безусловного возращения из подпрограммы |
|||
RET |
1 |
(PC)L<=M(SP) (PC)H<=M(SP+1) (SP)<=(SP+2) |
¼. 4/3. 4/3 |
II. Команды условных переходов с возвратом
1) Команды условных переходов по состоянию флага нуля (Z) А) Переход если результат нулевой (Z=1) |
|||
CZ |
3 |
Аналогично CALL (PC)<=(PC+1) |
1/5. 2/3. 2/3. 5/3. 5/3 Если условие перехода к подпрограмме выполняется 1/5, 2/3, 2/3 Если условие перехода к подпрограмме не выполняется |
Б) Переход если результат не нулевой (Z=0) |
|||
СNZ <B2><B3> |
3 |
то же, если Z = 0 |
1/5. 2/3. 2/3. 5/3. 5/3 1/5, 2/3, 2/3 |
2) Команды условных переходов по состоянию флага переноса (С) А) переход, если перенос имеется (С=1) |
|||
СС <B2><B3> |
3 |
то же, если CY = 1 |
1/5. 2/3. 2/3. 5/3. 5/3 1/5, 2/3, 2/3 |
Б) переход, если переноса нет (С=0) |
|||
СNC <B2><B3> |
3 |
то же, если CY = 0 |
1/5. 2/3. 2/3. 5/3. 5/3 1/5, 2/3, 2/3 |
3) Команды условных переходов по состоянию флага четности (Р) А) переход, если результат четный (Р=1) |
|||
CPE <B2><B3> |
3 |
то же, если P = 1 |
1/5. 2/3. 2/3. 5/3. 5/3 1/5, 2/3, 2/3 |
Б) переход, если результат не четный (P=0) |
|||
CPO <B2><B3> |
3 |
то же, если P = 0 |
1/5. 2/3. 2/3. 5/3. 5/3 1/5, 2/3, 2/3 |
4) Команды условных переходов по состоянию флага знака (S) А) переход, если результат отрицательный (S=1) |
|||
CM <B2><B3> |
3 |
то же, если S = 1 |
1/5. 2/3. 2/3. 5/3. 5/3 1/5, 2/3, 2/3 |
б) переход, если результат положительный (S=0) |
|||
CP <B2><B3> |
3 |
то же, если S = 0 |
1/5. 2/3. 2/3. 5/3. 5/3 1/5, 2/3, 2/3 |
1) Команды условных возвратов по состоянию флага нуля (Z) a) возврат если результат нулевой (Z=1) |
|||
RZ |
1 |
То же самое что и RET (РС) <=(PC-1) |
1/5. 4/3 4/3, если условие возврата из подпрограммы выполняется |
Б) возврат, если результат не нулевой (Z=0) |
|||
RNZ |
1 |
то же, если Z = 0 |
1/5. 4/3 4/3 |
5) Команды условных возвратов по состоянию флага переноса (С) А) возврат, если перенос имеется (С=1) |
|||
RC |
1 |
то же, если CY = 1 |
1/5. 4/3 4/3 |
Б) возврат, если переноса нет (С=0) |
|||
RNC |
1 |
то же, если CY = 0 |
1/5. 4/3 4/3 |
6) Команды условных возвратов по состоянию флага четности (Р) А) возврат, если результат четный (Р=1) |
|||
RPE |
1 |
то же, если P = 1 |
1/5. 4/3 4/3 |
Б) возврат, если результат не четный (P=0) |
|||
RPO |
1 |
то же, если P = 0 |
1/5. 4/3 4/3 |
7) Команды условных возвратов по состоянию флага знака (S) А) возврат, если результат отрицательный (S=1) |
|||
RM |
1 |
то же, если S = 1 |
1/5. 4/3 4/3 |
б) возврат, если результат положительный (S=0) |
|||
RP |
1 |
то же, если S = 0 |
1/5. 4/3 4/3 |
В. Команды рестарта |
|||
RST 0 |
1 |
То же самое, что и CALL, но адрес определяется модификацией команды Адрес перехода 0000 |
1/5, 5/3, 5/3 |
RST 1 |
1 |
0008 |
1/5, 5/3, 5/3 |
RST 2 |
1 |
0010 |
1/5, 5/3, 5/3 |
RST 3 |
1 |
0018 |
1/5, 5/3, 5/3 |
RST 4 |
1 |
0020 |
1/5, 5/3, 5/3 |
RST 5 |
1 |
0028 |
1/5, 5/3, 5/3 |
RST 6 |
1 |
0030 |
1/5, 5/3, 5/3 |
RST 7 |
1 |
0038 |
1/5, 5/3, 5/3 |
Задача: составить программу пересылки массива данных из области памяти 0800-0809 в область памяти 0810-0819.
Блок схема:
Листинг программы:
адрес |
код |
мнемоника |
комментарий |
0820 |
26 |
MVI H, data8 |
H←0A |
0821 |
0A |
||
0822 |
01 |
LXI B, data16 |
BC←0800 |
0823 |
00 |
||
0824 |
08 |
||
0825 |
11 |
LXI D, data16 |
DE←0810 |
0826 |
10 |
||
0827 |
08 |
||
0828 |
0A |
LDAX B |
A←M(BC) |
0829 |
12 |
STAX D |
M(DE)←A |
082A |
13 |
INX D |
DE=DE+1 |
082B |
03 |
INX B |
BC=DC+1 |
082C |
25 |
DCR H |
H=H-1 |
082D |
C2 |
JNZ addr |
проверили условие |
082E |
28 |
||
082F |
08 |
||
0830 |
76 |
HLT |
остановка |
Задача:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.