Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ARIFMETIKA4.DOC
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Задание 3 Вычитание целых чисел

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

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

Варианты заданий приведены в табл.3 приложения 1.

Пример выполнения задания

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

В каждом разряде вычитание реализуется в соответствии со следующей таблицей:

ai – значение разряда уменьшаемого,

bi – значение разряда вычитаемого,

zi-1 – значение заема из i-го разряда в (i-1)-й предыдущий младший разряд,

r i – значение разности в i-ом разряде,

zi – значение заема из предыдущего (i+1)-го старшего разряда в i-й разряд.

3.1. А = 67, В = 51

ai

bi

zi-1

ri

zi

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

1

0

1

0

0

1

0

1

1

1

0

0

0

1

А = (67)10 = (1000011)2

В = (51)10 = (110011)2

1) А > 0, B > 0

ЗИ БзИ

АПК= _ 0.1 0 0 0 0 1 1 _ 67 _ 67

ВПК= 0.0 1 1 0 0 1 1 51 51

СПК= 0.0 0 1 0 0 0 0 16 16

CF = 0; SF = 0; ZF = 0; AF = 0; PF = 0; OF = 0.

2) А < 0, В > 0

ЗИ БзИ

АДК= _ 1.0 1 1 1 1 0 1 _- 67 _189

ВПК= 0.0 1 1 0 0 1 1 +51 51

СДК= 1.0 0 0 1 0 1 0 138

СПК= 1.1 1 1 0 1 1 0 - 118

CF = 0; SF = 1; ZF = 0; AF = 0; PF = 0; OF = 0.

3) А > 0, B < 0

ЗИ БзИ

АПК= _ 0. 1 0 0 0 0 1 1 _ 67 _ 67

ВДК= 1. 1 0 0 1 1 0 1 - 51 205

СПК= 0. 1 1 1 0 1 1 0 118 118 ?

CF = 1; SF = 0; ZF = 0; AF = 1; PF = 0; OF = 0.

Для БзИ результат неверен вследствие возникающего заема из разряда за пределами формата.

4) А < 0, B < 0

ЗИ БзИ

АДК= _ 1.0 1 1 1 1 0 1 _ - 67 _ 189

ВДК= 1.1 0 0 1 1 0 1 - 51 205

СДК= 1.1 1 1 0 0 0 0 240 ?

СПК= 1.0 0 1 0 0 0 0 -16

CF = 1; SF = 1; ZF = 0; AF = 0; PF = 1; OF = 0.

Для БзИ результат неверен вследствие возникающего заема из разряда за пределами формата.

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

А + В > 128, значит 128 – А < В < 127

А = 67 (неизменно), В = 64 (подбираем)

1) А < 0, В > 0

ЗИ БзИ

АДК= _ 1.0 1 1 1 1 0 1 _ - 67 _ 189

ВПК= 0.1 0 0 0 0 0 0 64 64

СПК= 0.1 1 1 1 1 0 1 125? 125

CF = 0; SF = 0; ZF = 0; AF = 0; PF = 1; OF = 1.

Для знакового вычитания результат некорректен вследствие переполнения, о котором можно судить по одному из двух признаков:

  • при разных знаках операндов знак результата отличается от знака первого операнда;

  • несовпадение заемов в два старшие разряда (один из них присутствует, а другой нет).

2) А > 0, В < 0

ЗИ БзИ

АПК= _ 0.1 0 0 0 0 1 1 _ 67 _ 67

ВДК= 1.1 0 0 0 0 0 0 - 64 192

СДК= 1.0 0 0 0 0 1 1 131 ?

СПК= 1.1 1 1 1 1 0 1 -125?

CF = 1; SF = 1; ZF = 0; AF = 0; PF = 0; OF = 1.

Для ЗИ результат некорректен вследствие возникающего переполнения, для БзИ результат некорректен из-за возникающего переноса из старшего разряда.

3.3. Значение числа В фиксируем (В = 51), а значение А определяется из условия А + В = 128, благодаря которой при вычитании из положительного числа отрицательного будет фиксироваться переполнение, а при вычитании из отрицательного числа положительного не будет. А = 77.

1) А > 0, B < 0

ЗИ БзИ

АПК =_ 0.1 0 0 1 1 0 1 _ 77 _ 77

ВДК = 1.1 0 0 1 1 0 1 - 51 205

СДК = 1.0 0 0 0 0 0 0 128?

СПК = 1.0 0 0 0 0 0 0 - 128?

CF = 1; SF = 1; ZF = 0; AF = 0; PF = 0; OF = 1.

Результат БзИ некорректен вследствие возникающего заема из разряда за пределами формата; для ЗИ результат некорректен из-за переполнения.

2) А < 0, B > 0

ЗИ БзИ

АДК _ 1.0 1 1 0 0 1 1 _ -77 _ 179

ВПК 0.0 1 1 0 0 1 1 51 51

СДК 1.0 0 0 0 0 0 0 128

СПК 1.0 0 0 0 0 0 0 - 128

CF = 0; SF = 1; ZF = 0; AF = 0; PF = 0; OF = 0.

Результаты ЗИ и БзИ корректны.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]