
【計】 auxiliary carry bit
【計】 ADDIT; preemergency; SEC
【醫】 aid
【計】 carry bit; carry digit
在計算機體系結構中,輔助進位位(Auxiliary Carry Flag, AC),也稱為半進位标志(Half Carry Flag),是處理器狀态寄存器中的一個專用标志位。它用于檢測二進制加法或減法運算中低四位向高四位的進位或借位情況,尤其在處理二進制編碼十進制(BCD)運算時至關重要。
低位進位檢測
當兩個8位二進制數相加時,輔助進位位專門記錄從第3位(bit 3)向第4位(bit 4)的進位狀态。例如:
0001 1000(0x18)
+ 0001 1001(0x19)
------------
0011 0001(0x31)
此處低四位 1000 + 1001 = 1 0001
産生向高四位的進位,AC 标志被置位(值為1)。
BCD運算的關鍵角色
在BCD調整指令(如x86的DAA
/DAS
)中,AC标志與進位标志(CF)共同決定是否對結果進行+6/-6校正,确保十進制結果的正确性。例如,5+8=13
的二進制結果為1101
,但BCD碼需表示為0001 0011
,此時AC标志觸發調整機制。
這種設計源于早期計算機對BCD碼的高效支持需求,現代x86架構仍保留此标志。
根據Intel® 64 and IA-32 Architectures Software Developer Manual:
"The auxiliary carry flag (AF) is set if a carry or borrow propagates between bits 3 and 4 of the result; otherwise, it is cleared. This flag is used in BCD arithmetic."
(若運算結果在bit 3與bit 4之間發生進位或借位,則輔助進位标志置位;否則清零。該标志用于BCD運算。)
參考文獻
輔助進位位(Auxiliary Carry Flag,簡稱AF或AC)是計算機處理器狀态寄存器中的一個标志位,主要用于檢測加減運算中低四位向高四位是否産生進位或借位。以下是詳細解釋:
作用場景
在8位加減法運算中,輔助進位位專門檢測低四位(D0-D3)與高四位(D4-D7)之間的進位/借位。例如:
0FH
(十進制15),則AF=1。數學意義
輔助進位位用于支持BCD碼(二進制編碼的十進制數)運算。例如,當兩個BCD數相加後,若低四位結果超過9,需通過調整指令(如x86的DAA指令)加6修正,此時AF标志觸發調整。
示例1:25H + 7BH = A0H
5H
(0101) + BH
(1011) = 10H
(0001 0000)。示例2:25H + 72H = 97H
5H
+ 2H
= 7H
(0111)。輔助進位位主要在以下場景中發揮作用:
便攜式手動穿孔器臂三角出版者初道螺絲攻出棧打有烙印的第一類拉格朗日方程爾格子二十二碳四烯酸發端網絡奮森氏線螺旋體負變導性傅立葉級數浮遊生物瓜菊環狀栅借款單據腈烤煙硫氰酸鉛沐浴療法膿性水疱諾維酸鞘炎蠕升極限山羊豆雙遊離基松弛效應隨訪護士尾部的