我对CF 和 OF的认识,求指点

DontKissBossAss 2012-09-06 03:35:38
1: CF 进位标志, MBS 向高位的进位值 低位向MSB的进位值

如: 如下代码低位向MBS的进位值为1, MBS向高位的进位值为1. 两者执行或运算,CF = 1
mov al, 0ffh
add al, 1h


但是如下代码,CF = 1 就不明白怎么回事了。
mov al, 9h
neg al


2: OF:溢出标志: 向MBS的进位值。

如:

mov     al, 7fh
add al, 7fh;
...全文
103 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
DontKissBossAss 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

OF 标记位,简单地说就是加法运算时,两正数加出了个负数,或两负数加成了个正数,这些都是错误的结果,溢出了,OF=1 。从判定规则上来说,就是次最高位是否向最高位产生进位如果和最高位是否向上产生进位不一致的话,OF=1 ;若两个进位状态一致,则 OF=0 。
[/Quote]

谢谢帮助。 结贴。
均陵鼠侠 2012-09-10
  • 打赏
  • 举报
回复
《汇编语言:从实模式到保护模式》一书。
zara 2012-09-10
  • 打赏
  • 举报
回复
OF 标记位,简单地说就是加法运算时,两正数加出了个负数,或两负数加成了个正数,这些都是错误的结果,溢出了,OF=1 。从判定规则上来说,就是次最高位是否向最高位产生进位如果和最高位是否向上产生进位不一致的话,OF=1 ;若两个进位状态一致,则 OF=0 。
DontKissBossAss 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

那些只是个大致规则的描述,具体到实际的指令可能有其独特的规定,就如 neg 指令,其对 CF 的影响规则就是:操作数为 0 则 CF=0 否则 CF=1 。其实落实到算术上来看的话,也对;求负数就是 0-x ,只要 x!=0 那总是要产生借位的,故而 CF=1 了。
[/Quote]

谢谢指点,我看完intel5,在自己练习的时候, 发现neg 跟我预想的不一样, 因此就由此一问, 那么我描述的OF 正确么?
不知道有没有啥特别的。
zara 2012-09-06
  • 打赏
  • 举报
回复
那些只是个大致规则的描述,具体到实际的指令可能有其独特的规定,就如 neg 指令,其对 CF 的影响规则就是:操作数为 0 则 CF=0 否则 CF=1 。其实落实到算术上来看的话,也对;求负数就是 0-x ,只要 x!=0 那总是要产生借位的,故而 CF=1 了。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧