УМНОЖЕНИЕ ЦЕЛЫХ ЧИСЕЛ В ЭВМ.

ВЫПОЛНЕНИЕ СЛОЖЕНИЯ В ЭВМ

Значение А заносится в регистр Рг1 с помощью команды MOV Рг1, А (где вместо Рг1 указывается имя конкретного регистра процессора, например ах, вх и др.).

Сложение значений, которые хранятся в двух регистрах Рг1 и Рг2 выполняется на сумматоре с помощью команды ADD Рг1, Рг2.

Фрагмент программы, выполняющий сложение двух чисел w = x + y на машинном языке, называемом Ассемблер, будет иметь следующий вид:

mov ax,x

mov dx,y

add dx,ax

mov w,dx

где ax, dx - регистры микропроцессора.

 

УМНОЖЕНИЕ ЦЕЛЫХ ЧИСЕЛ В ЭВМ.

В основе операции умножения лежит операция сдвига и сложения.

 

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

1. При умножении чисел в прямых кодах:

1.1. Знаковые и информационные разряды обрабатываются раздельно. Для определения знака результата производится суммирование цифр, записанных в знаковых разрядах операндов.

1.2.Умножение чисел производится путем пошагового сложения сдвигаемого значения множимого и частичной суммы при наличии ненулевого бита соответствующего разряда множителя.

2. При умножении чисел в дополнительном коде:

2.1.Знак результата получается автоматически.

2.2.Умножение чисел производится путем пошагового сложения сдвигаемого значения множимого и частичной суммы при наличии ненулевого бита соответствующего разряда множителя.

2.3. Если множитель является отрицательным числом, то необходима коррекция результата. Для коррекции результата, при умножении множимого А на знаковую единицу множителя В необходимо просуммировать не А, а [–А].

2.4. Если множимое является отрицательным числом, то в сложении участвуют 1, которые получены за счет дописывания слева перед множимым незначащих нулей, и последующей их инверсией.

Умножение можно выполнять начиная с младших разрядов множителя либо со старших. При этом можно сдвигать сумму частичных произведений либо множимое. Наиболее простой по аппаратурным затратам является схема умножение с младших разрядов множителя со сдвигом суммы частичных произведений.

Операция умножения в ЭВМ выполняется на устройствах, имеющих название умножители (или матричные умножители). В состав умножителя входят регистры, сумматоры, счетчики устройства сравнения и схемы управления.

В упрощенном виде алгоритм умножения может быть описан следующим образом.

1. Занести в Регистр множимое х и множитель у (mov ax,x; mov dx,y). Если умножение будет производится в дополнительном коде, то представить содержимое регистром в дополнительном коде

2. Регистр суммы обнулить (mov вx,#0).

3. Переменной і, подсчитывающей количество умножений, присвоить значение 0.

4. Если dx[0] = 1, то выполнить сложение add bx, ax.

5. SHL ax,1

6. i = i + 1

7. Если i<N, то перейти к п.4 иначе закончить умножение.

Пункты 4-7 алгоритма могут быть заменены одной ассемблерной командой

MUL ax,dx.

 

 

 

Пример 1. А=8, В=6. Выполнить операцию умножения в прямом коде.

Знак 0+0=0

110

1000

11000 = 48

.

Пример 2. Умножить А * В в дополнительном коде

А10=4 А2=100 [ А]дк = 0 100 В10=7 В2=111 [ В]дк = 1 111

0 100

0 111

0 100

0 100

0 100

0 000

0 11100 = 16+8+4=2810

Пример 3.

А=10 В=13 Умножить А*В, А*(-В),

- А2=1010 [ А]дк = 0 1010 [- А]дк = 1 0110

- В2=1101 [ В]дк = 0 1101 [- В]дк = 1 0011

 


01101

00000

0 10000010=128+2=130

 

10011

10110

101111110 = 1 1000001+1=

= 1 0000010 =128+2 = 13010


 

Пример 4. Умножить А * ( -В), (- А )*(-В)

А10=2 А2=010 [ А]дк = 0 010 [ -А]дк = 1 110

В10=5 В2=101 [ В]дк = 0 101 [ В]дк = 1 011

 


1011

1110

1110110 = 1001001+1=1001010=-1010

 

1011

1111110

111110

00000

0010


0001010 = 1010

 


<== предыдущая лекция | следующая лекция ==>
 | Деление чисел в машинах с плавающей запятой.




Дата добавления: 2016-10-17; просмотров: 3673;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.