注册 登录
编程论坛 汇编论坛

关于CF进位标志位的问题

shanfengpk 发布于 2008-04-21 20:37, 3963 次点击
小弟还是个新手,在学习的时关于INC AL和DEC AL 两个指令的时候,书上说它们可以影响OF,SF,ZF,AF,PF标志位,但是不影响CF进位标志位!!我想如果AL中的内容是11111111,那么执行对CF没有影响吗??
请高手帮忙解释一下!!最好举例说明一下!!
先谢谢了!!
6 回复
#2
woami662008-04-21 21:44
如果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:
#3
shanfengpk2008-04-22 12:46
是的啊,AL中的内容变为了00000000,但是还是有向高位的一个进位啊,既然有进位那CF为什么不是为1,而是为0呢??这个问题还是不懂啊!!
还是谢谢了啊!!
#4
rediums2008-04-22 23:02
个人意见,仅供参考:
CPU的设计者为了提高指令的效率,所以只是把操作数增1,而不做其他的操作,如果设置了进位标志,那么和add al,1指令就没有什么区别了,INC 也就没有存在的意义了
#5
wangjianguo2008-04-26 21:57
我也觉得那只是单纯的逻辑加一指令.就是在0到255中的任意一个数之上加1.没有进位.只涉及八位二进制数.当为11111111时,只是产生益处
#6
henankaifei7172008-04-27 18:40
INC和DEC的引入主要是用于对计数器和地址指针的调整,所以它们不影响进位CF标志。至于你说的那种情况Intel公司想让咱们用ADD
#7
folksy_smile2008-05-01 01:11
inc的操作数是无符号数,增加时不存在进位的问题
1