Дослідження виконання арифметичних операцій у форматі з рухомою комою

Подання чисел у нормальній формі. Порядок нормалізації чисел з рухомою комою. Правила додавання двійкових чисел з рухомою комою. Алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'ютера-симулятора DeComp.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык украинский
Дата добавления 13.03.2011
Размер файла 31,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Міністерство освіти і науки України

Національний університет „Львівська політехніка”

Кафедра ЕОМ

Звіт

з лабораторної роботи №6

з дисципліни: організація та функціонування комп'ютерів на тему:

Дослідження виконання арифметичних операцій у форматі з рухомою комою»

Виконав:

ст.гр. КІ-11

Cаноцький М.Т.

Прийняв:

ст..викл.

Кудрявцев О.Т.

Львів 2010

Мета роботи:

Ознайомитися з поданням чисел у нормальній формі. Засвоїти порядок нормалізації чисел з рухомою комою. Ознайомитися з поняттям “характеристика” для чисел з рухомою комою.

Вивчити правила додавання (віднімання) двійкових чисел з рухомою комою.

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

1. Теоретична частина

1.1 Подання чисел з рухомою комою

число рухомий кома алгоритм

У форматі з рухомою комою, який звичайно називають нормальною формою запису, числа записуються наступним чином:

A = М * d Р ,

де p - ціле число, яке називається порядком числа А;

d - основа системи числення;

М - мантиса числа А (звичайно |M| < 1).

При нормальній формі запис одного числа може приймати різний вигляд у залежності від обмежень, що накладаються на його форму. Фактично місце коми у мантисі М визначається величиною порядку р. Із зміною порядку р у більшу або меншу сторону кома відповідно переміщується ліворуч або праворуч, тобто рухається (“плаває”) у зображені мантиси. Наприклад:

23410 = 234 * 100 = 0,234 * 103 = 0,0234 * 104 = 2,34 * 102 ;

1011012 = 101101 * 100 = 0,101101 * 10110 = 0,00101101 * 101000 .

Можна зауважити, що хоча числа у наведених прикладах однакові за абсолютною величиною, проте мантиса потребує різної кількості розрядів. Для цього, щоб запобігти цьому, звичайно уводять деякі обмеження. Найбільш розповсюдженим і зручним для подання у комп'ютерах обмеженням є наступне:

d-1 M 1.

Числа, що записані у такій формі називаються нормалізованими. Іншими словами, у нормалізованих числах у мантисі першою цифрою перед комою стоїть 0, а перша цифра після коми - це цифра відмінна від нуля. Для двійкової системи числення вона дорівнює 1.

Таким чином, мантису розглядають як число менше одиниці, а порядок - як ціле число.

Операція нормалізації виконується шляхом зсуву мантиси вліво із зменшенням порядку, або вправо із збільшення порядку на величину, яка дорівнює кількості розрядів, на яку була зсунута мантиса.

Приклад: нормалізувати наступні числа:

0,00237 * 105 = 0,237 * 103 - мантиса зсувається на два розряди вліво, тобто - збільшується, а порядок зменшується на дві одиниці.

10101,0112 * 1010 = 0,10101011 * 10 111 - мантиса зсувається вправо на 5 розрядів, тобто - зменшується, а порядок збільшується на 5 одиниць.

Нормалізоване подання чисел дозволяє зберігати у розрядній сітці комп'ютера більшу кількість цифр, що мають значення, тому точність обчислень підвищується. Зазвичай у комп'ютерах нормалізація здійснюється автоматично як при вводі чисел, так і у процесі обчислень (після виконання чергової операції). При цьому мантиса зсувається ліворуч на необхідну кількість розрядів і виконується відповідне зменшення порядку, тобто виконується “нормалізація вліво”.

При виконанні операції додавання або віднімання нормалізованих чисел з різними порядками одно з них “денормалізується” до вирівнювання порядків, а сума (або різниця) знову нормалізується.

У розрядній сітці комп'ютерів фіксуються знак числа, знак порядку, порядок числа і числовий вираз мантиси.

0

1

2

...

...

...

...

...

...

m+n+1

0

0

1

2

...

m

1

2

...

n

Знак

мантиси

Знак

порядку

Порядок

Мантиса

У комп'ютерах із рухомою комою можливе переповнення розрядної сітки, так само, як і у комп'ютерах із фіксованою комою. Наприклад, переповнення може виникнути при додаванні нормалізованих чисел одного знаку з однаковими порядками. У цьому випадку з'являється “1” ліворуч від коми. Такого роду переповнення коригується зсувом мантиси вправо на один розряд і збільшенням порядку на одиницю, тобто виконується “нормалізація вправо”.

1.2 Правила додавання (віднімання) двійкових чисел з рухомою комою

Додавання і віднімання чисел з рухомою комою виконується у декілька етапів.

Вирівнювання порядків;

Як відомо, реальна величина (вага) Ni одиниці і-го розряду мантиси визначається не тільки позицією даного розряду, але й порядком р числа, тобто

Ni = d p-і,

де і - номер позиції, рахуючи вправо від коми.

При додаванні (відніманні) необхідно, щоб ваги однойменних розрядів мантис чисел були однаковими. Для цього мантиси зсувають одна щодо одної так, щоб їх порядки вирівнялися. Щоб при вирівнюванні порядків не отримати мантиси більшої за одиницю, їх потрібно вирівнювати від меншого до більшого порядку. Мантиса з меншим порядком зсувається вправо (у бік молодших розрядів) на кількість розрядів, що дорівнює різниці порядків і одночасно коректується порядок (збільшується до значення спільного порядку).

Додавання мантис;

Додавання мантис із вирівненими порядками виконується згідно правил додавання чисел з фіксованою комою. Зазвичай використовується модифікований доповнювальний код. (Пригадайте правила подання від'ємних чисел з використанням доповнювального або оберненого модифікованого коду).

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

У результаті додавання мантис може виникнути один з трьох випадків:

а). Виникає переповнення розрядної сітки комп'ютера (порушення нормалізації вправо). Ознакою переповнення є невизначенність знакових розрядів, коли результат неможливо віднести ні до додатних, ні до від'ємних чисел (код 01 або 10). У цьому випадку необхідно виконати корекцію результату додавання мантис шляхом його зсуву вправо на один розряд і одночасного збільшення порядку на 1.

Наприклад, після додавання мантис отримуємо число 01,00001. Нормалізуємо його зсувом вправо на один розряд і одночасно збільшуємо порядок на 1. В результаті отримуємо:

(А + В)доп = 00,100001 * 10к+1

Переводимо у прямий код: (А + В)пр = 00,100001 * 10к+1.

Внаслідок корекції результату шляхом зсуву вліво точність його погіршилася.

б). Результат від'ємний. Переведення результату додавання мантис у прямий код віконується шляхом виконання другого доповнення (тобто, виконується інверсія результату і до отриманого коду додається 1 у молодший розряд) або другого обертання (тобто, виконується інверсія результату);

в). Результат додатний. У прямому коді додатний результат залишається без змін;

4. Нормалізація результату.

Виконується тоді, коли після переведення у прямий код у отриманому результаті відбувається порушення нормалізації вправо, тобто з правого боку від коми є один або декілька нулів. Це порушення коректується зсувом мантиси результату вліво і одночасне зменшення порядку на кількість розрядів зсуву мантиси до повної нормалізації мантиси.

Остаточний результат додавання двох чисел з рухомою комою: сума мантис - це мантиса результату, порядок результату - вирівняний порядок доданків, із врахуванням всіх проведених корекцій. .

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

Приклад 1: Додати A = - 0,1101 * 10101 i B = + 0,1100 * 10011.

а) Вирівнюємо порядки.. Спочатку, визначаємо арифметичну різницю між порядками, віднімаючи від значення порядку числа А значення порядку числа В. При цьому операцію віднімання замінюємо операцією додавання у доповнювальному модифікованому коді.

рА - рВ = рА + (- рВ) = (pA доп(м) = 00,101) + (pB доп(м) = 11,101) = 00,010 - різниця порядків

Аналіз отриманої різниці:

знак різниці показує, що порядок числа А більше порядку числа В;

порядки відрізняються на дві одиниці.

Через те, що рА > pB, зсуваємо мантису числа В вправо на два розряди, тобто

МВ пр= 00,001100 і Впр= 00,001100 * 10101.

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

б) Переводимо мантиси обох чисел у модифікований доповнювальний код (в межах 4-х розрядів):

МА пр = 11,1101 МА доп(М) =.11,0011

МВ пр = 00,0011 МВ доп(М) =.00,0011

в) Додаємо модифіковані доповнювальні коди мантис чисел А та В і отримуємо результат у модифікованому доповнювальному коді:

(А + В)доп (М) = 11,0011 + 00,0011 = 11,0110

г) Аналіз результату додавання мантис починається із знакових розрядів. Знакові розряди показують, що переповнення розрядної сітки у нас не виникло. Результат - від'ємний, тому переводимо мантису результату у прямий код шляхом виконання другого доповнення і дописуємо спільний порядок:

(А + В)пр (М) = (11,1001 + 00,0001) * 10 101 = 11,1010 * 10101 - остаточний результат.

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

Подальший аналіз показує, що порушення нормалізації результату вправо немає.

Приклад 2. : Додати двійкові числа: А = + 0,10100 * 10101 та В = - 0,10110 * 10100 .

а) Для вирівнювання порядків доданків необхідно із порядку числа А відняти порядок числа В. Віднімання замінимо додаванням у модифікованому доповняльному коді.

(рА доп(м)= 00,101) + (рВ доп(м) = 11,100) = ,101 - 00,100 = 00,101 + (- 00,100) = 00,101 + (11,011 + 00,001) = 00,101 + 1,100 = 00,001

Через те, що рА > pB на +1, виконуємо зсув мантиси числа В вправо на 1 розряд.

МВ пр = 11,010110 і В = 11,010110 * 10101.

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

МА пр = 00,10100 МА доп(М) = 00,10100.

МВ пр = 11,010110 МВ доп(М) = 11,101010.

в) Додаємо мантиси чисел А і В у модифікованих доповняльних кодах:

(МА доп(М) = 00,10100) + (МВ доп(М) = 11,10101) = 00,01001

г) Переводимо результат у прямий код (виконуємо друге доповнення). У нашому випадку прямий код суми мантис збігається з доповнювальним кодом суми мантис, тому що результат є число додатне.

(МА + МВ) пр(м) = 00,01001

Як видно, виникло порушення нормалізації вправо, тому що вправо від коми розряд дорівнює 0.

д) Виконуємо нормалізацію результату, тобто зсув мантиси ліворуч на 1 розряд з одночасним відповідним зменшенням порядку:

(А + В)пр = 0,1001 * 10100 - остаточний результат.

2.Хід роботи:

Розробити алгоритм і написати програму додавання довільних (додатних і від'ємних) двійкових чисел із рухомою комою у модифікованому доповнювальному коді в інструкціях симулятора DeComp. Числа подаються у форматі:

Знак порядку

Знак мантиси

Порядок

Мантиса

2 розряди

2 розряди

4 розряди

8 розрядів

У алгоритмі передбачити аналіз отриманого результату на:

переповнення розрядної сітки (порушення нормалізації вліво);

наявність порушення нормалізації вправо;

від'ємний результат

Передбачити відповідні заходи з корекції результату.

Блок-схема написаної програми

Попередньо в такі комірки заношу такі дані:

350

хххх хххх хххх хххх

Число а

351

хххх хххх хххх хххх

Число b

352

1100 0000 0000 0000

Маска для знаку порядку

353

0000 1111 0000 0000

Маска для порядку

354

0000 0000 0000 0000

Порядок числа а

355

0000 0000 0000 0000

Знак порадка числа а

356

0000 0000 0000 0000

Порядок числа b

357

0000 0000 0000 0000

Знак порядку числа b

358

0000 0000 0000 0000

Порядок зі знаком числа a

359

0000 0000 0000 0000

Порядок зі знаком числа b

360

0000 0000 0000 0001

Одиниця для додавання

361

0000 0000 0000 0010

Нормалізація порядку

362

0011 1100 0000 0000

Маска для нормалізації інвертації порядка

363

0000 0000 0000 0000

Мантиса числа a

364

0000 0000 0000 0000

Мантиса числа b

365

0000 0000 0000 0000

Знак мантиси числа a

366

0000 0000 0000 0000

Знак мантиси числа b

367

0011 0000 0000 0000

маска для відокремлення знаку мантиси

368

0000 0000 1111 1111

Маска для відокремлення мантиси

369

0000 0000 0000 0000

Мантиса зі знаком числа a

370

0000 0000 0000 0000

Мантиса зі знаком числа a

371

0000 0000 0000 0000

Різниця порядків

372

0011 1110 0000 0000

Маска для взяття різниці порядків

373

1011 1111 1111 1111

Обернена маска для взяття модуля різниці

374

0000 0000 0000 1001

Нормалізація різниці порядків

375

0000 0000 0000 0101

Підготовка мантиси

376

0000 0000 0000 0101

Підготовка мантиси

377

0000 0000 0000 0010

Нормалізація порядку

378

0000 0000 1111 1111

Маска для виділення мантиси

379

1000 0000 0000 0000

Відновлення знаку мантиси

380

0000 0000 0000 0000

Сума двох чисел

381

0000 0000 0000 0000

Мантиса результату

382

0000 0000 0000 0000

Знак мантиси результату

383

0000 0000 0000 0000

Порядок результату

384

0000 0000 0000 0000

Знак порядоку результату

385

0011 1111 1110 0000

Маска для вибору мантиси результату

386

0000 0000 0000 0110

Зсув мантиси до молодших розрядів

387

0000 0000 0000 0000

Результат (Зн. П, Зн.М, Порядок, Мантиса)

388

0000 0100 0000 0000

Додавання одиниці для переведення порядку

389

0000 0010 0000 0000

Одиниця для переведення різниці порядків

390

0000 0000 0010 0000

Додавання одиниці для переведення мантиси

Код програми:

0

0000 0001 0101 1110

LOAD 350

Виділення порядка 1-го числа

1

0100 0001 0110 0001

AND 353

2

0001 0001 0110 0010

STORE 354

Переміщення порядку до старших розрядів

3

0000 0001 0110 0010

LOAD 354

4

1111 0010 0000 0000

LSL

5

0001 0001 0110 0010

STORE 354

6

0000 0001 0110 1001

LOAD 361

7

0011 0001 0110 1000

SUB 360

8

0001 0001 0110 1001

STORE 361

9

1000 0000 0000 0011

JNZ 3

10

0000 0001 0101 1110

LOAD 350

Виділення знаку порядку 1-го числа

11

0100 0001 0110 0000

AND 352

12

0001 0001 0110 0011

STORE 355

13

1111 1100 0000 0000

LSL

Перевірка на відємність порядка 1-го числа

14

1100 0000 0001 0100

JNC 20

15

0000 0001 0110 0010

LOAD 354

Якщо порядок 1-го числа відємний інвертуєм порядок перевести в доповняльний код

16

0111 0000 0000 0000

NOT

17

0100 0001 0110 1010

AND 362

18

0010 0001 1000 0100

ADD 388

19

0001 0001 0110 0010

STORE 354

20

0000 0001 0110 0010

LOAD 354

Обєднання знаку і порядку в одне число

21

0010 0001 0110 0011

ADD 355

22

0001 0001 0110 0110

STORE 358

23

0000 0001 0101 1111

LOAD 351

Виділення порядка 2-го числа

24

0100 0001 0110 0001

AND 353

25

0001 0001 0110 0100

STORE 356

26

0000 0001 0110 0100

LOAD 356

Переміщення порядку до старших розрядів

27

1111 0010 0000 0000

LSL

28

0001 0001 0110 0100

STORE 356

29

0000 0001 0110 1001

LOAD 377

30

0011 0001 0110 1000

SUB 360

31

0001 0001 0110 1001

STORE 377

32

1000 0000 0001 1010

JNZ 26

33

0000 0001 0101 1111

LOAD 351

Виділення знаку порядку 2-го числа

34

0100 0001 0110 0000

AND 352

35

0001 0001 0110 0101

STORE 357

36

1111 1100 0000 0000

LSL

Перевірка на відємність порядка 2-го числа

37

1100 0000 0010 1011

JNC 43

38

0000 0001 0110 0100

LOAD 356

Якщо порядок 2-го числа відємний інвертуєм порядок

39

0111 0000 0000 0000

NOT

40

0100 0001 0110 1010

AND 362

41

0010 0001 1000 0100

ADD 388

42

0001 0001 0110 0100

STORE 356

43

0000 0001 0110 0100

LOAD 356

Обєднання знаку і порядку в одне число

44

0010 0001 0110 0101

ADD 357

45

0001 0001 0110 0111

STORE 359

46

0000 0001 0101 1110

LOAD 350

Виділення мантиси

47

0100 0001 0111 0000

AND 368

48

0001 0001 0110 1011

STORE 363

49

0000 0001 0101 1110

LOAD 350

Виділення і нормалізація знаку

50

0100 0001 0110 1111

AND 367

51

1111 1100 0000 0000

LSL

52

1111 1100 0000 0000

LSL

53

0001 0001 0110 1101

STORE 365

54

0000 0001 0101 1111

LOAD 351

Виділення мантиси

55

0100 0001 0111 0000

AND 368

56

0001 0001 0110 1100

STORE 364

57

0000 0001 0101 1111

LOAD 351

Виділення і нормалізація знаку

58

0100 0001 0110 1111

AND 367

59

1111 1100 0000 0000

LSL

60

1111 1100 0000 0000

LSL

61

0001 0001 0110 1110

STORE 366

62

0000 0001 0110 0110

LOAD 358

Визначення різниці порядків

63

0010 0001 0110 0111

ADD 359

64

0001 0001 0111 0011

STORE 371

65

1011 0000 0100 1100

JM 76

Визначення знаку різниці

66

1111 0010 0000 0000

LSR

Корекція результату

67

0100 0001 0111 0100

AND 372

68

0001 0001 0111 0011

STORE 371

69

0000 0001 0111 0011

LOAD 371

Нормалізація різниці порядків

70

1111 0010 0000 0000

LSR

71

0001 0001 0111 0011

STORE 371

72

0000 0001 0111 0110

LOAD 374

73

0011 0001 0110 1000

SUB 360

74

0001 0001 0111 0110

STORE 374

75

1000 0000 0100 0101

JNZ 69

76

0000 0001 0111 0011

LOAD 371

77

0010 0001 0110 1000

ADD 360

78

0001 0001 0111 0011

STORE 371

79

0000 0001 0110 0111

LOAD 359

Збільшення меншого порядку на величину різниці

80

0010 0001 0111 0011

ADD 371

81

0001 0001 0110 0111

STORE 359

82

0000 0001 0111 0011

LOAD 371

Зсув мантиси на величину різниці порядків

83

0011 0001 0110 1000

SUB 360

84

1001 0000 0101 1010

JZ 90

85

0001 0001 0111 0011

STORE 371

86

0000 0001 0110 1100

LOAD 364

87

1111 0010 0000 0000

LSR

88

0001 0000 0110 1100

STORE 364

89

1110 0000 0101 0010

JMP 82

90

1111 0010 0000 0000

LSR

Корекція результату

91

0100 0001 0111 0101

AND 373

92

0001 0001 0111 0011

STORE 371

93

0100 0001 0111 0100

AND 372

Переведення числа в прямий код

94

0111 0000 0000 0000

NOT

95

0010 0001 1000 0101

ADD 389

96

0000 0001 0110 0110

LOAD 358

Збільшення меншого порядку на величину різниці

97

0010 0001 0111 0011

ADD 371

98

0001 0001 0110 0110

STORE 358

99

0001 0001 0111 0011

STORE 371

Нормалізація різниці порядків

100

0000 0001 0111 0011

LOAD 371

101

1111 0010 0000 0000

LSR

102

0001 0001 0111 0011

STORE 371

103

0000 0001 0111 0110

LOAD 374

104

0011 0001 0110 1000

SUB 360

105

0001 0001 0111 0110

STORE 374

106

1000 0000 0110 0011

JNZ 99

107

0000 0001 0111 0011

LOAD 371

Зсув мантиси на величину різниці порядків

108

0011 0001 0110 1000

SUB 360

109

1001 0000 0111 0011

JZ 115

110

0001 0001 0111 0011

STORE 371

111

0001 0001 0110 1011

LOAD 363

112

1111 0010 0000 0000

LSR

113

0000 0001 0110 1011

STORE 363

114

1110 0000 0110 1011

JMP 107

115

0000 0001 0110 1101

LOAD 365

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

116

1111 1100 0000 0000

LSL

117

1100 0000 0110 1110

JNC 110

118

0001 0000 0110 1011

LOAD 363

119

0111 0000 0000 0000

NOT

120

0010 0001 0110 1000

ADD 360

121

0100 0001 0111 1010

AND 378

122

0000 0000 0110 1011

STORE 363

123

0000 0001 0110 1110

LOAD 366

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

124

1111 1100 0000 0000

LSL

125

1100 0000 0111 0110

JNC 118

126

0000 0000 0110 1100

LOAD 364

127

0111 0000 0000 0000

NOT

128

0010 0001 0110 1000

ADD 360

129

0100 0001 0111 1010

AND 378

130

0001 0001 0110 1100

STORE 364

131

0001 0001 0110 1011

LOAD 363

Зсув мантиси до старших розрядів

132

1111 1100 0000 0000

LSL

133

0001 0001 0110 1011

STORE 363

134

0000 0001 0111 1101

LOAD 375

135

0011 0001 0110 1000

SUB 360

136

0001 0001 0111 1101

STORE 375

137

1000 0000 1000 0011

JNZ 131

138

0000 0001 0110 1100

LOAD 364

Зсув мантиси до старших розрядів

139

1111 1100 0000 0000

LSL

140

0001 0001 0110 1100

STORE 364

141

0000 0001 0111 1110

LOAD 376

142

0011 0001 0110 1000

SUB 360

143

0001 0001 0111 1110

STORE 376

144

1000 0000 1000 1010

JNZ 138

145

0001 0001 0110 1011

LOAD 363

Обєднання знаку і мантиси в одне число 1-го числа

146

0010 0001 0110 1101

ADD 365

147

0001 0001 0111 0001

STORE 369

148

0000 0001 0110 1100

LOAD 364

Обєднання знаку і мантиси в одне число 2-го числа

149

0010 0001 0110 1110

ADD 366

150

0001 0001 0111 0010

STORE 370

151

0000 0001 0111 0001

LOAD 369

Додавання мантис двох чисел

152

0000 0001 0111 0001

ADD 370

153

1011 0000 1001 1100

JM 156

Збереження результату при додатньому результаті

154

1111 1100 0000 0000

LSL

155

0001 0001 0111 1100

STORE 380

156

1111 1100 0000 0000

LSL

Збереження результату при відємному результаті

157

0010 0001 0111 1011

ADD 379

158

0111 0000 0000 0000

NOT

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

159

0100 0001 1000 0001

AND 385

160

0010 0001 1000 0110

ADD 390

161

0010 0001 0110 0000

ADD 352

162

0001 0001 0111 1100

STORE 380

163

0000 0001 0110 0010

LOAD 354

Збереження порядку результату

164

1111 0010 0000 0000

LSR

165

1111 0010 0000 0000

LSR

166

0001 0001 0111 1111

STORE 383

167

0000 0001 0110 0011

LOAD 355

Збереження знаку порядку результату

168

0001 0001 1000 0000

STORE 384

169

0000 0001 0111 1100

LOAD 380

Перевірка денормалізації в право і корекція результату

170

0100 0001 1000 0001

AND 385

171

1111 1100 0000 0000

LSL

172

1111 1100 0000 0000

LSL

173

1111 1100 0000 0000

RCL

174

1101 0000 1011 0110

JC 182

175

1111 1100 0000 0000

RCL

176

1101 0000 1011 0110

JC 182

177

0000 0001 0111 1111

LOAD 383

178

0010 0001 0110 1000

ADD 360

179

0001 0001 0111 1111

STORE 383

180

0000 0001 0111 1101

LOAD 381

181

1110 0000 1010 1001

JMP 169

182

1111 1110 0000 0000

RCR

183

0001 0001 0111 1101

STORE 381

184

0000 0001 0111 1101

LOAD 381

Збереження мантиси результату

185

1111 0010 0000 0000

LSR

186

0001 0001 0111 1101

STORE 381

187

0000 0001 1000 0010

LOAD 386

188

0011 0001 0110 1000

SUB 360

189

0001 0001 1000 0010

STORE 386

190

1000 0000 1011 1000

JNZ 184

191

0000 0001 0111 1100

LOAD 380

Збереження знаку мантиси результату

192

0100 0001 0110 0000

AND 352

193

1111 0010 0000 0000

LSR

194

1111 0010 0000 0000

LSR

195

0001 0001 0111 1110

STORE 382

196

0000 0001 0111 1101

LOAD 381

Формування результату

197

0010 0001 0111 1110

ADD 382

198

0010 0001 0111 1111

ADD 383

199

0010 0001 1000 0000

ADD 384

200

0001 0001 1000 0011

STORE 387

201

0111 1100 0000 0000

HALT

Завершення програми

Висновки

На даній лабораторній роботі - ознайомився з поданням чисел у нормальній формі. Засвоїв порядок нормалізації чисел з рухомою комою. Ознайомився з поняттям “характеристика” для чисел з рухомою комою.

-вивчив правила додавання (віднімання) двійкових чисел з рухомою комою.

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

Размещено на Allbest.ru


Подобные документы

  • Розрізняють дві форми подання двійкових чисел у ЕОМ: із фіксованою комою і з "плавучою" комою. Прямий, обернений і додатковий коди двійкових чисел. Алгоритми виконання арифметичних операцій (додавання, множення, ділення) над двійковими числами із знаком.

    лекция [28,1 K], добавлен 13.04.2008

  • Додавання (віднімання) чисел на ДСОК: двійкова система числення, представлення з рухомою комою, суматор оберненого коду. Побудова схеми керування заданого автомату, алгоритм додавання(віднімання) та його представлення у вигляді блок-схеми, кодування.

    курсовая работа [616,7 K], добавлен 03.01.2014

  • Синтез цифрового автомата для виконання операції множення в оберненому коді двох двійкових чисел з фіксованою комою. Будування керуючого автомату з жорсткою логікою по принципу Мілі. Використання алгоритму множення з пропусканням тактів додавання.

    курсовая работа [279,6 K], добавлен 14.03.2013

  • Розробка машинного алгоритму операції множення в доповняльному коді з пропуском тактів додавання в двійковій системі числення з старших розрядів чисел, представлених у формі з плаваючою комою та операційний автомат. Контроль операції віднімання.

    курсовая работа [45,5 K], добавлен 14.03.2013

  • Загальні відомості про системи числення. Поняття основи. Машинні коди чисел. Алгоритми виконання операцій додавання і віднімання в арифметико-логічному пристрої ЕОМ, множення і ділення двійкових чисел в АЛП. Логічні основи ЕОМ. Досконалі нормальні форми.

    учебное пособие [355,4 K], добавлен 09.02.2012

  • Розробка алгоритму множення чисел у прямому коді з молодших розрядів із пропусканням тактів сумування для двійкових чисел. Синтез операційного та керуючого автоматів з жорсткою логікою. Описання технології числового контролю операції додавання по модулю.

    курсовая работа [74,9 K], добавлен 14.03.2013

  • Операція алгебраїчного додавання, множення, ділення. Алгоритм ділення модулів чисел. Поняття граф-схеми алгоритму та правила її складання. Основні поняття теорії цифрових автоматів. Синтез керуючого автомата. Контроль виконання арифметичних операцій.

    реферат [55,4 K], добавлен 24.03.2009

  • Поняття арифметико-логічного пристрою. Правила формування прямого, оберненого та додаткового коду двійкових чисел. Побудова електрично-принципової схеми модулю блоку керування, який міг би виконувати не тільки операцію додавання, але й віднімання.

    курсовая работа [1,6 M], добавлен 27.02.2012

  • Бібліотеки для дій з розрядно-логарифмічними діями. Перевірка оберненої матриці за допомогою одиничної у розрядно-логарифмічній формі. Код розрахунку оберненої матриці за методом Крамера. Алгоритми додавання, віднімання, множення, ділення чисел у РЛ.

    курсовая работа [18,6 K], добавлен 17.10.2013

  • Формирование устойчивой последовательности псевдослучайных чисел с использованием метода "середины квадрата". Разработка программы для определения среднего значения чисел, среднего значения квадратов чисел и дисперсии для последовательности из 20 чисел.

    лабораторная работа [1,4 M], добавлен 21.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.