- •Отчет по лабораторной работе № 2
- •Краткие теоритические сведения
- •0803 2F cma инвертировать число в a
- •Анализ по машинным циклам и тактам выполнения двух (однобайтной и трёхбайтной) произвольно выбранных команд из программы 3.3.
- •Исследование команд арифметического сложения.
- •Исследование операций сравнения однобайтных чисел.
Исследование команд арифметического сложения.
Таблица №4 – правила двоичного сложения.
1 |
0 + 0 = 0 |
2 |
0 + 1 = 1 |
3 |
1 + 1 = 0 + перенос 1 в следующий разряд |
4 |
1 + 1 + 1 = 1 + перенос 1 в следующий разряд |
Программа 2.5.
Увеличение на 5 числа, записанного в ячейке памяти по адресу 0B00h и записи результата в ячейку памяти с адресом 0B01h.
Адрес Число Мнемокод Комментарий
0800 3А LDA 0B00h пересылка числа из ячейки адресом
0B00 в регистр А
0801 00
0802 0B
0803 C6 ADI 05 (A)+5 выполнить сложение
0804 05
0805 32 STA 0B01h пересылка числа из регистра А в
ячейку 0B01
0806 01
0807 0B
0808 CF RST 1
Таблица №5 - Результат выполнения программы 2.5.
Значение числа в ячейке 0B00 |
Значение числа в ячейке 0B01 |
Бит CY |
EC |
F1 |
0 |
05 |
0A |
0 |
CD |
D2 |
0 |
FE |
03 |
1 |
Вывод: разработанная программа удовлетворяет заданию, но не дает возможность определения влияния на CY в результате увеличения числа на5.
Программа 2.6.
Программа 2.6. Сложение двух чисел, записанных в ячейках с адресами 0B00h и 0BA0h с последующей записью результата в ячейку с адресом 0B01. Осуществить пуск программы и проверить результат ее выполнения в ячейке с адресом 0B01h при исходных числах равных: 0Bh и B0h, FEh и B5h, A1h и C3h.
Адрес Число Мнемокод Комментарии
0800 3A 00 0B LDA 0B00 пересылка числа из ячейки
адресом 0B00 в регистр A
0803 21 A0 0B LXI H,0BA0 подготовить в HL адрес
ячейки M
0806 86 ADD M (A) + M(HL) выполнить
сложение
0807 32 01 0B STA 0B01h пересылка числа из регистра
А в ячейку 0B01
08A0 CF RST 1
Таблица №6 - Результат выполнения программы 2.6
Значение числа в ячейке 0B00 |
Значение числа в ячейке 0BA0 |
Значение числа в ячейке 0B01 |
Бит CY |
0B |
B0 |
BB |
0 |
FE |
B5 |
B3 |
1 |
A1 |
C3 |
64 |
1 |
Вывод: разработанная программа удовлетворяет заданию, но не дает возможность определения влияния на CY в результате сложения двух чисел.
Видоизмененная программа 2.6. (с учетом влияния на CY)
0001 0000 ; Программа 2.6
0002 0000 ;Входной параметр: M(0B00) - исходное число
0003 0000 ;Выходной параметр: M(0B01) - результат инвертирования
0004 0800 .org 0800h ; Область программы
0005 0800 3A 00 0B LDA 0B00h; переместить в А число из 0В00
0006 0803 21 A0 0B LXI H,0BA0; поместить в HL число из 0ВА0
0007 0806 86 ADD M ; сложение А и HL
0008 0807 32 01 0B STA 0B01h ; пересылка из А в 0В01
0009 080A DA 12 08 JC M00; переход к М0, если CY=1
0010 080D 3E 00 MVI A,00; обнуление аккумулятора
0011 080F C3 14 08 JMP M01; переход к М1,если условие не
выполненно
0012 0812 3E 01 M00: MVI A,01; пересылка числа 01 в регистр А
0013 0814 32 02 0B M01: STA 0B02h; пересылка из А в ячейку 0В02
0014 0817 CF RST 1; вернуться в монитор
0015 0818 ;в микро-ЭВМ УМК-80 для возврата в монитор
следует пользоваться ;командой RST 7.
0016 0818
0017 0818 .end
tasm: Number of errors = 0
Таблица №9 - Результат выполнения видоизмененной программы 2.6.
Значение числа в ячейке 0B00 |
Значение числа в ячейке 0BA0 |
Значение числа в ячейке 0B01 |
Значение числа в регистре 01 (влияние на CY) |
0B |
B0 |
BB |
0 |
FE |
B5 |
B3 |
1 |
A1 |
C3 |
64 |
1 |
Рисунок №2 – блок-схема к видоизмененной программе 2.6.
Вывод: при сложении однобайтных чисел результат может получится двухбайтным; чтобы учесть это, необходимо оценивать бит CY, который указывает на то, что имеет место перенос, что было реализовано в видоизмененной программе 2.6.