loop指令,可以实现循环功能。
在汇编语言(王爽大师,第三版)中是这么介绍的:
CPU执行loop指令的时候,要进行两步操作,1.(cx)=(cx)-1;2.判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行。
这句话读下来给人的感觉是,先cx自减,再判断cx来决定是否执行循环体。可这样一来就和cx控制循环次数矛盾了。想不明白当然就要实践一番。跟踪一下下面的汇编代码:
mov ax, 2
mov cx, 1
s: add ax,ax
loop s
可以看到下面的调试信息:
可以看到确实是先判cx值执行一次循环体,再cx自减的。这样就证明cx确实等于循环次数