关于CF进位标志位的问题
小弟还是个新手,在学习的时关于INC AL和DEC AL 两个指令的时候,书上说它们可以影响OF,SF,ZF,AF,PF标志位,但是不影响CF进位标志位!!我想如果AL中的内容是11111111,那么执行对CF没有影响吗??请高手帮忙解释一下!!最好举例说明一下!!
先谢谢了!! 如果AL中的内容是11111111,那么执行完inc al后,al=00000000,CF=0
可以执行一下下边的代码:
mov cl,97
mov al,0ffh
inc al
jc next
add cl,al
mov dl,cl
mov ah,2
int 21h
jmp exit
next:
inc al
add cl,al
mov dl,cl
mov ah,2
int 21h
exit: 是的啊,AL中的内容变为了00000000,但是还是有向高位的一个进位啊,既然有进位那CF为什么不是为1,而是为0呢??这个问题还是不懂啊!!
还是谢谢了啊!! 个人意见,仅供参考:
CPU的设计者为了提高指令的效率,所以只是把操作数增1,而不做其他的操作,如果设置了进位标志,那么和add al,1指令就没有什么区别了,INC 也就没有存在的意义了 我也觉得那只是单纯的逻辑加一指令.就是在0到255中的任意一个数之上加1.没有进位.只涉及八位二进制数.当为11111111时,只是产生益处 INC和DEC的引入主要是用于对计数器和地址指针的调整,所以它们不影响进位CF标志。至于你说的那种情况Intel公司想让咱们用ADD inc的操作数是无符号数,增加时不存在进位的问题
页:
[1]
