在x86标志寄存器中,辅助进位和普通进位有什么不同? [英] What's the difference between Aux Carry and Common Carry in x86 Flags Registers)?

查看:9
本文介绍了在x86标志寄存器中,辅助进位和普通进位有什么不同?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道这个x86寄存器标志在DOS/Windows程序调试中的含义:

辅助进位(AC = 1NA = 0)

它与公共进位的含义相同吗?(CY = 1NC = 0)

推荐答案

当指令导致进位或借出位3时,设置辅助进位标志。与CY的概念相同,只是用于字节中的低位半字节的高位。缩写AC是旧式,该标志在英特尔处理器手册中命名为"AF",是"调整标志"的缩写。它被少数执行BCD计算调整的x86指令使用,如AAC(ASCII加法后调整)和DAA(加法后小数调整)。这些指令可以追溯到计算的石器时代,当时以BCD编码提供操作数仍然很常见。它在半字节中对十进制数字进行编码。像十进制99在bcd中是10011001。

当时,处理器对涉及BCD的计算有专门的硬件支持是很常见的。这是古老的历史,程序员习惯于用二进制编码数字。嗯,最重要的是编译器。值得注意的是,这些指令不再存在于x64指令集中。为更有用的64位特定操作码腾出空间。

这篇关于在x86标志寄存器中,辅助进位和普通进位有什么不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆