汇编语言 [BX]和loop指令

一      .[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在汇编语言中称为段前缀。

原文地址:https://www.cnblogs.com/QiaoGeGe/p/10132967.html