Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_po_lab_2.doc
Скачиваний:
2
Добавлен:
20.11.2019
Размер:
610.82 Кб
Скачать

Исследование команд арифметического сложения.

Таблица №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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]