目录
一、知识点
1.寻址方式什么?
2.根据操作数所在的位置,都有哪些寻址方式?
3.直接寻址
4.立即寻址
5.隐含寻址
6.相对寻址
7.寄存器
8.寄存器-寄存器型(RR)、寄存器-存储器型(RS)和存储器-存储器型(SS)
9.基址寻址方式和变址寻址方式
二、题集
前言
本文主要对计组中寻址方式这一板块内容进行总结,附加习题供参考
指确定本条指令的地址及下一条要执行的指令地址的方法
形成指令寻址的方式,称为指令寻址方式,有顺序寻址和跳跃寻址两种,使用程序计数器来跟踪,跳跃寻址方式,可以实现程序的条件转移或无条件转移。
①操作数在寄存器中,是寄存器直接寻址方式;
②操作数地址在寄存器中,是寄存器间接寻址方式;
③操作数在指令中,是立即数寻址方式;
④操作数地址在指令中,是直接寻址方式;
⑤操作数地址为某一寄存器中的内容与偏移量之和,寄存器为变址寄存器,则是变址寻址方式;寄存器为基址寄存器,则是基址寻址方式;
如形式地址为D,则直接寻址方式中,操作数的有效地址为_D_;立即寻址方式中,操作数的有效地址 为操作数;间接寻址方式中,操作数的有效地址为_(D)_;变址寻址方式中,操作数的有效地址为(R)+D;相对寻址方式中,指令的有效地址为 _(PC)+D_。
直接寻址方式指令中,直接给出操作数的地址 ,操作数地址直接出现在地址码位置,只需访问内存1次就可获得操作数。有效地址等于形式地址的寻址方式。
立即寻址方式的特点是执行速度快,取指令的同时也取出数据,不需要寻址计算和访问内存,但操作数是固定不变的,因此适合于访问常数。
立即寻址:在指令的地址字段中,直接指出操作数本身的寻址方式。操作数直接出现在地址码位置,操作数由指令中直接给出。
执行速度:快到慢的排序:立即、直接、间接
操作数的存储位置隐含在指令的操作码中,例如在单地址(一地址)指令中为了完成两个数的算术运算,只指明地址码的一个操作数
相对寻址方式中,操作数的地址是程序计数器PC的值加上偏移量形成的,是一种特殊的变址寻址方式,偏移量用补码表示,可正可负。相对寻址方式可用较短的地址码访问内存。
对实现程序浮动提供了支持。
为了缩短指令中地址码的位数,应采用寄存器寻址
寄存器寻址方式中,指令的地址码部分给出寄存器号,而操作数在该寄存器中。
寄存器直接:操作数在寄存器中。用于对某个寄存器中操作数的寻址方式,寄存器中所存的是存放操作数的主存单元地址的地址
寄存器间接寻址方式:操作数地址存放寄存器寻址方式,操作数在主存单元中。
寻址方式根据操作数的物理位置不同,多使用RR型和RS型。寄存器-寄存器型RR执行速度最快,存储器-存储器SS型执行速度最慢。因为前者操作数在寄存器中,后者操作数在存储器中,而访问一次存储器所需要的时间一般比访问一次寄存器所花的时间长。
主要区别:
基址寻址用于程序定位,一般由硬件或者操作系统来完成,而变址寻址是面向用户的,用于对一组数据进行访问等。
变址寻址方式中,操作数的有效地址是 变址寄存器内容加上形式地址,先计算后再访问内存的寻址方式
基址寻址方式中,操作数的有效地址是 基址寄存器内容加上形式地址(位移量),支持动态地址再定位
变址寻址和基址寻址的有效地址形成方式类似,但是在程序执行过程中,基址寄存器的内容不可变,变址寄存器中的内容可变
把变址寄存器的内容与指令地址码部分给出的地址之和作为操作数地址称为变址寻址。
1.对指令中的 地址码 进行编码,以形成操作数在存储器中地址的方式称为 操作数的寻址方式 。
2.寻址方式在指令中的两种指明方式是__用操作码位指明__和__地址部分设寻址方式位指明_。
3.指令系统中采用不同寻址方式的目的主要是( B)
A.可降低指令译码难度
B.缩短指令字长,扩大寻址空间,提高编程灵活性
C.实现程序控制
4.形成指令寻址的方式,称为指令寻址方式,有顺序寻址和_跳跃_寻址两种,使用 程序计数器_来跟踪,跳跃寻址方式,可以实现 程序的条件转移或无条件转移。
5.指令的寻址方式有两种,顺序寻址和 C 。
A 指令寻址 B 跳转寻址 C 跳跃寻址 D转移寻址
6.指令的寻址方式有顺序和跳跃两种,采用跳跃寻址方式可以实现(C )。
A.程序浮动
B.程序的无条件转移和浮动
C.程序的条件转移和无条件转移
7.操作数直接出现在地址码位置的寻址方式成为 立即 寻址。
8.在指令的地址字段中,直接指出操作数本身的寻址方式,称为__B____。
A. 隐含寻址 B. 立即寻址 C. 寄存器寻址 D. 直接寻址
9.操作数由指令中直接给出的寻址方式为__立即寻址___
10.操作数直接出现在地址码位置的寻址方式称为 C 寻址。
A 直接 B 间接 C 立即 D 基址
11.直接、间接、立即三种寻址方式指令的执行速度,由快到慢的排序是( C)。
A.直接、立即、间接
B.直接、间接、立即
C.立即、直接、间接
12.直接寻址方式中,直接给出操作数的地址,需要 B 次访问内存就可获得操作数。
A 两 B 一 C 三 D 四
13.操作数地址直接出现在地址码位置的寻址方式称为 A 寻址。
A 直接 B 间接 C 立即 D 基址
14.有效地址等于形式地址的寻址方式是 B 。
A 立即寻址 B 直接寻址 C 间接寻址 D 基址寻址
15.直接寻址方式指令中,直接给出 操作数的地址 ,只需 访问内存 一次就可获得操作数。
16.操作数地址存放寄存器寻址方式叫 D 。
A相对寻址方式 B变址寄存器寻址方式 C寄存器寻址方式 D寄存器间接寻址方式
17.分别用变址寻址方式和间接寻址方式编写一个程序,求C=A+B,其中,A与B都是由n个元素组成的一维数组。比较两个程序,并回答下列问题:
(1)从程序的复杂程度看,哪一种寻址方式更好?
(2)从硬件实现的代价看,哪一种寻址方式比较容易实现?
(3)从对向量运算的支持看,哪一种寻址方式更好?
参考答案:(1)变址寻址方式 (2)间接寻址方式 (3)变址寻址方式
18.操作数地址存放寄存器寻址方式叫 D 。
A相对寻址方式 B变址寄存器寻址方式 C寄存器寻址方式 D寄存器间接寻址方式
19.寄存器间接寻址方式中,操作数在 主存单元 中。
20.变址寻址方式中,操作数的有效地址是( C )。
A.基址寄存器内容加上形式地址(位移量)
B.程序计数器内容加上形式地址
C.变址寄存器内容加上形式地址
21.基址寻址方式中,操作数的有效地址是( A)。
A.基址寄存器内容加上形式地址(位移量)
B.程序计数器内容加上形式地址
C.变址寄存器内容加上形式地址
22.变址寻址和基址寻址的有效地址形成方式类似,但是(C )。
A.变址寄存器的内容在程序执行过程中是不可变的
B.在程序执行过程中,变址寄存器、基址寄存器的内容都可变
C.在程序执行过程中,基址寄存器的内容不可变,变址寄存器中的内容可变
23.设变址寄存器为X,形式地址为D,(X)表示寄存器X的内容,这种寻址方式的有效地址为__A____。
A. EA=(X)+D B. EA=(X)+(D) C.EA=((X)+D) D. EA=((X)+(D))
24.设变址寄存器为X,形式地址为D,某机具有先变址再间址的寻址方式,则这种寻址方式的有效地址为(C )。
A.EA=(X)+D B.EA= (X)+(D) C.EA= ((X)+D)
25.先计算后再访问内存的寻址方式是 D 。
A立即寻址 B直接寻址 C间接寻址 D变址寻址
26.支持动态地址再定位的寻址方式是_A__。
A. 基址寻址 B. 间接寻址
C. 变址寻址 D. 直接寻址
27.在变址寄存器寻址方式中,若变址寄存器的内容是4E3C16,给出的偏移量是6316,则它对应的有效地址是 4E9F16 。
28. B 方式对实现程序浮动提供了支持。
A.变址寻址 B.相对寻址 C.间接寻址 D.寄存器间接寻址
29.操作数在寄存器中的寻址方式称为( A)寻址。
A.寄存器直接
B.寄存器间接
30.为了缩短指令中地址码的位数,应采用( B)寻址。
A.立即数
B.寄存器
31.寄存器寻址方式中,指令的地址码部分给出 寄存器号 ,而操作数在 该寄存器中 。
32.寄存器间接寻址方式指令中,给出的是 操作数地址 所在的寄存器号。
33.根据操作数所在的位置,是什么寻址方式?
①操作数在寄存器中,是什么寻址方式?
②操作数地址在寄存器中,是什么寻址方式?
③操作数在指令中,是什么寻址方式
④操作数地址在指令中,是什么寻址方式?
⑤操作数地址为某一寄存器中的内容与偏移量之和,是什么寻址方式?
答:
①操作数在寄存器中,是寄存器直接寻址方式;
②操作数地址在寄存器中,是寄存器间接寻址方式;
③操作数在指令中,是立即数寻址方式;
④操作数地址在指令中,是直接寻址方式;
⑤如此寄存器为变址寄存器,则是变址寻址方式;
如此寄存器为基址寄存器,则是基址寻址方式;
34.用于对某个寄存器中操作数的寻址方式称为___C___寻址。
A. 直接 B. 间接 C. 寄存器直接 D. 寄存器间接
35.寄存器间接寻址方式中,操作数处在___D___。
A.通用寄存器 B.程序计数器 C.堆栈 D.主存单元
36.在寄存器-寄存器型、寄存器-存储器型和存储器-存储器型三类指令中,哪类指令的执行时间最长?哪类指令的执行时间最短?为什么?
寄存器-寄存器型执行速度最快,存储器-存储器型执行速度最慢。因为前者操作数在寄存器中,后者操作数在存储器中,而访问一次存储器所需要的时间一般比访问一次寄存器所花的时间长。
37.以下四种类型指令中,执行时间最短的是 A 。
A RR型 B RS型 C SS型 D程序控制指令
38.寻址方式根据操作数的 物理 位置不同,多使用 RR 型和 RS 型,前者比后者执行速度快。
39.寄存器直接寻址方式中,寄存器中所存的是__D____。
A. 操作数 B. 存放操作数的主存单元的地址
C. 存放操作数的寄存器的编号 D. 存放操作数的主存单元地址的地址
40.如形式地址为D,则直接寻址方式中,操作数的有效地址为_D__;间接寻址方式中,操作数的有效地址为_(D)__;相对寻址方式中,指令的有效地址为_(PC)+D_。
41.单地址(一地址)指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用(C)
A 堆栈寻址方式 B 立即寻址方式 C 隐含寻址方式 D 间接寻址方式
42.操作数的存储位置隐含在指令的操作码中,这种寻址方式是 隐含 寻址。
44.只有操作码而没有地址码的指令称为 B 指令。
A 一地址指令 B 零地址 C 二地址指令 D 三地址指令
45.指令格式中,地址码字段是通过 寻址方式 来体现的,因为通过某种方式的变换,可以给出 操作数有效 地址。常用的指令格式有零地址指令、单地址指令、 二地址指令 三种。
46.在相对寻址方式中,若指令中地址码为X,则操作数的地址为 B 。
A X B(PC)+X C X+段基址 D变址寄存器+X
47.运算型指令的寻址和转移型指令的寻址不同点在于( A )。
A.前者取操作数,后者决定程序转移地址
B.前者是短指令,后者是长指令
C.后者是短指令,前者是长指令
48.一条指令中包含的信息有( C)。
A.操作码、控制码
B.操作码、向量地址
C.操作码、地址码
59. C 寻址经常用于输入输出指令中。
A 直接寻址 B 间接寻址 C块寻址 D 段寻址
52.指令格式如下,试分析指令格式与寻址方式特点。
解
①双字长二地址指令,用于访问存储器;
②操作码字段OP为6位,可以指定64种操作;
③源操作数为寄存器操作数(寄存器寻址,共16个),目的操作数为存储器操作数(变址寻址),是RS型指令。
55.推出系列机的新机器,不能更改的是_A__。
A. 原有指令的寻址方式和操作码 B. 系统总线的组成
C. 数据通路宽度 D. 存贮芯片的集成度
57.在满足寻址范围前提下,列举缩短指令字中地址码长度的方法(至少列出5种)。
使用各种寻址方式如下,加基址、加变址、相对寻址、访存地址空间分成段,指令中只给出段号或段内位移宇段之一、寄存器寻址、寄存器间接寻址。
58.堆栈是一种特殊的数据寻址方式,它采用 先进后出_原理。按结构不同,分为 寄存器_堆栈和 存储器_堆栈。
59.堆栈寻址方式中,设A为累加器,SP为堆栈指示器,MSP为SP指示的栈顶单元。如果进栈操作的动作顺序是(A)→MSP,(SP)-1→SP。那么出栈操作的动作顺序应为___B___。
A(MSP)→A,(SP)+1→SP B(SP)+1→SP,(MSP)→A
C(SP-1)→SP,(MSP)→A D(MSP)→A, (SP)-1→SP
60.变址寻址方式中,操作数的有效地址等于( C )
A .基址寄存器内容加上偏移量 B .堆栈指示器内容加上偏移量
C .变址寄存器内容加上偏移量 D .程序计数器内容加上偏移量
61.二地址指令中,操作数的物理地址错误的是 A 。
A.栈顶和次栈顶 B.两个主存单元
C.一个主存单元和一个通用寄存器 D.两个通用寄存器
62.虚拟存储器与一般的主存、辅存系统的本质区别之一是(A )。
A.虚拟存储器允许程序设计人员使用比主存容量大得多的地址空间,而且不必用编程方法来进行虚实地址的变换
B.虚拟存储器允许程序设计人员使用比主存容量大得多的地址空间,但是编程时必须用变址器寻址或基址寻址方式对虚实地址进行变换
C.实现虚拟存储器不需要进行虚实地址的变换
D.若使用虚拟存储器的话,编程人员必须对主辅存的存储空间进行分配
63.冯.诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是(C)
A.指令操作码的译码结果 B.指令和数据的寻址方式
C.指令周期的不同阶段 D.指令和数据所在的存储单元
64.推出系列机的新机器,不能更改的是(A)。
A)原有指令的寻址方式和操作码 B)系统的总线的组成
C)数据通路宽度 D)存储芯片的集成度