c语言loop指令,汇编语言中loop指令的使用

现在在学习汇编,感觉挺有意思的!,我就把学习的东西写下来吧,当作以后可以学习的笔记~

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就没什么问题了~

你可能感兴趣的:(c语言loop指令)