首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >装配x86标志

装配x86标志
EN

Stack Overflow用户
提问于 2015-05-10 06:44:37
回答 1查看 3K关注 0票数 1

为什么下面的说明会设置标志标志?

代码语言:javascript
复制
mov al,0FEh
sub al,2

据我所知,AL寄存器可以容纳2^8 -1或255。0 0FEh = 254小数。减去2剩下252。这似乎是积极的。

(对于那些对程序集/二进制算法来说,下面可能会澄清接受的答案)

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-10 06:50:58

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

在AL的情况下,这意味着它被视为持有从-128到+127的值。

0 0feh,当处理为签名时,8位数量表示-2。减去2得到0fch,这(同样,作为一个签名的,8位数量)是-4。

如果选择,则可以将AL视为持有0到255之间的值。然而,当你这样做的时候,你就把AL当作没有签名的。当您处理无符号值时,通常会忽略符号标志--它与无符号算术完全无关。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30148502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档