WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Флаг переноса CF (англ. Carry flag) в микропроцессорах — битовый флаг, который устанавливается, если в результате арифметической операции в (n + 1)-м значащем бите появилась единица (соответственно, в результате двоичного сдвига из разрядной сетки ушла единица). На языке ассемблера для 8088-процессоров обозначается как «CF».

Пример использования для восьмибитной архитектуры:

(флаг не установлен)
(флаг установлен)

Таким образом, при операции арифметического сложения флаг можно рассматривать как девятый бит результата.

Для чего нужен

Для арифметических операций над беззнаковыми числами флаг переноса — это признак переполнения. Для знаковых чисел, как правило, есть знаковый отдельный флаг переполнения (OF = overflow flag в 8086).

Чтобы сравнить два числа — «меньше», «больше» или «равны» — у процессоров есть операция CMP, которая вычитает два числа, но не сохраняет результат, только заполняет флаги. По содержимому флагов «перенос» (CF), «переполнение» (OF) и «ноль» (ZF) можно определить результат сравнения. Например, беззнаковое «больше» — это CF=0 и ZF=0.

Чтобы складывать и вычитать длинные числа, есть команды «сложить с переносом» и «вычесть с заимствованием» (Y = A + B + CF, Y = A − B − CF). К слову сказать, вычитание обычно реализуется как A + not(B) + 1, соответственно, вычитание с заимствованием — как A + not(B) + not(CF). Чтобы сдвигать длинные числа, есть команда «двоичный сдвиг через флаг переноса». Также флаг переполнения свидетельствует о смене знака числа (как только сменился - сразу принимает значение "1"), с которым процессор произвел какое либо действие.

См. также

Литература

  • Л. Скэнлон. Флаги // Персональные ЭВМ IBM PC и XT: Программирование на языке ассемблера = IBM PC & XT Assembly Language: A guide for Programmers. Enchanced and Enlarged / пер. с англ. И. В. Емелин. — 2-е изд., стереотипное. М.: Радио и связь, 1991. — С. 24—26. 50 000 экз. ISBN 5-256-00956-7.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии