操作数的寻址方式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.基址寻址方式
计算机中设置了一个寄存器,专门用 来存放基准地址,该寄存器就是基址寄存 器(RB)。RB既可在CPU中专设,也可由 指令指定某个通用寄存器担任。先将指令 地址码给出的地址A和基址寄存器RB的内 容通过加法器相加,所得的和作为有效地 址,再从存储器中读出所需的操作数。
这种操作数的有效地址由基址寄存 器中的基准地址和指令的地址码A相加得 到的方式称为基址寻址方式。
PC相对寻址方式,一般简称相 对寻址方式,是指将PC的内容(即 当前执行指令的地址)与地址码部分 给出的位移量(Disp)通过加法器 相加,所得之和作为操作数的有效 地址的方式。
有效地址EA数学形式为:
EA=(PC)+Disp.
采用相对寻址方式的好处是程 序员勿需用指令的绝对地址编程, 因而,所编程序可以放在内存的任 何地方。位移量的值可正可负,相 对于当前指令地址进行浮动。相对 寻址方式的特征由寻址特征位Xpc指 定。
4.3.2 操作数的寻址方式
所谓操作数寻址方式,就是形成操作数的 有效地址(EA)的方法.指令字中的地址码字 段,通常是由形式地址和寻址方式特征位组成 的,并不是操作数的有效地址。其表示形式为:
OPCODE 寻址方式特征MOD 形式地址A
形式地址,是指令字结构中给定的 地址量。而寻址方式特征位,通常由间址 位(I)和变址位(X)组成,若指令无间 址和变址要求,则形式地址就是操作数的 有效地址;若指令中指明要进行变址或间 址变换,则形式地址就不是操作数的有效 地址,而必须按指定方式进行变换,才能 形成有效地址.因此,操作数的寻址过程 就是将形式地址变换为操作数的有效地址 的过程。
但是,由于操作数是指令的一部分, 不能修改,而指令所处理的数据大多都 是在不断变化的,故这种方式只适用于 操作数固定的情况。通常用于给某一寄 存器或存储器单元赋初值或提供一个常 数等。立即寻址方式表示形式为:
OPCODE 立即寻址方式 操作数DAБайду номын сангаасA
3.寄存器寻址方式
当操作数不放在存储器中,而是放在 CPU的通用寄存器中时,存放操作数的寄 存器,其地址编号便可通过指令地址码 指出。这种所需要的操作数存放在某一 通用寄存器中,由指令地址码字段给出 该通用寄存器地址的方式,称为寄存器 寻址方式。
按寻址特征间址位X的要求,根据地 址码指的是寄存器地址还是存储器地址, 间接寻址又可分为寄存器间接寻址和存 储器间接寻址两种方式。
(1)寄存器间接寻址方式
寄存器间接寻址时,需先访问寄存 器,从寄存器读出操作数地址后,再 访问存储器才能取得操作数。
有效地址EA数学形式为: EA=(R),即Data=(EA)=(( R ))
(2)存储器直接寻址方式
一般简称直接寻址方式,其指令地 址码字段直接给出存放在存储器中操作 数的存储地址。
有效地址EA数学形式为:EA=A
图4.5
5.间接寻址方式
间接寻址是相对于直接寻址而言的。 间接寻址时,指令地址码字段给出的不 是操作数的真正地址,而是存放操作数 地址的地址,换句话说就是形式地址A所 指定单元中的内容才是操作数的有效地 址.这种操作数有效地址由指令地址码 所指示的单元内容间接给出的方式,称 为间接寻址方式,简称间址。
(2)存储器间接寻址方式
存储器间接寻址时,需要访问两次 存储器才能取得数据,第一次先从存储 器读出操作数地址,第二次才能根据读 出的操作数地址再取出真正的操作数。
有效地址EA的数学形式为: EA=(A), 即Data=(EA)=((A))
6.相对寻址方式
所谓相对寻址方式,是指根据一个 基准地址及其相对量来寻找操作数地址 的方式。根据基准地址的来源不同,它 又分为基址方式和变址方式,以及PC相 对寻址方式,这里主要指后者。
通用寄存器的数量一般在几个至几 十个之间,比存储单元少很多,因此地 址码短,从寄存器中存取数据比从存储 器中存取快得多,这种方式可以缩短指 令长度,节省存储空间,提高指令的执 行速度,在计算机中得到广泛应用。
4.直接寻址方式
指令地址码字段直接给出操作数的 有效地址,由于操作数的有效地址已由 指令地址码直接给出而不需要经过某种 变换或运算,所以称这种方式为直接寻 址方式。采用直接寻址方式时,操作数 的有效地址EA就是指令字中的形式地址A, 即EA=A,所以这类指令中的形式地址A又 称为直接地址。
间接寻址又有一次间址和多次间址 之分,一次间址是指形式地址A是操作数 地址的地址,即EA=(A);多次间址是指 这种间接变换在二次或二次以上.若 Data表示操作数,间接寻址过程可用如 下逻辑符号表示:
一次间接寻址 Data=(EA)=((A))
二次间接导址 Data=((EA))=(((A)))
2.立即寻址方式
指令字中的地址字段指出的不是操 作数的地址,而是操作数本身。这种所 需的操作数由指令的地址码字段直接给 出的寻址方式称为立即寻址方式。用这 种方式取一条指令时,操作数立即同操 作码一起被取出,从而节省了访问内存 的时间,提高了指令的执行速度,所以 这种寻址方式的特点是指令执行时间很 短。
1.隐含寻址方式
指令字中并不明显指出操作数地址, 而是将操作数的地址隐含在指令中.这 种操作数隐含在CPU的寄存器或者主存储 器的某指定存储单元中,指令中却没有 明显给出操作数地址的寻址方式,称为 隐含寻址方式.
例如,单地址指令,常以运算器中 累加器AC中的数据为被操作数,指令字 的地址码字段所指明的数为操作数,操 作结果又放回累加器AC中。这类指令格 式明显指出的只是第一操作数的地址, 并没有明显地在地址字段中指出第二操 作数的地址,但是,该指令规定累加器 AC作为第二操作数地址。因此,累加器 AC对这类单地址指令来说是隐含地址。
直接寻址方式表示形式为:
OPCODE 直接寻址方式 操作数直接地址A
直接寻址方式又可分为寄存器直 接寻址和存储器直接寻址两种。
(1)寄存器直接寻址方式
指令地址码字段直接给出所需操作数在 通用寄存器中地址编号。其表示形式为:
OPCODE 寄存器直接寻址 寄存器地址编号Ri
有效地址EA数学形式为:EA=Ri 。
地址码A在这种方式下通常被称为位 移量(Disp)
基址寻址主要解决程序在存储器中的 定位和扩大寻址空间等问题。基址寄存 器有效地址EA数学形式为:
EA=(RB)+ Disp。