hjq123456 发表于 2015-6-29 20:03:07

为什么不是死循环

start:mov ax,data
          mov ds,ax
          mov bx,0
          mov ax,0
          mov cx,0
       s:cmp byte prt ,8;和8进行比较
          jne next            ;如果不相等转到next,继续循环
          inc ax                ;如果相等就将计数值加1
          
next:inc bx
       loop s
          
           mov ax,4c00h
           int 21h

小甲鱼的二师兄 发表于 2015-6-29 21:18:56

因为loop前会先cx = cx - 1,0 - 1 == FF不是吗?所以循环应该会执行FF次然后结束。

兰陵啸天 发表于 2015-7-2 12:40:52

楼上正解,从FF执行到cx=1时,再执行一次循环体过程后,到达loop s,此时loop会先将CX-1,然后CX的值为0了,LOOP判断CX为0,循环结束了。

tiandiweicheng3 发表于 2015-7-6 17:45:02

支持楼上所说,已经有结束条件

fishee 发表于 2015-7-8 13:25:41

同求,我也想知道
页: [1]
查看完整版本: 为什么不是死循环