Добавил:
інстаграм _roman.kob, курсові роботи з тєрєхова в.в. для КІ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
звіт лаб5.docx
Скачиваний:
15
Добавлен:
31.05.2020
Размер:
167.18 Кб
Скачать

Хід виконання роботи

  1. Розробити алгоритм і написати програму додавання довільних 16-розрядних двійкових чисел із знаком, поданих у форматі з фіксованою комою у модифікованому доповняльному коді у інструкціях навчального комп’ютера DeComp.

Блок-схема алгоритму:

Ввід чисел

Перше число від’ємне

Ні

Так

Перевести число у доповняльний код

Друге число від’ємне

Ні

Так

Перевести число у доповняльний код

Додати числа у доповняльних кодах

Виникло переповнення розрядної сітки

Так

Ні

Ні

Результат від’ємний число

Результат втрачено,

Записати ознаку переповнення

Так

Переведення результату у прямий код

Кінець

Інформація про вхідні дані і їх попереднє розташування у комірках пам’яті:

Вхідними даними будуть числа A та B, які розташовуватимуться у 27-ій та 28-ій комірках пам’яті відповідно. Змінна А дорівнює десятковому числу 1010, яке у модифікованому доповняльному коді дорівнює 0000 0000 0000 10102. Змінна B дорівнює десятковому числу -910, яке у модифікованому доповняльному коді дорівнює 1100 0000 0000 10012.

Призначення комірок що використовуються:

Для роботи програми використовується 29-а, 30-а, 31-а, 32-а комірка пам’яті. У 29-ій комірці записано двійковий код десяткового числа 110, що необхідна для зменшення лічильника циклу, та інкременту лічильника кількості одиниць у вхідному двійковому числі. У 30-ій комірці записано двійковий код 1100 0000 0000 00002. Це маска, що призначена для визначення знаку числа. У 31-ій комірці записано двійковий код десяткового числа 010, для збереження результату додавання. У 32-ій комірці записано двійковий код 1111 1111 1111 11112. Це ознака неправильного результату.

Текст програми:

Адреса комірки пам’яті

Двійковий код інструкції

Мнемонічний формат

інструкції

Коментар інструкцій, що відповідають блокам алгоритму програми

0

0000 0000 0001 1011

LOAD 27;

Додаємо вміст 3110 комірки в якій записано 010 ,для того щоб перевірити чи від’ємне це число.

1

0010 0000 0001 1111

ADD 31;

2

1010 0000 0000 0111

JP 7;

Перевірка знаку першого доданка “А”, якщо S = 0, то операція доповнення пропускається.

3

0110 0000 0001 1110

XOR 30;

Переведення першого доданка “А” з прямого модифікованого коду в доповняльний модифікований.

4

0111 0000 0000 0000

NOT;

5

0010 0000 0001 1101

ADD 29;

6

0001 0000 0001 1011

STORE 27;

7

0000 0000 0001 1100

LOAD 28;

Додаємо вміст 3110 комірки в якій записано 010 ,для того щоб перевірити чи від’ємне це число.

8

0010 0000 0001 1111

ADD 31;

9

1010 0000 0000 1110

JP 14;

Перевірка знаку другого доданка “В”, якщо S = 0,то операція доповнення пропускається.

10

0110 0000 0001 1110

XOR 30;

Переведення другого доданка “В” з прямого модифікованого коду в доповняльний модифікований.

11

0111 0000 0000 0000

NOT;

12

0010 0000 0001 1101

ADD 29;

13

0001 0000 0001 1100

STORE 28;

14

0000 0000 0001 1011

LOAD 27;

Додати до вмісту 2710 комірки нього вміст 2810.

15

0010 0000 0001 1100

ADD 28;

16

0001 0000 0001 1100

STORE 28;

17

1100 0000 0001 0100

JNC 21;

Перевірка результату на переповнення розрядної сітки.

18

0000 0000 0010 0000

LOAD 32;

Перехід на кінець виконання програми. Результат не коректний.

19

0000 0000 0001 1111

STORE 31;

20

0000 0000 0001 1010

JMP 26;

21

0101 0000 0001 1010

JP 26;

Перевірка чи результат додавання невід’ємне число тобто S = 0. Якщо так, то перетворення суми у прямий код пропускається.

22

0111 0000 0000 0000

NOT;

Перетворення результату суми у прямий код.

23

0010 0000 0001 1101

ADD 29;

24

0110 0000 0001 1110

XOR 30;

25

0001 1100 0001 1111

STORE 31;

26

0111 1100 0000 0000

HALT;

Зупинка процесора.

  1. Виконати дослідження програми, розробленої у пункті 2, у покроковому режимі.

Соседние файлы в предмете Архитектура ЭВМ