计算机是近年来的热门考研专业,相信2021计算机考研学生也不少。文都考研小编为大家带来了2021计算机考研复习知识点:指令的寻址方式,一起看看吧。

指令的寻址方式

1. 有效地址的概念

操作数的真实地址称为有效地址,记做EA,它是寻址方式和形式地址共同来决定的。

2. 数据寻址和指令寻址

寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令的地址,与硬件结构密切相关,寻址方式分为指令寻址和数据寻址两大类

指令寻址分为顺序寻址和跳跃寻址两种。

顺序寻址可以通过程序计数器PC加1自动形成下一条指令的地址,跳跃寻址则通过转移类指令实现,是通过对PC的运算得到新的下一条指令的地址。

3. 常见寻址方式

1)立即寻址

所需的操作数由指令的地址码部分直接给出,就称为立即数(或直接数)寻址方式。这种方式的特点是取指时,操作码和一个操作数同时被取出,不必再次访问存储器,了指令的执行速度。但是由于这一操作数是指令的一部分,不能修改,而一般情况下,指令所处理的数据都是在不断变化的(如上条指令的执行结果作为下条指令的操作数),故这种方式只能适用于操作数固定的情况。通常用于给某一寄存器或存储器单元赋初值或提供一个常数等。

2)直接寻址

指令的地址码部分给出操作数在存储器中的地址。

3)隐含寻址

操作数的地址隐含在操作码或者某个寄存器中。

4)间接寻址

在寻址时,有时根据指令的地址码所取出的内容既不是操作数,也不是下一条要执行的指令,而是操作数的地址或指令的地址,这种方式称为间接寻址或间址。

5)寄存器寻址

计算机的中央处理器一般设置有一定数量的通用寄存器,用以存放操作数、操作数的地址或中间结果。假如指令地址码部分给出某一通用寄存器地址,而且所需的操作数就在这一寄存器中,则称为寄存器寻址。通用寄存器的数量一般在几个至几十个之间,比存储单元少很多,因此地址码短,而且从寄存器中存取数据比从存储器中存取快得多,所以这种方式可以缩短指令长度、节省存储空间,指令的执行速度,在计算机中得到广泛应用。

6)寄存器间接寻址

寄存器中给出的是操作数的地址,因此还需要访问一次存储器才能得到操作数。

7)基址寻址

在计算机中设置一个专用的基址寄存器,或由指令指定一个通用寄存器为基址寄存器。操作数的地址由基址寄存器的内容和指令的地址码A相加得到

8)变址寻址

指令地址码部分给出的地址A和指定的变址寄存器X的内容通过加法器相加,所得的和作为地址从存储器中读出所需的操作数。这是几乎所有计算机都采用的一种寻址方式。

9)相对寻址

把程序计数器PC的内容(即当前执行指令的地址)与指令的地址码部分给出的位移量(disp)之和作为操作数的地址或转移地址,称为相对寻址。

主要用于转移指令,执行本条指令后,将转移到(PC)+disp,(PC)为程序计数器的内容。相对寻址有两个特点:

1〉转移地址不是固定的,它随着PC值的变化而变化,并且总是与PC相差一个固定值disp,因此无论程序装人存储器的任何地方,均能正确运行,对浮动程序很适用。

2〉位移量可正、可负,通常用补码表示。如果位移量为n位,则这种方式的寻址范围在

(PC)-2n-1 ~(PC)+2n-1-1之间

计算机的程序和数据一般是分开存放的,程序区在程序执行过程中不允许修改。在程序与数据分区存放的情况下,不用相对寻址方式来确定操作数地址。

10)堆栈寻址

在一般计算机中,堆栈主要用来暂存中断和子程序调用时现场数据及返回地址,用于访问堆栈的指令只有压入(即进栈)和弹出(即退栈)两种,它们实际上是一种特殊的数据传送指令:

压入指令(PUSH)是把指定的操作数送入堆栈的栈顶;

弹出指令(POP)的操作刚好相反,是把栈顶的数据取出,送到指令所指定的目的地。

一般的计算机中,堆栈从高地址向低地址扩展,即栈底的地址总是大于或等于栈顶的地址(也有少数计算机刚好相反)当执行压入操作时,首先把堆栈指针(SP)减量(减量的多少取决于压入数据的字节数,若压入一个字节,则减1;若压入两个字节,则减2,以此类推),然后把数据送人SP所指定的单元;当执行弹出操作时,首先把sp所指定的单元(即栈顶)的数据取出,然后根据数据的大小(即所占的字节数)对SP增量。

以上就是2021计算机考研复习知识点:指令的寻址方式。更多2021计算机考研复习知识点,持续更新中。

热门推荐

文都教育 各科目2020考研真题答案及解析汇总(预测)

2020考研真题解析直播课