现在在学习汇编,感觉挺有意思的!,我就把学习的东西写下来吧,当作以后可以学习的笔记~
loop指令的格式是:loop标号,cpu执行loop指令的时候,要进行两步操作
1:(cx)=(cx)-1
2:判断cx中的值,不为零则转至标号处执行,如果为零,则向下执行
从上面的描述中,可以看到,cx中影响者loop指令的执行结果,通常,我们用loop指令来实现循环功能,cx中存放着循环次数
编程计算 2^2,结果存放在ax中
汇编代码实现,很简单
assume cs:code
code segment
mov ax,2
ass ax, ax
mov ax,4c00h
int 21h
code ends
end
这个实现起来很简单,但是若要求的一个数的幂很大时,就不能这样算了,就想c语言中的for循环一样,用一个loop来控制汇编语言中的循环累加
编程计算2^12
代码如下:
assume cs:code
code segment
mov ax,2
mov cx,11
s: add ax,ax
loop s
mov ax,4c00h
int 21h
code ends
end
分析:
1:标号,在汇编语言中,标号代表一个地址,这个地址处有一条指令:add ax,ax
在上面的过程中,我们可以总结出用cx和loop指令相配合实现循环功能的三个要点
(1) 在cx中存放着循环次数
(2) loop指令中的标号所标识的地址要在前面
(3)要循环执行的程序段,要写在标号和loop指令的中间
用cx和loop指令配合实现循环功能的程序框架如下
mov cx,循环次数
s:
循环执行的程序段
loop s
好了,loop就没什么问题了~