汇编学习记录之七

版权声明:转载请注明出处 https://blog.csdn.net/wjintao/article/details/84388082

资料来源:汇编语言第二版-王爽

1.[bx]和loop指令

[bx]表示一个内存单元,它的偏移地址在bx中

我们要完整地描述一个内存单元,需要两种信息:(1)内存单元的地址;(2)内存单元的长度(类型)。

loop指令的格式是:loop 标号

CPU执行loop指令的时候,要进行两步操作:(1)inc cx 即通用寄存器中的值-1;(2)判断通用寄存器cx中的值,不为零则转到标号处执行程序,如果为零则向下执行。

从上面的描述中,我们可以看到,通用寄存器cx中的值影响着loop指令的执行结果。通常我们使用loop指令来实现循环功能,通用寄存器cx中存放循环次数。

2.段前缀

出现在访问内存单元的指令中,用于显式地指明内存单元的段地址的"ds:"、"cs:"、"ss:"或者"es:",在汇编语言中称为段前缀。

3.and和or指令

(3.1)and指令:逻辑与指令,按位进行与运算。

(3.2)or指令,逻辑或指令,按位进行或运算。

4.si寄存器和di寄存器

si和di是8086CPU中和bx功能相近的寄存器,si和di不能够分成两个8位寄存器来使用,只能按照16位的寄存器进行使用。

5.不同寻址方式的灵活应用

寻址方式有以下几种:

(1)[idata] 用一个常量来表示地址,可用于直接定位一个内存单元;

(2)[bx] 用一个变量来表示内存地址,可用于间接定位一个内存单元;

(3)[bx+idata] 用一个变量和常量表示地址,可在一个起始地址的基础上用变量间接定位一个内存单元;

(4)[bx+si] 用两个变量来表示内存地址;

(5)[bx+si+idata] 用两个变量和一个常量来表示地址。

6.bx,si,di,bp

(6.1)在8086CPU中,只有bx,si,di,bp这四个寄存器可以用在"[···]"中来进行内存单元的寻址。

(6.2)在[···]中,这四个寄存器可以单个出现,或只能以四种组合出现:bx和si,bx和di,bp和si,bp和di。

(6.3)只要在[···]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中

有错误请指正,谢谢!

猜你喜欢

转载自blog.csdn.net/wjintao/article/details/84388082
今日推荐