|「计算机组成原理」:常见的指令寻址方式( 三 )


本文插图

特点:可以扩大寻址范围(因为基址的位数可以设置为很长) 。 BR的内容可由操作系统或者管理程序确定 。 程序的执行期间 , BR内容不变但是A的内容可变 。 有利于多道程序的设计 。
9. 变址寻址(面向用户)
这种做法是 , 指定一个变址寄存器IX , 有效地址等于A与寄存器IX的内容相加 。 即EA = A +(IX) 。 与上面的基址寻址的方法不同 , IX的内容可以随要求填入 , IX既可以用专用的寄存器 , 又可以用通用寄存器 。 用汇编指令可以表示为:
mov ax,200[si]过程如图:
|「计算机组成原理」:常见的指令寻址方式
本文插图

变址寻址是一种被广泛采用的寻址方式 。 最典型的应用就是将指令的地址码部分给出的地址A作为基准地址 , 而将变址寄存器中的内容作为修改量 。 在遇到需要频繁修改操作数地址的操作时 , 无需修改指令 , 只要修改变址寄存器中的编址值即可 。
在编程中 , 可设A为数组首地址 , 不断修改寄存器的内容 , 便可以得到数组中的任一数据地址 。 特别适合编制循环程序 。
10. 堆栈寻址
堆栈是存储器中按LIFO的方式管理的存储区 , 该存储区的读/写单元地址用一个特定的寄存器给出 , 该寄存器称为堆栈指针(SP) 。 堆栈分为硬堆栈跟软堆栈两种 。寄存器堆栈称为硬堆栈 , 从主存中划出一段区域称为软堆栈 。
【|「计算机组成原理」:常见的指令寻址方式】(这里注意sp一开始指向为空 , 所以在弹出的时候 , 先加1 , 因为有数据的时候才可以弹出 。 )


推荐阅读