今天学习一下循环指令loop。
这里的[BX]和前面所讲的IP的作用一样,寄存器里面存放的是偏移地址。
如mov ax,[bx] 将一个内存单元的内容送入ax,内存单元长度为2字节,偏移地址在bx中,段地址在ds中。
loop指令的格式:loop 标号,cpu执行loop指令时分两步走,①(cx) = (cx - 1),②判断cx中的值,若不为0转至标号处执行程序,为0则向下执行
通常我们用loop指令实现循环,cx中存放循环次数。
如果我们要计算是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
注意:如果我们要传送一个立即数,他的最前面是A,B,C,D,E,F这些数时需要加个0,比如我们要写mov ax f123H(错误),发现最前面是F,应该要加个0,所以mov ax 0f123H(正确)。即汇编语言中,数据不能以字母开头。