Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учеб. пособие по ОЭВМ.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
4.34 Mб
Скачать

Моделирование функционирования алу при выполнении операции умножения чисел, представленных в дополнительном коде.

При выполнении операции умножения чисел, представленных в дополнительном коде, будем сдвигать сумму частичных произведений и анализировать разряды множителя, начиная с младшего разряда. Для выполнения такого умножения можно использовать структурную схему, представленную на рис. 10.

Контрольные вопросы.

  1. Особенности выполнение операции умножения чисел с фиксированной запятой, представленных в прямом и дополнительном коде.

  2. Способы умножения чисел с фиксированной запятой.

  3. Состав и назначение основных регистров АЛУ для выполнения операции умножения чисел с фиксированной запятой, представленных в прямом коде.

Содержание отчета.

  1. Формулировка задания.

  2. Структурная схема АЛУ для выполнения операции умножения чисел с фиксированной запятой, представленных в прямом коде.

  3. Блок-схема выполнения операции умножения чисел с фиксированной запятой, представленных в прямом коде.

  4. Программа на языке MCL, моделирующая выполнение операции умножения чисел с фиксированной запятой, представленных в прямом код.

  5. Результаты выполнения программы в виде распечатки содержимого поля для вывода текстовой информации и скриншота в момент завершения выполнения программы.

Варианты заданий.

Промоделировать работу АЛУ при выполнении операции умножения чисел, представленных в прямом коде в соответствие с номером варианта. Номера вариантов даны в таблице 2.2. Рекомендуется использовать следующие обозначения:

INPA, INPB – регистры для ввода операндов;

R1 – регистр для хранения множимого;

R2 – регистр для хранения множителя и формирования младшей части произведения;

RA – регистр для хранения первого операнда АЛУ (множимое, либо 0);

RВ – регистр для хранения второго операнда АЛУ (сумма частичных произведений);

R3 – регистр сдвига множителя;

SM – регистр АЛУ суммы множимого и суммы частичных произведений;

RC – регистр для формирования старшей части произведения.

Разрядность регистров АЛУ принимается 8 бит. Число циклов умножения равно разрядности операндов, т.е. восьми. При выполнении лабораторной работы для наглядности, необходимо печатать содержимое всех регистров АЛУ на каждом такте умножения. Содержимое регистров должно быть представлено в двоичной форме, исходные значения операндов и результаты – в десятичной системе счисления.

Таблица 2.2. Варианты заданий для моделирования операции умножения

Номер варианта

Множимое

Множитель

1

-2

125

-15

3

13

-87

2

-2

115

-20

4

18

-92

3

-2

105

-26

5

23

-98

4

-2

119

-32

6

31

-64

5

-3

95

-18

2

110

-37

6

-3

75

-120

3

39

-13

7

-3

118

-27

4

30

-81

8

-4

36

-84

2

99

-32

9

-4

24

-46

3

70

-28

10

-5

28

-32

2

35

-21

11

-6

79

-73

2

96

-36

12

-3

111

-7

5

85

-77

13

-2

125

-15

3

13

-87

14

-2

115

-20

4

18

-92

15

-2

105

-26

5

23

-98

16

-2

119

-32

6

31

-64

17

-3

95

-18

2

110

-37

18

-3

75

-120

3

39

-13

19

-3

118

-27

4

30

-81

20

-4

36

-84

2

99

-32

21

-4

24

-46

3

70

-28

22

-5

28

-32

2

35

-21

23

-6

79

-73

2

96

-36

24

-3

111

-7

5

85

-77

Лабораторная работа № 3.

Моделирование функционирования АЛУ при выполнении операции деления.

Цель работы:

изучение работы арифметико-логического устройства при выполнении операции деления над числами с фиксированной запятой, представленными в прямом коде.

Алгоритм деления двоичных чисел с фиксированной запятой над числами, представленными в прямом коде.

Выполнение операции деления в АЛУ сводится к последовательности операций сложения и сдвига. Существующие способы деления можно разделить на две группы:

1. Выполнение операции деления методом с восстановлением остатка.

2. Выполнение операции деления методом без восстановлением остатка.

Алгоритмы деления аналогичны алгоритму деления при ручном счете. Рассмотрим особенности деления на примере деления целых чисел. Пусть Z =, где X – делимое, представляемое обычно двойным словом (2n-1 значащих и 1 знаковый разряд), Y – делитель и Z – частное, представляемые словами, содержащими n-1 значащих и 1 знаковый разряд. Пусть для простоты X и Y – целые числа, представленные в прямом коде.

Так как Z – слово, то должно выполняться равенство │Z│<2n-1, т.е. <2n-1 или (│X│-│Y│*2n-1)<0. Если неравенство не выполняется, то возникает переполнение разрядной сетки частного и результат получается неверным. Это условие корректного выполнения деления.

Таким образом, для проверки корректности деления надо сдвинуть делитель на n-1 разряд влево и вычесть его из делимого. Если результат окажется отрицательным, то деление возможно. Иначе возникнет переполнение разрядной сетки частного.

┌───────┬───────┐

Делимое X └───────┴───────┘

┌───────┐

Делитель Y └───────┴───────┘

Делитель, сдвинутый ┌───────┐

на n-1 разряд влево └─┴───────┴─────┘

┌───────────────┐

Результат вычитания └───────────────┘

Таким образом выполнение операции деления начинается с пробного вычитания делителя, сдвинутого на n-1 разряд влево, из делимого. Если результат меньше нуля, то деление возможно. Если результат больше нуля, то деление невозможно. Знак частного формируется в результате анализа знаков операндов. Если операнды имеют одинаковые знаки, то частное получается положительным, если знаки различны - частное будет отрицательным. После определения знака результата знаковые разряды операндов обнуляются и деление производится над положительными числами.