学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

关于CF进位标志位的问题

关于CF进位标志位的问题

小弟还是个新手,在学习的时关于INC AL和DEC AL 两个指令的时候,书上说它们可以影响OF,SF,ZF,AF,PF标志位,但是不影响CF进位标志位!!我想如果AL中的内容是11111111,那么执行对CF没有影响吗??
请高手帮忙解释一下!!最好举例说明一下!!
先谢谢了!!

TOP

如果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:

TOP

是的啊,AL中的内容变为了00000000,但是还是有向高位的一个进位啊,既然有进位那CF为什么不是为1,而是为0呢??这个问题还是不懂啊!!
还是谢谢了啊!!

TOP

个人意见,仅供参考:
CPU的设计者为了提高指令的效率,所以只是把操作数增1,而不做其他的操作,如果设置了进位标志,那么和add al,1指令就没有什么区别了,INC 也就没有存在的意义了

TOP

我也觉得那只是单纯的逻辑加一指令.就是在0到255中的任意一个数之上加1.没有进位.只涉及八位二进制数.当为11111111时,只是产生益处

TOP

INC和DEC的引入主要是用于对计数器和地址指针的调整,所以它们不影响进位CF标志。至于你说的那种情况Intel公司想让咱们用ADD

TOP

inc的操作数是无符号数,增加时不存在进位的问题

TOP

发新话题