Для разрабатываемой микропроцессорной системы выбрана тактовая частота 2МГц. Значит длинна одного машинного такта будет составлять t=0.5мкс. Необходимое количество тактов для обеспечения паузы в 1 секунду равно n=2000000. Рассмотрим длительность процедур “Pusk” и “Stop”.
Процедура “Pusk”
Метка |
Мнемо код |
Количество тактов |
||
Pusk: |
mvi |
A |
,01h |
|
MT1: |
out |
PA |
10 |
|
mov |
B |
,A |
5 |
|
in |
PB |
7 |
||
cmp |
B |
4 |
||
jnz |
AVAR1 |
10 |
||
push |
PSW |
11 |
||
call |
Delay1 |
17 |
||
pop |
PSW |
11 |
||
stc |
4 |
|||
ral |
4 |
|||
cpi |
FFh |
7 |
||
jnz |
MT1 |
10 |
||
out |
PA |
10 |
||
ret |
Процедура “Stop”
Метка |
Мнемо код |
Количество тактов |
||
Stop: |
mvi |
A |
,7Fh |
|
MT2: |
out |
PA |
10 |
|
mov |
B |
,A |
5 |
|
in |
PB |
7 |
||
cmp |
B |
4 |
||
jnz |
AVAR2 |
10 |
||
push |
PSW |
11 |
||
call |
Delay1 |
17 |
||
pop |
PSW |
11 |
||
ana |
A |
4 |
||
rar |
4 |
|||
cpi |
00h |
7 |
||
jnz |
MT2 |
10 |
||
out |
PA |
10 |
||
ret |
Таким образом обе процедуры имеют одинаковое количество тактов между выводами в порт равное n=10+5+7+4+10+11+17+11+7+4+4+10=100. На процедуру Delay1 остаётся 1999900 тактов.
Рассмотрим процедуру Delay1:
адрес |
Маш. Код |
Метка |
Мнемо код |
Комментарий |
||||
0109h |
78 |
4D |
C3 |
Delay1: |
lxi |
B |
,C34Dh |
;(BC)¬С34Dh ;(10 тактов) |
010Ch |
00 |
DM: |
nop |
;(4) |
||||
010Dh |
00 |
nop |
;(4) |
|||||
010Eh |
00 |
nop |
;(4) |
|||||
010Fh |
00 |
nop |
;(4) |
|||||
0110h |
0B |
dcx |
B |
;(BC)¬(BC)-1 (5) |
||||
0111h |
78 |
mov |
A |
,B |
;(А)¬(B) (5) |
|||
0112h |
81 |
add |
C |
;(A)¬(А)+(C) (4) |
||||
0113h |
C2 |
0C |
01 |
jnz |
DM |
;(10) |
||
0116h |
C9 |
ret |
;возврат из п\п |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.