一概述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403105701475.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hoeXR5cQ==,size_16,color_FFFFFF,t_70)
1.基址寻址
将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,而形成操作数的有效地址,即EA=(BR)+A。 注:基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。 当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。 优点:可扩大寻址范围(基址的位数大于形式地址A的位数);用户不必考虑自己的程序存于主存的哪一空间区域。故有利于多道程序设计,以及用于编制浮点程序。
优点:可扩大寻址范围(基址寄存器的位数大于形式地址A的位数);用户不变考虑自己的程序 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403112851926.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hoeXR5cQ==,size_16,color_FFFFFF,t_70)
2.变址寻址
有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和, 即EA=(IX)+A,其中IX为变址寄存器(专用),也可用通用寄存器作为变址寄存器。 注:变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可用用户改变(作为偏移量),形式地址A不变(作为基地址). 优点:可扩大寻址范围(变址寄存器的位数大于形式地址A的位数);在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。 变址寻址和基址寻址配合使用:EA=A+(BR)+(IX) 变址寻址与间接寻址配合使用; 如先变址后间址:EA=(A+(IX)); 先间址后变址:EA=(A)+(IX)。
相对寻址
把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A,其中A是相对于当前指令地址的位移量,可正可负,补码表示。 优点:操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总相差一个固定值,因此便于程序浮动。 相对寻址广泛应用于转移指令。
例题:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020040312032943.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hoeXR5cQ==,size_16,color_FFFFFF,t_70)
|