17 (1006349)
Текст из файла
Арифметика вычислительных машин
-
Выполнение операции сложения чисел с фиксированной точкой
Сложение чисел, представленных в прямом коде дает неправильный результат (числа с разными знаками). Это множество чисел - незамкнутое множество относительно операции сложения: z=x+y.
Введем дополнительное кодирование.
Если x 0 - дополнительный код =прямому коду,
если x < 0, то
=2n-1 - |а| - значимая часть кода, а
=2n - |а| - это дополнительный код со знаком,
где n- число разрядов, включая знаковый слева,
если x>0,то знаковый разряд =0,
если x<0, то знаковый разряд =1.
Примечание: знаковую часть положительного числа для дополнительного кодирования можно продолжить влево на любое число разрядов, а для прямого кодирования нельзя.
Пример: «-5»= 24-5 = 11 =1011
следовательно 1011- это дополнительный код числа «-5», где «1» в старшем разряде - это знаковый разряд, а «011»- это значимая часть кода.
Дополнительный код для отрицательного числа равен прямому коду для положительного числа, например,
код числа «-1» =коду числа 7
код числа «-2» =коду числа 6
код числа «-3» =коду числа 5
код числа «-4» =коду числа 4 и т.д.
| x | прямой код | дополнительный код |
| 3 | 011 | 011 |
| 2 | 010 | 010 |
| 1 | 001 | 001 |
| 0 | 000 | 000 |
| -0 | 100 | 000 |
| -1 | 101 | 111 |
| -2 | 110 | 110 |
| -3 | 111 | 101 |
Обратное кодирование
Если а0, то обратный код = прямому,
а<0, то обратный код числа x это а’=2n-1-1-|a’|
например для n=4 дополнительный код числа «-5»=23-1-5=2=1010.
Связь обратного и дополнительного кодов: а’+
=1.
Сложение чисел представленных в дополнительном коде
-
x.0 и y0
Обычное сложение. Правило будет работать, если не будет переполнения, т.е., если |z|<2 n.
Пример: 5+7, n=5
00101
00111
01100
-
x.>0 и y<0
=
+
=|x|+2n-|y|= а) |x||y|, 2n+(|x|+|y|)
б) |x|>|y|, 2n-(|y|-|x|)
Примеры: x=7 0111
y=-5 1011
0010 - результат в прямом коде
(есть перенос в знаковый разряд)
x=-7 1001
y=5 0101
1110 -результат в дополнительном коде
(переноса нет)
-
x.<0 и y>0 (см. случай 2)
-
x.<0 и y<0
=
+
=2n-|x|+2n -|y|=2n+2n -(|x|+|y|)
z2n -переполнения нет, если z>2n, то будет переполнение разрядной сетки.
Пример: x=-5 n=4 1011
y=-1 1111
1010 - «-6» в дополнительном коде
x=-5 1011
y=-4 1100
0111 - результат неверный, переполнение
Переполнение. Оно существует когда результат z>2n, и не существует когда z2n. Если было переполнение, то был перенос в знаковый разряд, а из знакового не было, либо наоборот- есть перенос из знаковой части, а в знаковую часть нет переноса. Если одновременно отсутствует или присутствуют переносы в знаковую и из знаковой части , то переполнения нет.
Способы определения переполнения.
-
фиксировать переносы в знаковую и из знаковой части. Для этого вводится 2 триггера: Т1 - фиксирует перенос в знаковый разряд, Т2 -фиксирует перенос из знаковой части.
Т1+Т2=Тпер (Триггер переполнения).
-
для x и y отводится под знаковый разряд два разряда. Если совпадают значения знаковых разрядов, то переполнения нет, а если различны, то переполнение есть.
Сложение чисел представленных в обратном коде
z’=x’+y’ рассмотрим 4 случая:
-
x>0, y>0, простое сложение
-
x>0, y<0,
z’=|x|+2n-|y|-1= a) 2n+(|x|-|y|)-1, если |x|>|y
б) 2n-(|y|-|x|)-1, если |x|<|y|
в б) результат в обратном коде,
в а) результат неверный, поэтому его надо корректировать с помощью циклического переноса.
Пример: x=5 0101
y=-2 1101
0010
1
0011 - «3» в прямом коде
-
x<0, y>0,см. случай 2
-
x<0, y<0,
z’=x’+y’=2n-|x|-1+2n-|y|-1=2n+[2n-(|x|+|y|)-1]-1 , результат в дополнительном коде , результат также корректируется с помощью циклического переноса.
Пример: x=-5 1010
y= -1 1110
1000
1
1001 - «-6» в обратном коде.
Вычитание чисел в дополнительном и обратном кодах
Операция вычитания сводится к операции сложения за счет того, что вычитаемое число записывается либо в дополнительном, либо обратном кодах.
z’=x’-y’=x’+(-y’).
Микропрограмма и оборудование АЛУ для выполнения операции сложения и вычитания чисел с фиксированной точкой
В состав АЛУ входят n-разрядный параллельный комбинационный сумматор-(КС), регистр сумматора RC, входные регистры сумматора RА и RВ, входной регистр АЛУ- R1. Длина всех регистров =длине операндов=n.
Швх
RA RB
R1
+1
RC
Швых
При выполнении операции сложения положительные слагаемые представляются в прямом, а отрицательные - в дополнительном коде и производится сложение двоичных кодов, включая разряды знаков. Если все операнды в дополнительном коде, то и результат тоже в дополнительном коде, если операнды в прямом коде, то и результат в прямом коде.
Из оперативной памяти по входной информационной шине Швх в АЛУ поступают операнды: положительные числа в прямом, а отрицательные в дополнительном кодах. Операнды помещаются в регистр А (RA)-первое слагаемое, и регистр B (RВ)- второе слагаемое. Регистр R1 связан с RВ.
В случае операции сложения второй операнд переписывается в регистр RA без изменения. Если выполняется операция вычитания, то операнд переписывается в RA в обратном коде. Далее, в зависимости от кода операции происходит суммирование операндов RA+RB, либо суммирование с добавлением 1 ( в случае вычитания). Результат операции записывается в регистр суммы РС, он выдается из АЛУ в оперативную память по выходной шине Швых..
При выполнении операции в АЛУ помимо результата операции формируется двухразрядный код признака результата комбинационной схемы ПР, который принимает следующие значения:
Результат операции Признак результата
0 0 0
<0 0 1
>0 1 0
переполнение 1 1
Операция алгебраического вычитания может быть сведена к изменению знака вычитаемого Y и операции алгебраического сложения.
Z=X-Y=X+(-Y)
В этом случае принятый в регистр RB код числа предается инверсно в регистр R1 и при сложении осуществляется подсуммирование 1 в младший разряд сумматора.
Передача информации в регистрах АЛУ производится отдельными микрооперациями:
RA:=Швх (прием 1-ого операнда)
RB:=Швх (прием 2-ого операнда)
если сложение, то RB:=R1 иначе
если сложение, то RC:=RА+RВ иначе
вычитание RC:=RА+RВ +1;
если ПР=11,то переполнение, иначе
Швых:=RC (выдача результата);
конец;
Рассмотрим работу программы на примере:
1-ое слагаемое 1210=011002
2-ое слагаемое -510=110112 ( т.к. число отрицательное, то в допол. коде)
RA:=01100
RB:=11011
если сложение, то RB:=R1, т.е. RB:=11011, иначе
RB:=
, т.е. RB:=00100 (обрат.код числа-5);
если сложение, то RC:=RA+RВ, т.е. 11011
01100 001112=710 , иначе
RC:=RА+RВ+1, т.е. 00100
01100
10000
1
100012=1710
Результат при сложении: 12+(-5)=710=001112
Результат при вычитании: 12-(-5)=12+5=1710=10001
-
Выполнение операции умножения над числами с фиксированной точкой
При выполнении операции умножения в АЛУ помимо результата операции формируется двухразрядный код признака результата комбинационной схемой, который принимает следующие значения:
Выполнение операции умножения в АЛУ сводится к последовательности операций сложения и сдвига. Примем разрядность операндов N, тогда разрядность произведения будет 2N. Если при выполнении операции умножения сдвигать множимое, то аппаратные затраты составят:
-
- для множимого 2N разрядов;
-
- для множителя N разрядов;
-
- для произведения 2N разрядов.
Существует четыре способа умножения:
-
Умножение чисел начиная с младших разрядов множителя при сдвиге множимого влево и неподвижной сумме частичных результатов.
Если младший разряд множителя=1, то к сумме частичных произведений прибавляется множимое; если младший разряд множителя =0, то прибавление не делается. Делается сдвиг множимого на каждом шаге на 1 разряд влево, а сумма частичных произведений (промежуточный результат) остается неподвижной. Число сдвигов =N
П
+
ример: x=6 0110y=5 0101
+
00000110
+
+
+
01100000
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















