|
Флаг переполнения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.
Вообще говоря, операция сложенияв процессоре
выполняется одинаково над числами и со
знаком, и без знака, а также
с десятичнымичислами.Флаги переноса,
дополнительного переноса и
переполнения содержатинформацию о выполненнойоперации, позволяя
программеопределитьверныйрезультатвиспользуемойсистеме
счисления.Флаг
переполнения показывает,чторезультат
арифметическойоперациивыходитзапределыдиапазоначисел,
представленныхв дополнительномвиде.
Переполнениеотличается от
переноса,который показывает,что
произошелперенос изстаршего
бита результата.
|