Программа №4
Обмен массивами в памяти
адрес |
машинный код |
метка |
мнемокод |
t |
примечание |
0810 |
215008 |
|
LXI H 0850 |
10 |
(H,L)0850 |
0813 |
010009 |
|
LXI B 0900 |
10 |
(B,C)0900 |
0816 |
1E10 |
|
MVI E,10 |
7 |
(E)10 |
0818 |
56 |
M1 |
MOV D,M |
7 |
(D)(H,L) |
0819 |
0A |
|
LDAX B |
7 |
(A)(B,C) |
081A |
77 |
|
MOV M,A |
7 |
(H,L)(A) |
081B |
7A |
|
MOV A,D |
7 |
(A)(D) |
081C |
02 |
|
STAX B |
7 |
(B,C)(A) |
081D |
23 |
|
INX H |
5 |
(H,L)(H,L)+1 |
081E |
03 |
|
INX B |
5 |
(B,C)(B,C)+1 |
081F |
10 |
|
DСR E |
5 |
(E)(E)-1 |
0820 |
C21808 |
|
JNZ 0818 |
10 |
переход если Z=0 |
0823 |
FF |
|
RST 7 |
11 |
переход на связь с пультом |
Время выполнения программы:
t=10+10+7+(7+7+7+7+7+5+5+5+10)*16+11=998T
t=998/2=499мкс
Программа №5
Сложение двух целых двоично – десятичных чисел
адрес |
машинный код |
метка |
мнемокод |
t |
примечание |
0800 |
010009 |
|
LXI B 0900 |
10 |
(B,C)0900 |
0803 |
211009 |
|
LXI H 0910 |
10 |
(H,L)0910 |
0806 |
1E08 |
|
MVI E,08 |
7 |
(E)8 |
0808 |
CD5008 |
|
CALL C8N10 |
17 |
вызов программы сложения |
080B |
FF |
|
RST 7 |
11 |
переход на связь с пультом |
0850 |
53 |
C8N10 |
MOV D,E |
7 |
(D)(E) |
0851 |
C5 |
|
PUSH B |
11 |
(SP)(B,C); (SP)(SP)-2 |
0852 |
AF |
|
XRA A |
4 |
(A)
(A) |
0853 |
0A |
MC1 |
LDAX B |
10 |
(A)((B,C)) |
0854 |
8E |
|
ADC M |
7 |
(A)(A)+((H,L))+(CY) |
0855 |
27 |
|
DAA |
4 |
десятичная настройка регистра А |
0856 |
02 |
|
STAX B |
7 |
((B,C))(A) |
0857 |
03 |
|
INX B |
5 |
(B,C)(B,C)+1 |
0858 |
23 |
|
INX H |
5 |
(H,L)(H,L)+1 |
0859 |
1D |
|
DСR E |
5 |
(E)(E)-1 |
085A |
C25308 |
|
JNZ 0853 |
10 |
переход если Z = 0 |
085D |
C1 |
|
POP B |
10 |
(B,C)(SP) |
085E |
5A |
|
MOV E,D |
7 |
(E)(D) |
085F |
C9 |
|
RET |
11 |
возврат из подпрограммы безусловный |
Время выполнения программы:
t=10+10+7+17+7+11+4+(10+7+4+7+5+5+5+10)*8+10+10+7+11+11=539T
t=539/2=269,5мкс

(A);
(CY)0