为什么下面的说明会设置标志标志?
mov al,0FEh
sub al,2据我所知,AL寄存器可以容纳2^8 -1或255。0 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)发布于 2015-05-10 06:50:58
符号标志假定操作数被视为有符号(2的补足)值。
在AL的情况下,这意味着它被视为持有从-128到+127的值。
0 0feh,当处理为签名时,8位数量表示-2。减去2得到0fch,这(同样,作为一个签名的,8位数量)是-4。
如果选择,则可以将AL视为持有0到255之间的值。然而,当你这样做的时候,你就把AL当作没有签名的。当您处理无符号值时,通常会忽略符号标志--它与无符号算术完全无关。
https://stackoverflow.com/questions/30148502
复制相似问题