На 32-розрядній машині інструкція "додавання-перенесення", яка використовується як частина послідовності додавання з багатоточним складанням, повинна приймати операнди, вартістю 65 біт, і обчислити суму 33 біт. Специфікації регістрових джерел визначатимуть, звідки повинні надходити 64 біти операндів, а специфікація регістрового пункту призначення вказуватиме, куди мають піти нижні 32 біти результату, але що робити з операндом "додати один додатковий" або верхнім бітом результату? Дозволено вказувати як частину інструкції, звідки повинен надходити додатковий операнд, і куди повинен надходити додатковий біт результату, але це було б не дуже корисно, щоб виправдати додаткове поле в опкоді. Маючи фіксовану "локацію" для обробки прапора для перенесення, може бути трохи незручно з точки зору планування інструкцій, але це "
Якщо хтось намагався розробити набір інструкцій, який би дозволяв арифметику з високою точністю, але кожна інструкція була обмежена двома 32-бітовими операндами та одним 32-бітовим операндом призначення, можна було реалізувати 64-розрядне "додавання" у чотирьох інструкціях: "встановити r5 до 1, якщо r0 + r2 несе або дорівнює нулю в іншому випадку; обчислити r4 = r1 + r3; обчислити r5 = r4 + r5; обчислити r4 = r0 + r2 ", але виходячи за рамки цього потрібно три інструкції для кожного додаткового слова. Наявність прапора для перевезення в якості додаткового джерела та місця призначення зменшує вартість до однієї інструкції за кожне слово.
Зауважте, btw, що, маючи біт інструкцій, керувати, чи оновлення оновлення реєстру регістра прапора може полегшити виконання поза замовлення, оскільки інструкції, які використовують або змінюють біти прапора, повинні підтримувати свою послідовність один щодо одного, але інструкції, які не можуть ні бути вільно переставленим. Враховуючи послідовність:
ldr r0,[r1]
add r0,r0,r2
eors r4,r5,r6
підрозділ виконання міг досить легко визнати, що третя інструкція може виконуватись, не чекаючи, коли дані будуть прочитані [r1]
, але якби друга інструкція була adds r0,r0,r2
такою, це було б можливо лише в тому випадку, якщо виконавчий блок міг би переконатися, що що-небудь намагається використовувати прапори, нульовий прапор буде містити значення, встановлене в третій інструкції, але прапор перенесення буде містити значення у другій.