Прапор переносу
У комп'ютерних процесорах, прапор переносу (біт переносу у регістрі стану процесора), який зазвичай позначається як CF (Шаблон:Lang-en) — спеціальний прапор, який вказує на випадок арифметичного перенесення або запозичення під час зсуву старшого біта арифметико-логічним пристроєм (АЛП). Це дозволяє виконувати дії з довшими числами, ніж ті, що використовуються в АЛП.
Прапор переносу встановлюється в «1» у двох випадках:
- коли виконується перенесення одиниці до знакового розряду (7, 15, 31-го) і перенесення за межі розрядної сітки (з 7, 15, 31-го розряду до 8, 16, 32-го, які не існують за даної розрядності)
- коли виконується ЛИШЕ перенесення одиниці за межі розрядної сітки
Використання
Застосовується для виконання операцій над числами більшої розрядності.
Приклад використання для 8-бітової архітектури
- (прапор не встановлений)
- (прапор встановлений)
Таким чином, під час операції арифметичного додавання прапор можна розглядати як дев'ятий біт результату.
У процесорах Intel 8086 прапор «CF» також використовується для відображення операції порівняння та індикації результату множення (спільно з прапором переповнення «OF»).
Приклад для 16-бітової архітектури
Зазвичай під час виконання арифметичних операцій на зразок додавання або віднімання процесор Intel 8088 може працювати з не більш ніж 16-бітовими числами. Проте в деяких випадках доводиться маніпулювати з числами які перевищують 216. Наприклад, для додавання двох 32-бітових чисел програмі доведеться додати спочатку молодші частини чисел, а потім — старші. Розглянемо додавання 32-бітових чисел 22224444H і 3333EEEEH:
друге додавання перше додавання
---------------------------------------
2222 4444
3333 EEEE
1 (перенос від першого)
---- ----
5556 13332
---------------------------------------
32-бітове додавання з перенесенням
Перше 16-бітове додавання 4444H і EEEEH дає результат 13332H. Оскільки результат має довжину 17 біт, він не поміститься в 16-бітовий регістр. Прапор перенесення регістра станів отримає цей додатковий біт арифметичної інформації. Під час другого 16-бітового додавання додаються не тільки числа 2222H і 3333H, але й значення прапора переносу. Існує дві форми команди додавання: команда ADD додає два 16-бітових числа, даючи 17-бітовий результат, а команда додавання з перенесенням ADC додає два 16-бітових числа і значення прапора переносу, даючи також 17-бітовий результат.
Команди керування прапором переносу CF
- CLC скидає прапор CF
- STC встановлює прапор CF в одиницю
- CMC інвертує значення прапора CF
Ці команди не мають операндів і результатом є тільки зміна значення відповідного прапора.