为什么以下说明会设置标志标志?
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)
答案 0 :(得分:4)
符号标志假定操作数被视为带符号(2&#39; s补码)值。
在AL的情况下,这意味着它被视为从-128到+127的保持值。
0feh,当被视为有符号时,8位数量表示-2。减去2给出0fch,(再次,作为有符号的8位数量)是-4。
当/如果选择,您可以将AL视为保持值从0到255.但是,当您这样做时,您将AL视为无符号。当您处理无符号值时,您通常会忽略符号标记 - 它与无符号算术无关。