
Лабораторная работа №1 «Исследование простых цикловых программ»
Цель: Ознакомиться с методикой построения программ и блок – схемами алгоритмов на машинном языке
Программа №1
Заполнение массива памяти константой
Исходными данными для составления программы являются:
H, L- начальный адрес массива (0850)
В-размерность массива (10)
С-сама константа (0F)
адрес |
машинный код |
метка |
мнемокод |
t |
примечание |
0800 |
215008 |
|
LXI H 0850 |
10 |
(H)08,(L)50 |
0803 |
010F10 |
|
LXI B 100F |
10 |
(B)10,(C)0F |
0806 |
71 |
M1 |
MOV M,C |
7 |
(M)(C) |
0807 |
23 |
|
INX H |
5 |
(H,L)(H,L)+1 |
0808 |
05 |
|
DСR B |
5 |
(B,C)(B,C)-1 |
0809 |
C20608 |
|
JNZ 0806 |
10 |
переход если Z=0 |
080С |
FF |
|
RST 7 |
11 |
переход на связь с пультом |
Время выполнения программы:
t=10+10+(7+5+5+10)*16+11=463T
t=463/2=231,5мкс
Программа №2
Заполнение массива памяти нарастающей константой
Исходными данными для составления программы являются:
H, L- начальный адрес массива (0850)
В-размерность массива (10)
С-сама константа (0F)
адрес |
машинный код |
метка |
мнемокод |
t |
примечание |
0800 |
215008 |
|
LXI H 0850 |
10 |
(H)08,(L)50 |
0803 |
010F10 |
|
LXI B 100F |
10 |
(B)10,(C)0F |
0806 |
71 |
M1 |
MOV M,C |
7 |
(M)(C) |
0807 |
23 |
|
INX H |
5 |
(H,L)(H,L)+1 |
0808 |
0С |
|
INX С |
5 |
(С)(С)+1 |
0809 |
05 |
|
DСR B |
5 |
(B,C)(B,C)-1 |
080A |
C20608 |
|
JNZ 0806 |
10 |
переход если Z=0 |
080D |
FF |
|
RST 7 |
11 |
переход на связь с пультом |
Время выполнения программы:
t=10+10+(7+5+5+5+10)*16+11=543T
t=543/2=271,5мкс
Программы №3
Копирование массива в памяти
Входные параметры:
H, L - начальный адрес исходного массива 0850
В, С - начальный адрес скопированного массива
Е - длина массива.
адрес |
машинный код |
метка |
мнемокод |
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 |
7E |
M1 |
MOV A,M |
7 |
(A)(H,L) |
0819 |
02 |
|
STAX B |
7 |
(B,C)(A) |
081А |
23 |
|
INX H |
5 |
(H,L)(H,L)+1 |
081В |
03 |
|
INX B |
5 |
(B,C)(B,C)+1 |
081С |
1D |
|
DСR E |
5 |
(E)(E)-1 |
081D |
C21808 |
|
JNZ 0818 |
10 |
переход если Z=0 |
0820 |
FF |
|
RST 7 |
11 |
переход на связь с пультом |
Время выполнения команды:
t=10+10+7+(7+7+5+5+5+10)*16+11=662T
t=662/2=331мкс