Основы арифметики цифровых процессоров. Вашкевич Н.П - 41 стр.

UptoLike

40
ет неодинаковые значения знаковых битов. Причем по их значению
можно определить, в какую область произошло переполнение:
00 – нет переполнения, сумма положительная;
01 – переполнение в область положительных чисел;
10 – переполнение в область отрицательных чисел;
11 – нет переполнения, сумма отрицательная.
Рассмотрим пример для восьмиразрядного процессора, работаю-
щего в дополнительном коде с целыми числами в формате с ФТ.
X=53
(8)
=101011
(2)
; Y=61
(8)
=110001
(2)
.
[X]
2
0
0
1
0
1
0
1
1
[Y]
2
+
0
0
1
1
0
0
0
1
[S]
2
=
0
1
0
0
1
1
0
0
SF=0; СF=0; ZF=0; OF=1.
Флаг OF=1, так как знаковые биты суммы равны 01 (переполне-
ние в область положительных чисел). В этом случае результатом
операции сложения будет значение флага OF=1, а не значение реги-
стра РСМ (там неверный результат).
Недостатком этого способа является сокращение в два раза диапа-
зона представления чисел в процессоре. Например, операнд Y=161
(8)
уже не поместится в разрядную сетку этого процессора, если исполь-
зуется модифицированный код.
Третий способ основан на сравнении значений переносов из
старшего числового бита в знаковый и из знакового битаво флаг
CF. Если значение переносов равныпереполнения нет, если не рав-
ныесть переполнение. Также по их значению можно определить,
в какую область произошло переполнение:
00 – нет переполнения, сумма положительная;
01 – переполнение в область положительных чисел;
10 – переполнение в область отрицательных чисел;
11 – нет переполнения, сумма отрицательная.
Рассмотрим пример для восьмиразрядного процессора, работаю-
щего в дополнительном коде с целыми числами в формате с ФТ
трока «С» таблицы показывает значение переносов).
X=53
(8)
=101011
(2)
; Y=161
(8)
=1110001
(2)
.
ет неодинаковые значения знаковых битов. Причем по их значению
можно определить, в какую область произошло переполнение:
   00 – нет переполнения, сумма положительная;
   01 – переполнение в область положительных чисел;
   10 – переполнение в область отрицательных чисел;
   11 – нет переполнения, сумма отрицательная.
   Рассмотрим пример для восьмиразрядного процессора, работаю-
щего в дополнительном коде с целыми числами в формате с ФТ.
   X=53(8)=101011(2); Y=61(8)=110001(2).
    [X]2      0 0 1 0 1 0 1 1
    [Y]2 + 0 0 1 1 0 0 0 1
    [S]2 = 0 1 0 0 1 1 0 0
   SF=0; СF=0; ZF=0; OF=1.
   Флаг OF=1, так как знаковые биты суммы равны 01 (переполне-
ние в область положительных чисел). В этом случае результатом
операции сложения будет значение флага OF=1, а не значение реги-
стра РСМ (там неверный результат).
   Недостатком этого способа является сокращение в два раза диапа-
зона представления чисел в процессоре. Например, операнд Y=161(8)
уже не поместится в разрядную сетку этого процессора, если исполь-
зуется модифицированный код.
   Третий способ основан на сравнении значений переносов из
старшего числового бита в знаковый и из знакового бита – во флаг
CF. Если значение переносов равны – переполнения нет, если не рав-
ны – есть переполнение. Также по их значению можно определить,
в какую область произошло переполнение:
   00 – нет переполнения, сумма положительная;
   01 – переполнение в область положительных чисел;
   10 – переполнение в область отрицательных чисел;
   11 – нет переполнения, сумма отрицательная.
   Рассмотрим пример для восьмиразрядного процессора, работаю-
щего в дополнительном коде с целыми числами в формате с ФТ
(строка «С» таблицы показывает значение переносов).
   X=53(8)=101011(2); Y=161(8)=1110001(2).

                               40