加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【课后习题答案】指令系统

(2011-12-15 15:03:24)
标签:

杂谈

分类: 第7章指令系统

第7章 指令系统

1. 什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及与硬件结构之间存在着密切的关系?

答:参考P300。

 

2. 什么叫寻址方式?为什么要学习寻址方式?

答:参看P310。

 

3. 什么是指令字长、机器字长和存储字长?

答:略。

 

4. 零地址指令的操作数来自哪里??各举一例说明。

答:零地址指令的操作数来自ACC,为隐含约定。

在一地址指令中,另一个操作数的地址通常可采用ACC隐含寻址方式获得。

 

5. 对于二地址指令而言,操作数的物理地址可安排在什么地方?举例说明。

答:对于二地址指令而言,操作数的物理地址可安排在寄存器内、指令中或内存单元内等。

 

8. 某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M条,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种?

解:1)若采用定长操作码时,二地址指令格式如下:

OP(4位)

A1(6位)

A2(6位)

设二地址指令有K种,则:K=24-M-N

当M=1(最小值),N=1(最小值)时,二地址指令最多有:Kmax=16-1-1=14种

2)若采用变长操作码时,二地址指令格式仍如1)所示,但操作码长度可随地址码的个数而变。此时,K= 24 -(N/26 + M/212 );

当(N/26 + M/212 )£1时(N/26 + M/212 向上取整),K最大,则二地址指令最多有:

Kmax=16-1=15种(只留一种编码作扩展标志用。)

 

9. 试比较间接寻址和寄存器间接寻址。

答:略。

 

10. 试比较基址寻址和变址寻址。

略。

 

11. 画出先变址再间址及先间址再变址的寻址过程示意图。

解:1)先变址再间址寻址过程简单示意如下:

      EA=[(IX)+A],IX®(IX)+1

2)先间址再变址寻址过程简单示意如下:EA=(IX)+(A),IX® (IX)+1

 

16. 某机主存容量为4M´16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:(1)画出一地址指令格式并指出各字段的作用;

(2)该指令直接寻址的最大范围;

(3)一次间址和多次间址的寻址范围;

(4)立即数的范围(十进制表示);

(5)相对寻址的位移量(十进制表示);

(6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?

(7)如何修改指令格式,使指令的寻址范围可扩大到4M?

(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。

解:(1)单字长一地址指令格式:

OP(7位)

M(3位)

A(6位)

OP为操作码字段,共7位,可反映108种操作;

M为寻址方式字段,共3位,可反映6种寻址操作;

A为地址码字段,共16-7-3=6位。

(2)直接寻址的最大范围为26=64。

(3)由于存储字长为16位,故一次间址的寻址范围为216;若多次间址,需用存储字的最高位来区别是否继续间接寻址,故寻址范围为215

(4)立即数的范围为-32——31(有符号数),或0——63(无符号数)。

(5)相对寻址的位移量为-32——31。

(6)上述六种寻址方式中,因立即数由指令直接给出,故立即寻址的指令执行时间最短。间接寻址在指令的执行阶段要多次访存(一次间接寻址要两次访存,多次间接寻址要多次访存),故执行时间最长。变址寻址由于变址寄存器的内容由用户给定,而且在程序的执行过程中允许用户修改,而其形式地址始终不变,故变址寻址的指令便于用户编制处理数组问题的程序。相对寻址操作数的有效地址只与当前指令地址相差一定的位移量,与直接寻址相比,更有利于程序浮动。

(7)方案一:为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,如下图示:

OP(7位)

MOD(3位)

A(高6位)

A(低16位)

方案二:如果仍采用单字长指令(16位)格式,为使指令寻址范围扩大到4M,可通过段寻址方案实现。安排如下:

硬件设段寄存器DS(16位),用来存放段地址。在完成指令寻址方式所规定的寻址操作后,得有效地址EA(6位),再由硬件自动完成段寻址,最后得22位物理地址。 即:物理地址=(DS)´26 + EA

注:段寻址方式由硬件隐含实现。在编程指定的寻址过程完成、EA产生之后由硬件自动完成,对用户是透明的。

方案三:在采用单字长指令(16位)格式时,还可通过页面寻址方案使指令寻址范围扩大到4M。安排如下:

硬件设页面寄存器PR(16位),用来存放页面地址。指令寻址方式中增设页面寻址。当需要使指令寻址范围扩大到4M时,编程选择页面寻址方式,则:EA =(PR)‖A (有效地址=页面地址“拼接”6位形式地址),这样得到22位有效地址。

(8)为使一条转移指令能转移到主存的任一位置,寻址范围须达到4M,除了采用(7) 方案一中的双字长一地址指令的格式外,还可配置22位的基址寄存器或22位的变址寄存器,使EA = (BR) + A (BR为22位的基址寄存器)或EA =(IX)+ A(IX为22位的变址寄存器),便可访问4M存储空间。还可以通过16位的基址寄存器左移6位再和形式地址A相加,也可达到同样的效果。

总之,不论采取何种方式,最终得到的实际地址应是22位。

 

19. 某CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长,试回答以下问题:

(1)如果主存可直接或间接寻址,采用寄存器—存储器型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。

(2)在满足(1)的前提下,如果采用通用寄存器作基址寄存器,则上述寄存器—存储器型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间?

解:(1)如采用RS型指令,则此指令一定是二地址以上的地址格式,指令格式如下:

OP(6位)

R(5位)

I(1位)

A(20位)

操作码字段OP占6位,因为26>=64;

寄存器编号R占5位,因为25>=32;

间址位I占1位,当I=0,存储器寻址的操作数为直接寻址,当I=1时为间接寻址;

形式地址A占20位,可以直接寻址220字。

(2)如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用寄存器用作基址寄存器。指令格式变为:

OP(6位)

源R(5位)

I(1位)

X(1位)

目标R(5位)

A(14位)

增加寻址特征位X,当X=1时,以目标寄存器R作为基址寄存器进行基址寻址。

基址寻址可访问存储空间为:232字。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有