课后习题(第七章)
1、为了缩短指令中地址码的位数,应采用( B )寻址。
A、立即数
B、寄存器
C、直接
D、间接
2、指令系统中采用不同寻址方式的目的主要是( B )
A. 可降低指令译码难度
B. 缩短指令字长、扩大寻址空间、提高编程灵活性
C. 实现程序控制
D. 提高指令执行速度
3、零地址运算指令在指令格式中不给出操作数地址,它的操作数来源自( C )
A. 立即数和栈顶
B. 暂存器
C. 栈顶或隐含约定的位置
D. 存储器
4、单地址指令中,为完成两个数的算术运算,除地址译码指明的一个操作数外,另一个数常采用( C )
A. 堆栈寻址方式
B. 立即寻址方式
C. 隐含寻址方式
D. 基址寻址方式
5、二地址指令中,操作数的物理位置安排,描述正确的是( C )
A. 两个主存单元(且依然在现指令系统中采用)
B. 栈顶和次栈顶
C. 主存单元或寄存器
D. 两个同时为寄存器不允许使用
6、操作数在寄存器中的寻址方式称为( C )寻址
A. 直接
B. 立即
C. 寄存器直接
D. 寄存器间接
7、寄存器间接寻址方式中,操作数在( C )
A. 通用寄存器
B. 堆栈
C. 主存单元
D. I/O外设中
8、变址寻址方式中,操作数的有效地址是( C )
A. 基址寄存器内容加上形式地址
B. 程序计数器内容加上形式地址
C. 变址寄存器内容加上形式地址
D. 形式地址本身
9、采用基址寻址可扩大寻址范围,且( B )
A. 基址寄存器内容由用户确定,在程序执行过程中一般不可变
B. 基址寄存器内容由操作系统确定,在程序执行过程中一般不可变
C. 基址寄存器内容由用户确定,在程序执行过程中可随意变化
D. 基址寄存器内容由操作系统确定,在程序执行过程可随意变化
10、变址寻址和基址寻址的有效地址形成方式类似,但是( C )
A. 变址寄存器内容在程序执行过程中是不可变的
B. 在程序执行过程中,变址寄存器和基址寄存器的内容可以随意变化
C. 在程序执行过程中,变址寄存器的内容可随意变化
D. 以上均不对
11、堆栈寻址中,设A为累加器,SP为栈顶指针,[SP]为其指向的栈顶单元,如果进栈的动作顺序是(SP)-1→SP,(A)→[SP],那么出栈的动作顺序是( A )
A. [SP] →(A),(SP)+1→SP
B. (SP)+1→SP,[SP] →(A)
C. (SP)-1→SP,[SP] →(A)
D. [SP] →(A),(SP)-1→SP
12、设变址寄存器为X,形式地址为D,某机具有先变址再主存间址的寻址方式,则这种寻
址方式的有效地址为( C )
A. EA=(X)+D
B. EA=(X)+(D)
C. EA=((X)+D)
D. EA=((X))+D
13、设变址寄存器为X,形式地址为D,某机具有先主存间址再变址的寻址方式,则这种寻址方式的有效地址为( B )
A. EA=(X)+D
B. EA=(X)+(D)
C. EA=((X)+D)
D. EA=((X))+D
14、运算型指令的寻址和转移类指令的寻址不同点在于( A )
A. 前者取操作数,后者决定程序转移地址
B. 前者计算转移地址,后者取操作数
C. 前者是短指令,后者是长指令
D. 前者是长指令,后者是短指令
15、指令的寻址方式有顺序和跳跃两种,采用跳跃寻址方式可以实现( C )
A. 程序的条件转移
B. 程序的无条件转移
C. 程序的条件转移和无条件转移
D. 以上均不对
16、设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量(补码表示),若CPU每当从存储器取出一个字节时,即自动完成(PC)+1 PC。
设当前PC的内容为2000H,要求转移到2008H地址,则该转移指令第二个字节的内容应为( B )
A. 08H
B. 06H
C. 0AH
D. 0CH
17、设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量(补码表示),则转移的地址空间大小为( A )
A. 256
B. 255
C. 254
D. 无法确定
18、下列几种寻址方式中,执行速度最快的是( B )
A. 直接寻址
B. 立即寻址
C. 主存间接寻址
D. 基址寻址
以下为书上相关例题
19、某机器字长16位,主存按字节编址,转移指令采用相对寻址,由2字节组成,第一个字节为操作码字段,第二字节为相对位移量字段。
假设取指令时,每取1字节PC自动加1。
若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目的地址是( C )
A. 2006H
B. 2007H
C. 2008H
D. 2009H
20、偏移寻址通过将某个寄存器内容与一个形式地址相加而生成有效地址。
下列寻址方式中,不属于偏移寻址的是( A )
A. 间接寻址
B. 基址寻址
C. 相对寻址
D. 变址寻址
21、下列关于RISC的叙述中,错误的是( A )
A. RISC普遍采用微程序控制器
B. RISC大多数指令在一个时钟周期内完成
C. RISC的内部通用寄存器数量相对CISC多
D. RISC的指令数、寻址方式和指令格式种类相对CISC少
问答题
23、某机主存容量为4M×16位,且存储字长等于指令字长,若该机指令系统可完成78种
操作,操作码位数固定,且具有直接﹑间接﹑变址﹑基址﹑相对﹑立即等六种寻址方式,
(1)试画出一地址指令格式;
(2)该指令直接寻址和一次间接寻址的寻址范围为多大;
(3)相对寻址的位移量为多大;
(4)立即数的范围(十进制数表示);
(5)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?哪一种便于程序浮动?哪一种最适合处理数组问题?
(6)如何修改指令格式,使指令的直接寻址范围可扩大到4M ?
(7)为使一条转移指令能转移到主存的任意位置,可采取什么措施?请简要说明。
24、设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示。
每当CPU 从存储器取出一个字节时,即自动完成(PC )+1->PC 。
(1)设当前PC 值为3000H ,试问转移后的目标地址范围是什么?
(2)若当前PC 值为2000H ,要求转移到201BH ,则转移指令第二字节的内容是什么?
(3)若当前PC 值为2000H ,指令JMP*-9(*为相对寻址特征)的第二字节的内容是什么?
25、某模型机共有64种操作,操作码位数固定,且具有以下特点:
(1)采用一地址或二地址格式;
(2)有寄存器寻址、直接寻址和相对寻址(位移量为-128-+127)三种寻址方式;
(3)有16个通用寄存器,算术运算和逻辑运算的操作数均在寄存器中,结果也在寄存器中;
(4)取数/存数指令在通用寄存器和存储器之间传送数据;
(5)存储器容量为1MB ,按字节编址。
要求设计算术逻辑指令、取数/存数指令和相对转移指令的格式,并简述理由。
26、某计算机字长为16位,主存地址空间大小为128KB ,按字编址,采用单字长指令格式,指令各字段定义如下:
转移指令采用相对寻址,相对偏移量用补码表示,寻址方式定义如下:
注:(X )表示有存储器地址X 或寄存器X 的内容。
请回答下列问题:
(1)该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器MAR 和存储器数据寄存器MDR 至少各需要多少位?
(2)转移指令的目标地址范围是多少?
(3)若操作码0010B 表示加法操作(助记符为ADD ),寄存器R4和R5的编号分别为100B 和101B ,R4的内容为1234H ,R5的内容为5678H ,地址1234H 中的内容为5678H ,地址5678H 中的内容为1234H ,则汇编语句“ADD (R4),(R5)+”(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存OP Ms Md Rs Rd 15 12 11 6 5 0 源操作数 目的操作数
器和存储单元的内容会改变?改变后的内容是什么?
教科书P92,例3-4
答:(1)操作码4位,最多含16条指令;寄存器编号3位,通用寄存器8个;主存地址空间大小为128KB,按字(16位)编址,则寻址空间64K,即MAR为16位;字长16位,则MDR为16位。
(2)用通用寄存器放偏移地址,通用寄存器为机器字长16位,所以偏移范围:仅正偏,为0~65535,如可正可负,为-32768~32767
(3)ADD (R4),(R5)+ 汇编为
0010 001 100 010101
[R4]=5678H,[R5]=1234H,计算5678H+1234H=68ACH,送地址5678H内即:地址1234H内容未变(源),地址5678H内容变为68ACH,寄存器R5内容加“1”,变为5679H,其余寄存器未变。