cost 76 ms
ROL 操作后溢出标志设置为 1,即使它应该未定义 - Overflow flag set to 1 after ROL operation even though it should be undefined

我正在使用emu8086学习8086汇编,我在玩一些旋转指令,至于我的问题,我知道对于超过1个位移/旋转,溢出标志OF的行为是未定义的。 但是当我尝试以下代码时 结果是 BH 寄存器中的 27H,对于标志,进位和溢出标志设置为 1,即使 OF 不应该设置,因为它是未定义的。 有人可以解释一下OF是如 ...

为什么仅在使用单班时设置溢出标志? - Why is the Overflow-Flag only set when single shifts are used?

在 x86 英特尔参考手册中说: “仅当使用指令的单班次 forms 时才会设置溢出标志。[...]” 但是当我遇到以下情况时: 这里答案的高位与进位结果不一样,即cf = 1 ,没有设置溢出标志。 我不明白为什么这是正确的行为。 为什么仅在使用单班时设置溢出标志? ...

如何在 GPR 的特定位中设置进位标志而不进行移位/旋转? - How to set carry flag in specific bit in GPR without shifts / rotations?

我正在为英特尔 80386 处理器编写 NASM 中的程序,我需要在 GPR(通用寄存器)中的特定位中设置进位标志的值,而不更改寄存器中的其他位。 是否有可能在不使用任何形式的轮班/轮换的情况下这样做? ...

CF 标志的难以理解的行为 - Incomprehensible behavior of the CF flag

假设有一段代码: 在这种情况下,CF = 0 标志,但在我看来它应该等于 1,因为减法运算是在加法运算上实现的,而处理器不知道我们将其作为输入,是有符号的还是无符号的数字,它只是完成它的工作。 也就是说,上面的代码等价于以下内容: 在al寄存器中输入值12,即0000 1100 在bl寄存 ...

现代 CPU 是否需要花费大量资源来更新标志? - Does it cost significant resources for a modern CPU to keep flags updated?

据我了解,在现代故障 CPU 上,最昂贵的东西之一是 state,因为必须在多个版本中跟踪 state,在许多指令中保持最新等。 一些指令集,如 x86 和 ARM 广泛使用标志,这些标志是在成本 model 不是今天的成本时引入的,标志只需要几个逻辑门。 诸如每条算术指令设置标志以检测零、进位和 ...

为什么在这个例子中没有设置溢出标志? - Why is the overflow flag not being set in this example?

我正在尝试为我的 x86 程序集 class 回答教科书中的一个问题。 其中一个示例要求解释为什么 over 标志会帮助您确定在这种情况下 al 的最终值是否在有效的有符号范围内。 我最初的想法是应该调用溢出标志,因为 -1 + 130 = 129,它超出了有符号 8 位 integer 的范围, ...

x86 架构是否以特殊方式处理零的二进制减法/与零的比较? - Does x86 architecture treat binary subtraction of zero/comparing with zero in a special manner?

在再次处理 x86 程序集时,我遇到了一种情况,我试图了解如何解释 cpu 的行为。 当使用cmp命令比较两个无符号整数时,进位的 state 和零标志反映了两个整数的关系。 因为cmp的行为类似于sub命令,但没有将减法的结果写入最终寄存器,所以进位标志占据了借位标志的一部分。 此外,减法只不过 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM