loop指令的格式:loop 标号
CPU执行loop指令的时候,要进行两步操作
1. (cx)=(cx)-1;
2. 判断cx中的值,不为零则转至标号处执行程序,如果为0则向下执行
程序5.1
assume cs:code
code segment
start:
mov ax,2
mov cx,11
s: add ax,ax
loop s
mov ax,4c00h
int 21h
code ends
end start
masm编译器编译成exe文件后,测试
注意到LOOP 0006,标号s在这里转化为了IP的偏移量
1000H=4096,结果正确
总结
1. 在cx中存放需要循环的次数
2. loop指令中的标号所标识地址要在前面
3. 要循环执行的程序段,要卸载标号和loop指令的中间
mov cx,循环次数
s:
循环执行的程序段
loop s