为什么加1指令INC和减1指令对Cf标志位没有影响?(汇编语言的问题)加1指令INC可以实现字节加1或字加1,还有减1指令DEC可以实现字节的减1或字的减1,可是,书上说他们都不影响CF标志位.为什么呢?我就用加1指令语句来反证:INC 0000000011111111 这条语句一执行,不久得到数0000000100000000了吗!这不久是产生进位了吗请知道的大哥们解释哈 谢谢哒
问题描述:
为什么加1指令INC和减1指令对Cf标志位没有影响?(汇编语言的问题)
加1指令INC可以实现字节加1或字加1,
还有减1指令DEC可以实现字节的减1或字的减1,
可是,书上说他们都不影响CF标志位.
为什么呢?
我就用加1指令语句来反证:
INC 0000000011111111
这条语句一执行,不久得到数0000000100000000了吗!这不久是产生进位了吗
请知道的大哥们解释哈 谢谢哒
答
这位童鞋很好学嘛!
1.INC,DEC指令不影响CF标志位,这个是Intel规定的!其原因是硬件设计造成的,总之,对软件人员来说不重要!
2.INC,DEC指令不影响CF标志位,这表明执行INC/DEC指令之后,CF不能反映进位情况
INC 0000000011111111
0000000011111111+1当然要进位,但不设置CF为1.
你的问题就在于,将进位与CF等同
CF被称为进位标志位,在多数情况下,它确实反映进位情况,但不是绝对的,INC/DEC就是其中两例
INC/DEC指令不影响CF标志位,这句话就是明明白白地告诉你,此时,CF与进位无关