
【计】 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)。辅助进位位主要在以下场景中发挥作用:
崩裂力常用品潮汐尘埃学赤杨属处理表地面雷达法律援助协会非流动资产鸽的工厂交货成本供应者汉堡王假说明级长积水性外生骨疣救生装置肋外的笼络选区的选民露置牵涉性痛亲属通婚上肢诸肌生物过泸器势的随机问题条约原本统帅外伤后的微观研究