лаба 5(4)
.docx
Таблица 5
Адрес |
Данные |
Мнемоника команды |
Слово состояния МП |
0800 |
3E |
MVI A |
|
0801 |
08 |
MVI A |
|
0802 |
06 |
MVI B |
|
0803 |
00 |
MVI B |
|
0804 |
21 |
LXI H |
|
0805 |
00 |
LXI H |
|
0806 |
00 |
LXI H |
|
0807 |
EB |
XCHG |
|
0808 |
29 |
DAD H |
|
0809 |
EB |
XCHG |
|
080A |
D2 |
JNC |
|
080B |
0E |
JNC |
|
080C |
08 |
JNC |
|
080D |
09 |
DAD B |
|
080E |
3D |
DCR A |
|
080F |
C8 |
RZ |
|
0810 |
29 |
DAD H |
|
0811 |
CE |
JMP |
|
0812 |
07 |
JMP |
|
0813 |
08 |
JMP |
|
3. Исследовали программы деления двух 8-разрдных чисел.
3.1. Введи в микроЭВМ программы для исследования результата деления двух чисел (таблицы 6-7).
3.2. Осуществили пуск программы в автоматическом режиме и проверили результаты деления двух чисел.
Таблица 6
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
16 00 |
MVI D |
00 |
Загрузили в регистр D число 00 |
0802 |
78 |
MOV A,B |
|
Содержимое регистра В загрузили в аккумулятор |
0803 |
91 |
SUB C |
|
Из содержимого аккумулятора вычли содержимое регистра С, результат записали в аккумулятор |
0804 |
DA 0B 08 |
JC |
080B |
Выполнить переход на ячейку памяти М(080В), если признак С=1 |
0807 |
14 |
INR D |
|
Инкрементировали содержимое регистра D |
0808 |
C3 03 08 |
JMP
|
0803 |
Выполнили переход на ячейку памяти М(0803) |
080B |
81 |
ADD C |
|
Сложили содержимое аккумулятора и регистра С, результат поместили в аккумулятор |
080C |
C9 |
RET |
|
Вышли из подпрограммы |
Загрузили в регистры B=0516, C=0416. После выполнения программы в регистре D получили результат 0116, в регистре A получили результат 0116.
Таблица 7
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 08 00 |
LXI H |
0800 |
Записать в регистровую пару (HL) число 0800 |
0803 |
1E 00 |
MVI E |
00 |
В регистр Е загрузили 00 |
0805 |
79 |
MOV A,C |
|
Содержимое регистра С загрузили в аккумулятор |
0806 |
17 |
RAL |
|
Сдвинули содержимое аккумулятора влево через перенос |
0807 |
4F |
MOV C,A |
|
Содержимое аккумулятора переслали в регистр С |
0808 |
7B |
MOV A,E
|
|
Содержимое регистра Е загрузили в аккумулятор |
0809 |
17 |
RAL |
|
Сдвинули содержимое аккумулятора влево через перенос |
Окончание таблицы 7
080A |
92 |
SUB D |
|
Из содержимого аккумулятора вычли содержимое регистра D, результат записали в аккумулятор |
080B |
D2 0F 08 |
JNC |
080F |
Выполнить переход на ячейку памяти М(080F), если признак С=0 |
080E |
82 |
ADD D |
|
Сложили содержимое аккумулятора и регистра D, результат поместили в аккумулятор |
080F |
5F |
MOV E,A |
|
Содержимое аккумулятора переслали в регистр E |
0810 |
3F |
CMC |
|
Инвертировали содержимое регистра С |
0811 |
7C |
MOV A,H |
|
Содержимое регистра Н загрузили в аккумулятор |
0812 |
17 |
RAL
|
|
Сдвинули содержимое аккумулятора влево через перенос |
0813 |
67 |
MOV H,A |
|
Содержимое аккумулятора переслали в регистр Н |
0814 |
2D |
DCR L |
|
Декрементировали содержимое регистра L |
0815 |
C2 05 08 |
JNZ |
0805 |
Выполнить переход на ячейку памяти М(0805), если признак Z=0 |
0818 |
C9 |
RET |
|
Вышли из подпрограммы |
Загрузили в регистры С=0516, D=0416. После выполнения программы в регистре H получили результат 0116, в регистре E получили результат 0116.
3.3. Осуществили пуск программы в пошаговом режиме, для исследования их работы по машинным циклам, результаты наблюдений свели в таблицы 8,9
Таблица 8
Адрес |
Данные |
Мнемоника команды |
Слово состояния МП |
0800 |
16 |
MVI D |
|
0801 |
00 |
MOV A,B |
|
0802 |
78 |
SUB C |
|
0803 |
91 |
JC |
|
0804 |
DA |
INR D |
|
0805 |
0B |
JMP |
|
0806 |
08 |
ADD C |
|
0807 |
14 |
RET |
|
0808 |
C3 |
SUB C |
|
Окончание таблицы 8
0809 |
03 |
JC |
|
080A |
08 |
INR D |
|
080B |
81 |
JMP |
|
080C |
C9 |
ADD C |
|
080D |
91 |
RET |
|
080E |
DA |
JMP |
|
080F |
0B |
ADD C |
|
0810 |
08 |
RET |
|
0811 |
14 |
SUB C |
|
0812 |
C3 |
JC |
|
0813 |
03 |
INR D |
|
0814 |
08 |
JMP |
|
0815 |
81 |
ADD C |
|
0816 |
C9 |
RET |
|
Таблица 9
Адрес |
Данные |
Мнемоника команды |
Слово состояния МП |
0800 |
21 |
LHI H |
|
0801 |
08 |
LHI H |
|
0802 |
00 |
LHI H |
|
0803 |
1E |
MVI E |
|
0804 |
00 |
MVI E |
|
0805 |
79 |
MOV A,C |
|
0806 |
17 |
RAL |
|
0807 |
4F |
MOV C,A |
|
0808 |
7B |
MOV A,E |
|
0809 |
17 |
RAL |
|
080A |
92 |
SUB D |
|
080B |
D2 |
JNC |
|
080C |
0F |
JNC |
|
080D |
08 |
JNC |
|
080E |
82 |
ADD D |
|
080F |
5F |
MOV E,A |
|
0810 |
3F |
CMC |
|
0811 |
7C |
MOV A,H |
|
0812 |
17 |
RAL |
|
0813 |
67 |
MOV H,A |
|
0814 |
2D |
DCR L |
|
0815 |
C2 |
JNZ |
|
0816 |
05 |
JNZ |
|
0817 |
08 |
JNZ |
|
0818 |
C9 |
RET |
|
4. Исследовали программы вычисления квадрата числа с помощью таблицы.
4.1. Ввели в микроЭВМ программу для исследования результата возведения в квадрат заданного числа (Таблица 10)
Таблица 10
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0900 |
26 00 |
MVI H |
00 |
В регистр H загрузили 00 |
0902 |
11 00 0A |
LXI D |
0A00 |
Записать в регистровую пару (DE) число 0A00 |
0905 |
19 |
DAD D |
|
Содержимое регистровой пары (HL) сложили с содержимым регистровой пары (DE) и результат поместили в регистровую пару (HL) |
0906 |
66 |
MOV H,M |
|
Содержимое ячейки памяти указанной в регистровой паре (HL) поместили в регистр H |
0907 |
FF |
RST 7 |
|
Прервали выполнение программы |
0A00 |
00 |
|
00 |
Таблица квадратов чисел |
0A01 |
01 |
|
01 |
|
0A02 |
04 |
|
04 |
|
0A03 |
09 |
|
09 |
|
0A04 |
10 |
|
10 |
|
0A05 |
19 |
|
19 |
|
0A06 |
24 |
|
24 |
|
0A07 |
31 |
|
31 |
|
0A08 |
40 |
|
40 |
|
0A09 |
81 |
|
81 |
|
0A0A |
64 |
|
64 |
Загрузили в регистр L=0316. После выполнения программы в регистре H получили результат 0916.
4.2. Осуществили пуск программы в автоматическом режиме и проверили результаты возведения в квадрат.
4.3. Осуществили пуск программы в пошаговом режиме, для исследования ее работы по машинным циклам, результат в таблице 11.
Таблица 11
Адрес |
Данные |
Мнемоника команды |
Слово состояния МП |
0900 |
26 |
MVI H |
|
0901 |
00 |
MVI H |
|
0902 |
11 |
LXI D |
|
0903 |
00 |
LXI D |
|
0904 |
0A |
LXI D |
|
0905 |
19 |
DAD D |
|
0906 |
66 |
MOV H,M |
|
0907 |
FF |
RST 7 |
|
Вывод.
Ознакомились с принципами работы на УМК в пошаговом режиме работы, изучили машинные циклы и алгоритмы выполнения арифметических операций умножения и деления.