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

2. Порядок роботи:

  1. Вивчити теоретичні відомості методичних вказівок.

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

Виконання:

Завдання:

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

Алгоритм розв’язання задачі №1 зображений на малюнку 1.

Інформація про вхідні дані:

Адреса комірки

Дані в двійковому коді

Позначення змінної в алгоритмі

Інформація про вхідні дані та призначення комірок, що використовуються.

40

0000 0000 0000 1010

A

Число А - перший доданок. А=10 знаходиться у 40-й комірці

41

1100 0000 0000 1001

B

Число В – другий доданок. В=-9 знаходиться у 41-й комірці

42

1100 0000 0000 0000

М

Число М – маска. Слугує для визначення знаку. знаходиться у 42-й комірці.

43

0000 0000 0000 0001

К

Число К=1 допомагає переводити у доповняльний код

44

0000 0000 0000 0000

S

Змінна “ S ”- сума чисел А і В. Знаходиться у 44-й комірці. Початкове значення 0.

45

1111 1111 1111 1111

О

Ознака неправильного результату.

дреса

комірки пам’яті

Код інструкції

(двійковий)

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

інструкції

Коментар

0

0000 0000 0010 1000

LOAD40

Завантаження першого доданка в акумулятор . Якщо “А” – додатнє (Z=1) то відбувається перехід на8 .

1

0100 0000 0010 1010

AND42

2

1001 0000 0000 1000

JZ8

3

0000 0000 0010 1000

LOAD40

Завантаження першого доданка в акумулятор. Відбувається

перетворення його у доповняльний модифікований код ізапис назад до 40 комірки

4

0111 0000 0000 0000

NOT

5

0010 0000 0010 1011

ADD43

6

0101 0000 0010 1010

OR42

7

0001 0000 0010 1000

STORE40

8

0000 0000 0010 1001

LOAD41

Завантаження другого доданка в акумулятор . Якщо “А” – додатнє (Z=1) то відбувається перехід на 16 .

9

0100 0000 0010 1010

AND42

10

1001 0000 0001 0000

JZ16

11

0000 0000 0010 1001

LOAD41

Завантаження другого доданка в акумулятор. Відбувається

перетворення його у доповняльний модифікований код ізапис назад до 41-ї комірки

12

0111 0000 0000 0000

NOT

13

0010 0000 0010 1011

ADD43

14

0101 0000 0010 1010

OR42

15

0001 0000 0010 1001

STORE41

16

0000 0000 0010 1000

LOAD40

Додавання “А” і “B” в модифікованих кодах.

Запис результату у 44 ту комірку.

17

0010 0000 0010 1001

ADD41

18

0001 0000 0010 1100

STORE44

19

0100 0000 0010 1010

AND42

Перевірка знаку результату. Якщо (Z=0) це означає, що число додатне ми переходимо на 33. Програма виконана.

20

1001 0000 0010 0001

JZ28

21

0000 0000 0010 1100

LOAD44

Завантаження “S” до акумулятора. Даними кроками ми перевіряємо чи не вийшло в результаті додавання від’ємного числа (тобто чи у знакових розрядах є 11). якщо виявляється від’ємне число переходим на 33. Програма виконана.

22

0100 0000 0010 1010

AND42

23

0011 0000 0010 1010

SUB42

24

1001 0000 0001 1011

JZ33

25

0000 0000 0010 1101

LOAD45

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

26

0001 0000 0010 1100

STORE44

Запис ознаки переповнення розрядної сітки процесора до 44-ї

27

1110 0000 0010 0001

JMP33

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

28

0000 0000 0010 1100

LOAD44

Завантаження суми S=А+В Перетворення у прямий код.

Та запис результату.

29

0111 0000 0000 0000

NOT

30

0010 0000 0010 1011

ADD43

31

0101 0000 0010 1010

OR42

32

0001 0000 0010 1100

STORE44

33

HALT

Кінець виконання програми.

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

Виконання:

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

РФ

РД

А

РІ

ЛАІ

РО

0000 0010 1000

0000 0000 0000 1010

0000 0000 0000 1010

0000 0000 0010 1000

0000 0000 0001

000

0000 0010 1010

1100 0000 0000 0000

0000 0000 0000 0000

0100 0000 0010 1010

0000 0000 0010

100

0000 0000 0010

1001 0000 0000 1000

1001 0000 0000 1000

1001 0000 0000 1000

0000 0000 1000

100

0000 0010 1001

1100 0000 0000 1001

1100 0000 0000 1001

0000 0000 0010 1001

0000 0000 1001

100

0000 0010 1010

1100 0000 0000 0000

1100 0000 0000 0000

0100 000 0010 1010

0000 0000 1010

010

0000 0000 1010

1001 0000 0001 0000

1100 0000 0000 0000

1001 0000 0001 0000

0000 0000 1011

010

0000 0010 1001

1100 0000 0000 1001

1100 0000 0000 1001

0000 0000 0010 1001

0000 0000 1100

010

0000 0000 1100

0111 0000 0000 0000

0011 1111 1111 0110

0111 0000 0000 0000

0000 0000 1101

000

0000 0010 1011

0000 0000 0000 0001

0011 1111 1111 0111

0010 0000 0010 1011

0000 0000 1110

000

0000 0010 1010

1100 0000 0000 0000

1111 1111 1111 0111

0101 0000 0010 1010

0000 0000 1111

010

0000 0010 1001

1111 1111 1111 0111

1111 1111 1111 0111

0001 0000 0010 1001

0000 0001 0000

010

0000 0010 1000

0000 0000 0000 1010

0000 0000 0000 1010

0000 0000 0010 1000

0000 0001 0001

010

0000 0010 1001

1111 1111 1111 0111

0000 0000 0000 0001

0010 0000 0010 1001

0000 0001 0010

001

0000 0010 1100

0000 0000 0000 0001

0000 0000 0000 0001

0001 0000 0010 1100

0000 0001 0010

001

0000 0010 1010

1100 0000 0000 0000

0000 0000 0000 0000

0100 0000 0010 1010

0000 0001 0100

100

0000 0001 0100

10001 0000 0010 0001

0000 0000 0000 0000

1001 0000 0010 0001

0000 0010 0001

100

0000 0010 0001

0111 1100 0000 0000

0000 0000 0000 0000

0111 1100 0000 0000

0000 0010 0001

100

  1. Розробити алгоритм і написати програму множення довільних двійкових чисел без знаку. Варіант виконання вибрати з таблиці:

Виконання:

Розробити алгоритм і написати програму множення довільних двійкових чисел без знаку.

Мій варіант 14.

Алгоритм розв’язування завдання.

Інформація про вхідні дані

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

Дані в двійковому вигляді

Позначення змінної в алгоритмі

Інформація про вхідні дані та призначення комірок, що використовуються.

17

0000 0000 0000 1010

A

Змінна “А” зберігається в 1710 комірці пам’яті і має початкове значення 1010. В програмі змінна виступає множеним.

18

0000 0000 0000 1010

B

Змінна “В” зберігається в 1810 комірці пам’яті і має початкове значення 1010. В програмі змінна виступає множником.

19

0000 0000 0000 0000

DP

Змінна “DP” зберігається в 1910 комірці пам’яті і має початкове значення 010. В програмі змінна служить для збереження проміжного результату множення.

20

0000 0000 0000 0001

М

Змінна ”М” зберігається в 2010 комірці пам’яті і має початкове значення 110. В алгоритмі змінна є маскою. Викор.для виявлення «0» або «1»

22

0000 0000 0000 0000

S

Добуток

дреса

комірки пам’яті

Код інструкції

(двійковий)

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

інструкції

Коментар

0

0000 0000 0001 0000

LOAD16

Завантаження А до акумулятора.

1

0001 0000 0001 0010

STORE18

Запис А до 18-ї комірки.(ДП=А)

2

0000 0000 0001 0001

LOAD17

Завантаження В до акумулятора.

3

0100 0000 0001 0011

AND19

Перевірка розряду множника (1 чи 0)

4

1001 0000 0000 1000

JZ8

5

0000 0000 0001 0010

LOAD18

Завантаження ДП до аккумулятора

6

0010 0000 0001 0100

ADD20

ДП+S

7

0001 0000 0001 0100

STORE20

Запис нового значення S

8

0000 0000 0001 0010

LOAD18

Завантаження В до Акумулятора

9

1111 1110 0000 0000

RCL

Циклічний зсув числа В вліво через С

10

0001 0000 0001 0010

STORE18

Запис нового значення В

11

0000 0000 0001 0011

LOAD19

Завантаження маски

12

1111 1110 0000 0000

RCL

Зсув маски вліво

13

0001 0000 0001 0011

STORE19

Запис нового значення маски

14

1100 0000 0000 0010

JNC2

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

15

0111 1100 0000 0000

HALT

Зупинка виконання програми

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

Висновок: на цій лаболаторні роботі я вивчив форми подання і застосування додатних та від’ємних чисел у арифметиці з фіксованою комою; навчився розробляти алгоритми і здійснювати їх реалізацію у інструкціях процесора навчального комп'ютера DeComp виконання арифметичних операцій додавання та віднімання над двійковими числами з фіксованою комою у модифікованих кодах; навчився розробляти алгоритми і здійснювати їх реалізацію у інструкціях процесора навчального комп'ютера DeComp виконання арифметичної операції множення двійкових чисел без знаку.

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