gpt4 book ai didi

程序集 x86 标志标志

转载 作者:行者123 更新时间:2023-12-03 09:21:17 29 4
gpt4 key购买 nike

为什么下面的指令会设置符号标志?

mov al,0FEh
sub al,2

据我了解,AL寄存器可以保存2^8 - 1或255。0FEh = 254(十进制)。减去 2 叶 252。这似乎是正数。

(对于那些不熟悉汇编/二进制算术的人,下面可能会澄清可接受的答案)

dec = bin
254 = 1111 1110
0000 0001 <- inverted bits
0000 0001 <- add 1
0000 0010 <- two's complement value (happens to = -2 --
this has nothing to do with the name two's complement)

最佳答案

符号标志假定操作数被视为有符号(2 的补码)值。

就 AL 而言,这意味着它被视为保持 -128 到 +127 之间的值。

0feh,当被视为有符号的 8 位量时表示 -2。减去 2 得到 0fch,它(同样是一个有符号的 8 位量)是 -4。

当您选择时,您可以将 AL 视为保留 0 到 255 之间的值。但是,当您这样做时,您将 AL 视为无符号。当您处理无符号值时,您通常会忽略符号标志 - 它与无符号算术无关。

关于程序集 x86 标志标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30148502/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com