Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Сложение двоичных чисел со знаком

Арифметические команды | Десятичные числа | Вычитание двоичных чисел со знаком j | Вычитание и сложение операндов большой размерности | Умножение двоичных чисел без знака ; ; | Деление двоичных чисел без знака | Команды преобразования типов | Над двоично-десятичными числами | Вычитание Ш | Умножение I |


Читайте также:
  1. Chapter 1. Незнакомец.
  2. Августовские пушки и одно из этих подозрительных чисел
  3. Благодарю Бога моего: я более всех вас говорю языками; 19но в церкви хочу лучше пять слов сказать умом моим, чтобы и других наставить, нежели тьму слов на незнакомом языке.
  4. В сложных незнакомых ситуациях время реакции может возрастидо 5,0 с.
  5. ВВЕДЕНИЕ: ЗНАКОМИМСЯ С КЛИКЕРОМ
  6. Вилл достала Сердце Кондракара, и мы все возложили на него руки — одна поверх другой. Знакомое приятное тепло согрело меня, словно разлившийся по жилам солнечный свет.
  7. Вычитание двоичных чисел

Микропроцессор не различает числа со знаком и без знака. Вместо этого у него есть средства фиксирования возникновения характерных ситуаций, одно из них –это флаг переноса cf, установка которого в 1 говорит о том, что произошел выход за пределы разрядности операндов, и команда adc, которая учитывает возможность такого выхода (перенос из младшего разряда). Другое средство - это регистрация состояния старшего (знакового) разряда операнда, которое осуществляется с помощью флага переполнения of в регистре eflags (бит 11).

В компьютере числа представляются так: положительные числа — в двоичном коде, а отрицательные — в дополнительном коде. Рассмотрим различные варианты сложения чисел. Примеры призваны показать поведение двух старших битов операндов и правильность результата операции сложения.

Пример 8.1. Сложение чисел 1

30566 = 01110111 01100110

+

00687 = 00000010 10101111

31253 = 0111101000010101

Следим за переносами из 14-го и 15-го разрядов и правилъностью результата: переносов пет, результат правильный.

Пример 8.2. Сложение чисел 2

30566*0111011101100110

+

30566-01110111 01100110

61132 = 11101110 11001100

Произошел перенос из 14-го разряда; из 15-го разряда переноса нет. Результат неправильный, так как имеется переполнение — значение числа получилось больше, чем то, которое может иметь 16-битное число со знаком (+32 767).

Пример 8.3. Сложение чисел 3

-30566= 10001000 10011010

+

-04875 = 11101100 11110101

-35441 =01110101 10001111

Произошел перенос из 15-го разряда, из 14-го разряда нет переноса. Результат Неправильный, так как вместо отрицательного числа получилось положительное (в старшем бите находится 0).

Пример 8.4. Сложение чисел 4

-4875= 11101300 11130101

+

-4875 = 1101100 11110101

-9750 = 1101100 11101010

Есть переносы из 14-го и 15-го разрядов. Результат правильный. Таким образом, мы исследовали все случаи и выяснили, что ситуация переполнения (установка флага of в 1) происходит при переносе:

- из 14-го разряда (для положительных чисел со знаком);

- из 15-го разряда (для отрицательных чисел).

И наоборот, переполнения не происходит (то есть флаг of сбрасывается в 0), если есть перенос из обоих разрядов или перенос отсутствует в обоих разрядах. Итак, переполнение регистрируется с помощью флага переполнения of. Дополнительно к флагу of при переносе из старшего разряда устанавливается в 1 и флаг переноса cf. Так как микропроцессор не знает о существовании чисел со знаком и без знака, то вся ответственность за правильность действий с получившимися числами ложится на программиста. Учтя все это, мы сможем организовать правильный процесс сложения чисел — будем анализировать флаги cf и of и принимать правильное решение! Проанализировать флаги cf и of можно командами условного перехода jc\jnc и jo\jno, соответственно. Команды сложения чисел со знаком те же, что и для чисел без знака.

 


Дата добавления: 2015-08-27; просмотров: 100 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Сложение двоичных чисел без знака| Вычитание двоичных чисел без знака

mybiblioteka.su - 2015-2024 год. (0.005 сек.)