一 .[bx]
1. mov ax,[bx]
bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。
2. mov [bx],ax
bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据送入内存SA:EA处。
3. inc bx
其表示的含义是bx中的内容加1,比如下面两条指令:
mov bx,1
inc bx
执行之后的结果,bx=2.
二 loop指令
1. cx中的值影响着loop指令的执行结果。我们用loop指令来实现循环功能,cx中存放循环次数。
2. loops
CPU在执行loops的时候,要进行两步的操作:
1)(cx)=(cx)-1;
2) 判断cx中的值,不为0则转至标号s所标识的地址处执行(这里的指令是add ax,ax),如何为零则执行下一条指令
3)mov cx,11
s: add ax,ax
loop s
执行loops时,首先要将cx减1,然后若cx不为0,则向前转至s处执行add ax,ax所以,可以利用cx来控制add ax,ax的执行次数。
三 段前缀
1:mov ax,es:[bx]
将一个内存单元的内容送入ax,这个内存单元的长度为2字节,存放1个字,偏移地址在地址bx中,段地址在es中。
2:mov ax,ss:[0]
将一个内存单元的内容送入ax中,这个内存单元的长度为2个字节,存放一个字,偏移地址为0,段地址在ss中。
这些出现在访问内存单元的指令中,用于显示地指明内存单元的段地址的es ss在汇编语言中称为段前缀。