На главную Назад
Добро пожаловать, уважаемый посетитель!

Флаг переполненияOF - единственный флагв старшем байте регистра

флагов,которыйустанавливаетсяобычнымиарифметическими

операциями.Остальные флагистаршего байтанаходятся подпрямым

управлениемпрограммиста.Флагпереполнения -ещеодин

арифметический флаг,как флаг нуляи переноса. Флагпереполнения

необходим для арифметики в дополнительномкоде в такой же степени,

как флаг переноса для арифметики повышенной точности.

Варифметикечисел,представленныхвдополнительномкоде,

старшийбитиспользуетсядляхранениязнакачисла.Сумматор

микропроцессораработает каксо знакопеременнымичислами, таки

беззнаковыми.Обычносложениечиселсознакомдаетверный

результат.Однако накоторыеиз чисел,представленных вдополни-

тельном коде, при сложении даютневерный результат. Пример на Фиг.

3.14-сложениедвух8-битовыхчисел,представленныхвкоде

двоичного дополнения, - иллюстрирует этотслучай. Если 72H и 53H -

 

ШестнадцатеричноеДесятичный эквивалент

------------------------------------------------

72H114

+ 53H+83

------------

0C5H197

------------------------------------------------

 

Фиг. 3.14 8-битовое сложение

с переполнением

 

числа без знака, то результат их сложения верен. Если же это числа,

представленныевдополнительномкодесознаком,торезультат

сложения 0C5Hневерен, в кодедвоичного дополнения онравен -59.

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

цательное. Результат сложенияоказался непредставиммым в диапазоне

значений8-битовых чиселв двоичномкоде (от127 до -128). Этот

эффектпринятоназыватьпереполнением,таккаксумма вышла за

пределы диапазона чисел, представимых в дополнительном коде.

Важнозаметить, чтопереполнениеиперенос -два различных

флага и имеютразное значение. На Фиг. 3.14нет переноса, так как

сложение без знака даетправильный результат, а есть переполнение:

что сложениесо знаком дает неверныйрезультат. Возможен и случай

одновременно переносаи переполнения, какпоказано на Фиг.3.15.

 

ШестнадцатеричноеДвоичное дополнениеБеззнаковое

------------------------------------------------------------

8EH-114142

0ADH- 83173

----- ---------

1 3BH-197315

------------------------------------------------------------

Фиг. 3.15 8-битовое сложение с переносом и перепонением

 

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

-197 выходитза пределы диапазонапредставимости в дополнительном

коде. Это показано тем, что 8-битовый результат 3BH - положительное

число.Кроме тогов этомпримере устанавливаетсяфлаг переноса,

означающий,чтосложениебез знака далочисло,большее

максимального представимого. Вслучае 8-битовых чисел максимальное

число равно 255.

Вообще говоря, операция сложенияв процессоре

выполняется одинаково над числами и со знаком, и без знака, а также

с десятичнымичислами.Флаги переноса, дополнительного переноса и

переполнения содержатинформацию о выполненнойоперации, позволяя

программеопределитьверныйрезультатвиспользуемойсистеме

счисления.Флаг переполнения показывает,чторезультат

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

представленныхв дополнительномвиде. Переполнениеотличается от

переноса,который показывает,что произошелперенос изстаршего

бита результата.


 

Mail.ru