assume cs:codesg codesg segment start: mov ax,0001 mov cx,3
s:add ax,0001 loop s mov ax,4C00H int 21H
codesg ends
end start
上述过程的步骤是不是
先把0001(十进制)赋给ax,3赋给cx。
最关键步骤是循环,是这样吗?(1)首先无条件执行一次add ax,0001,ax变成0002,cx还是3.(2)现在cx-1成2,2不等于0,然后可以执行循环,add ax,0001,现在ax=0003.(3)然后cx-1=1不等于0,然后可以执行循环,add ax,0001,现在ax=0004(4)然后cx-1=0,退出循环,程序退出。
我在OD演示
循环控制指令LOOP
格式: LOOP 标号
功能: (CX)<--(CX)-1,(CX)<>0,则转移至标号处循环执行, 直至(CX)=0,继续执行后继指令.
本指令是用CX寄存器作为计数器,来控制程序的循环.