- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作业:习题2(4)、2(9)、3、6、7、8、10、11、13、15、17
2.(4)哪些寻址方式下的操作数在寄存器中?哪些寻址方式下的操作数在存储器中?
【分析解答】
寄存器直接寻址的操作数在寄存器中。
寄存器间接、直接、间接、基址、变址、相对这几种寻址方式的操作数都在存储器中。
批改情况:正确
2.(9)转移跳转和调用指令的区别是什么?返回指令是否需要有地址码字段?
【分析解答】
转移(跳转)指令执行后,CPU将跳转到目标指令地址中执行,而调用指令执行后,其返回地址(即调用指令的下条指令的地址)会保存到栈中或特定的寄存器中,然后跳转到被调用过程第一条指令(目标指令)处执行,因此,被调用过程执行结束时会执行一条返回指令,返回指令将取出返回地址并置入PC,从而使CPU返回到调用指令处执行。如果返回地址存放在栈中或特定的寄存器中,则返回指令中可以不需要地址码;如果返回地址存放在某个通用寄存器中,则返回指令中需要给出通用寄存器编号(地址码)。
批改情况:两种指令区别正确,对于返回指令是否需要地址码字段大部分同学没有考虑返回地址分别在特定寄存器、通用寄存器是不同的情况
假定某计算机中有一条转移指令,采用相对寻址方式,共占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示),CPU每次从内存只能取一个字节。假设执行到某转移指令时PC的内容为258,执行该转移指令后要求转移到220开始的一段程序执行,则该转移指令第二字节的内容应该是多少?
【分析解答】
因为该计算机的CPU每次从内存只能取一个字节,因而它采用字节编址方式。执行到该转移指令时PC的内容为258,因此取出第一字节的操作码后,PC的内容为259,取出第二字节的位移量后,PC的内容为260。在执行该转移指令计算转移目标地址时,PC应该已经是260了。假定位移量为x,则根据转移目标地址(220)= PC(260)+相对位移量(x),可知x=220-260=-40,用补码表示为1101 1000B=D8H。
(注:如果PC增量在最后做,即执行转移指令的目标地址计算时,PC为259,使得结果为-39,也算正确。)
批改情况:错误较多,①没有考虑PC内容在取操作码和位移量后会改变,部分同学得到-38;②补码表示错误
某计算机指令系统采用定长指令字格式,指令字长16位,每个操作数的地址码长6位。指令分二地址、单地址和零地址三类。若二地址指令有k2条,无地址指令有k0条,则单地址指令最多有多少条?
【分析解答】
假设单地址指令有k1条,则 ((16 – k2) ×26 – k1) ×26 = k0,所以 k1= (16 – k2) ×26 – k0/26
批改情况:基本正确
某计算机字长16位,存储器存取宽度为16位,即每次从存储器取出16位。CPU 中有8个16位通用寄存器。现为该机设计指令系统,要求指令长度为字长的整数倍,至多支持64种不同操作,每个操作数都支持4种寻址方式:立即(I)、寄存器直接(R)、寄存器间接(S)和变址(X)寻址方式。存储器地址位数和立即数均为16位,任何一个通用寄存器都可作变址寄存器,支持以下7种二地址指令格式(R、I、S、X代表上述4种寻址方式):RR型、RI型、RS型、RX型、XI型、SI型、SS型。请设计该指令系统的7种指令格式,给出每种格式的指令长度、各字段所占位数和含义,并说明每种格式指令的功能以及需要的访存次数?
【分析解答】
因为至多有64种操作,所以操作码字段只需要6位;有8个通用寄存器,所以寄存器编号至少占3位;寻址方式有4种,所以寻址方式位至少占2位;直接地址和立即数都是16位;任何通用寄存器都可作变址寄存器,所以指令中要明显指定变址寄存器,其编号占3位;指令总位数是16的倍数。此外,指令格式应尽量规整,指令长度应尽量短。按照上述这些要求设计出的指令格式可以有很多种。
以下是采用二地址指令格式的两种指令格式设计方案,RI、XI和SI三种指令格式中添了3个0,是为了补足位数,以使指令长度为16的倍数。这两种方案得到的RR、RS和SS型指令都是16位,RI、RX和SI型指令都是32位,XI型指令是48位。
指令格式示例1: 如图1所示,用专门的“类型”字段(最左3位)说明不同指令类型,这样无需对两个操作数的寻址方式分别进行说明。7种指令类型只要3位编码即可,之后的一位总是0,这一位在需要扩充指令操作类型时可作为OP中新的编码位。
000
000 0
OP (6位)
Rt (3位)
Rs (3位)
RR型
001 0
OP (6位)
Rt (3位)
Imm16 (16位)
RI型
010 0
OP (6位)
Rt (3位)
Rs (3位)
RS型
011 0
OP (6位)
Rt (3位)
Offset16 (16位)
RX型
R
文档评论(0)