Меню сайта

Урок 38. Флаг переполнения

Флаг переполнения — OF — единственный флаг — в старшем байте регистра
— — — флагов, — — -который — — устанавливается — — -обычными арифметическими
— — — операциями. — Остальные флаги — старшегобайта — находятся под — прямым
— — — управлением — — программиста. — — Флаг — — — -переполнения — — — — — — еще — -один
— — — арифметический флаг, — как флаг нуля — и переноса. Флаг -переполнения
— — — необходим для арифметики вдополнительном — коде в такой же степени,
— — — как флаг переноса для арифметикиповышенной точности.
— — — — — В -арифметике — чисел, — представленных — в — дополнительном — коде,
— — — старший -бит — используется — — — — — для — -хранения — — — знака — числа. -Сумматор
— — — микропроцессора — работает как — сознакопеременными — — — — — числами, так — и
— — — беззнаковыми. — — Обычно — сложение — — чисел -со — — знаком — дает -верный
— — — результат. — — — Однаконакоторые — из чисел, — представленных в — дополни-
— — — тельном коде, при сложении дают — неверный результат. Пример на Фиг.
— — — 3.14 — — сложение — двух -8-битовых — — — чисел, — — — — — представленных — — — в — коде
— — — двоичного дополнения, — иллюстрируетэтот — случай. Если 72H и 53H —

— — — — — Шестнадцатеричное Десятичный эквивалент
— — — ————————————————-
— — — — — — — — -72H — — — — — — — — — — — — — — — 114
— — — — — — -+ 53H — — — — — — — — — — — — — + — — — — — 83
— — — — — — ——- — — — — — — — — — — — — ——
— — — — — — — -0C5H — — — — — — — — — — — — — — — 197
— — — ————————————————-

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

— — — числа без знака, то результат их сложенияверен. Если же это числа,
— — — представленные — в — дополнительном — коде -со — знаком, — то -результат
— — — сложения 0C5H — неверен, в коде — двоичногодополнения он — равен -59.
— — — сложение -положительных чисел — никогдане — дает в — результате отри-
— — — цательное. Результат сложения — оказался непредставиммым в диапазоне
— — — значений -8-битовых чисел — в двоичном — коде (от -127 до -128). Этот
— — — эффект -принято — называть — переполнением, — так — как — сумма вышла за
— — — пределы диапазона чисел, представимых вдополнительном коде.
— — — — — Важно -заметить, что — переполнение — и -перенос — — два различных
— — — флага и имеют — разное значение. На Фиг. 3.14 -нет переноса, так как
— — — сложение без знака дает — правильный результат, а есть переполнение:
— — — что сложение — со знаком дает неверный -результат. Возможен и случай
— — — одновременно переноса — и переполнения, как — показано на Фиг. — 3.15.

— — — — — — Шестнадцатеричное — — Двоичное дополнение — — — Беззнаковое
— — — ————————————————————-
— — — — — — — — — — — 8EH — — — — — — — — — -114 — — — — — — — — — — — — — — — — 142
— — — — — — — — — — -0ADH — — — — — — — — 83 — — — — — — — — — — — — — — — — 173
— — — — — — — — — —— — — — — — — —— — — — — — — — — — — — — — — ——
— — — — — — — — — -1 3BH — — — — — — — -197 — — — — — — — — — — — — — — — — 315
— — — ————————————————————-
— — — — — — — — — — — Фиг. 3.15 8-битовое сложение спереносом и перепонением

— — — Здесь показан — пример сложения двух -отрицательных чисел. Результат
— — — -197 выходит — за пределы диапазона — — — представимостив дополнительном
— — — коде. Это показано тем, что 8-битовыйрезультат 3BH — положительное
— — — число. -Кроме того — в этом — — — — — примере устанавливается — флаг переноса,
— — — означающий, — — что — — сложение — — без — — —
знака — — — — — дало число, — — — — — большее
— — — максимального представимого. В — случае 8-битовых чисел максимальное
— — — число равно 255.
— — — — — Вообще говоря, операция сложения — в процессоре
— — — выполняется одинаково над числами и сознаком, и без знака, а также
— — — с десятичными — числами. — Флаги переноса,дополнительного переноса и
— — — переполнения содержат — информацию о выполненной — операции, позволяя
— — — программе -определить — верный — — результат -в — используемой — — — системе
— — — счисления. — — — — Флаг — — — — — переполнения — — — — показывает, — — что — — -результат
— — — арифметической — операции — — выходит — — — за -пределы — — диапазона — чисел,
— — — представленных — в дополнительном — виде.Переполнение — отличается от
— — — переноса, -который показывает, — чтопроизошел — перенос из — старшего
— — — бита результата.

Категория: Программирование на Ассемблере | Дата: 15.02.13

Меню раздела
Блок