问答题X 纠错在MIPS指令集中需要增加一条swap指令,可以使用软件方式用若干条已有指令来实现伪指令,也可以通过改动硬件来实现。

参考答案:

Swap指令可用以下三条指令实现。
Xor $rs,$rs,$rt
Xor $rt,$rs,$rt
Xor $rs,$rs,$rt
(若使用额外寄存器$rtemp,则$rtemp内容会被破坏,所以伪指令一般不能用额外寄存器)
Add $rtemp,$rs,$zero
Add $rs,$rt,$zero
Add $rt,$rtemp,$zero
(若使用加减法,,可能溢出。如使用无符号数加减法addu,subu也可以)
Add $rs,$rs,$rt
Sub $rt,$rs,$rt
Add $rs,$rs,$rt

查答案就用赞题库小程序 还有拍照搜题 语音搜题 快来试试吧
无需下载 立即使用

你可能喜欢

问答题

假定下图单周期数据通路对应的控制逻辑发生错误,使得在任何情况下控制信号RegWr、RegDst、Branch、MemWr、ExtOp、R-type总是为0,则哪些指令不能正确执行?为什么?如果为1,又哪些指令不能正确执行?为什么?

参考答案:

问答题

假定某计算机字长16位,CPU内部结构如图所示,CPU和存储器之间采用同步方式通信,按字编址。采用定长指令字格式,指令由两个字组成,第一个字指明操作码和寻址方式,第二个字包含立即数Imm16。若一次存储访问所花时间为2个CPU时钟周期,每次存储访问存取一个字,取指令阶段第二次访存将Imm16取到MDR中,请写出下列指令在指令执行阶段的控制信号序列,并说明需要几个时钟周期。

将存储单元Imm16的内容作为地址所指的存储单元的内容加到寄存器R1中。此时,Imm16为间接地址。即:R[R1]←R[R1]+M[M[Imm16]]

参考答案:MDRout,MARinRead1Read2MDRout,MARinRead1,(R1out,Yin)Read2,R1o...

问答题

假定某计算机字长16位,CPU内部结构如图所示,CPU和存储器之间采用同步方式通信,按字编址。采用定长指令字格式,指令由两个字组成,第一个字指明操作码和寻址方式,第二个字包含立即数Imm16。若一次存储访问所花时间为2个CPU时钟周期,每次存储访问存取一个字,取指令阶段第二次访存将Imm16取到MDR中,请写出下列指令在指令执行阶段的控制信号序列,并说明需要几个时钟周期。

将地址为Imm16的存储单元的内容加到寄存器R1中,此时,Imm16为直接地址。即:R[R1]←R[R1]+M[Imm16]

参考答案:MDRout,MARinRead1,(R1out,Yin也可以放在该控制信号所在的时钟周期中)Read2,R1out,Y...

问答题

假定某计算机字长16位,CPU内部结构如图所示,CPU和存储器之间采用同步方式通信,按字编址。采用定长指令字格式,指令由两个字组成,第一个字指明操作码和寻址方式,第二个字包含立即数Imm16。若一次存储访问所花时间为2个CPU时钟周期,每次存储访问存取一个字,取指令阶段第二次访存将Imm16取到MDR中,请写出下列指令在指令执行阶段的控制信号序列,并说明需要几个时钟周期。

将立即数Imm16加到寄存器R1中,此时,Imm16为立即操作数。即:R[R1]←R[R1]+Imm16

参考答案:

MDRout,Yin
R1out,add,Zin
Zout,R1in
需3个时钟周期

问答题

下图给出了某CPU内部结构的一部分,MAR和MDR直接连到存储器总线(图中省略)。在两个总线之间的所有数据传送都需经过算术逻辑部件ALU。ALU可实现的部分功能及其控制信号如下:
MOVa:F=A;MOVb:F=B;
a+1:F=A+1;b+1:F=B+1
a-1:F=A-1;b-1:F=B-1
其中A和B是ALU的输入,F是ALU的输出。假定JSR(转子指令)指令占两个字,第一个字是操作码,第二个字给出子程序的起始地址,返回地址保存在主存的栈中,用SP(栈指示器)指向栈顶,按字编址,每次从主存读取一个字。请写出读取并执行JSR指令所要求的控制信号序列(提示:当前指令地址在PC中)。

参考答案:假定采用同步方式(若为异步,则只需在read和Write后加一个等待信号WMFC)(注:若按最长的存储访问时间作为CPU...

问答题

在下图中,假定总线传输延迟和ALU运算时间分别是20ps和200ps,寄存器建立时间为10ps,寄存器保持时间为5ps,寄存器的锁存延迟(Clk-to-Qtime)为4ps,控制信号的生成延迟(Clk-to-signaltime)为7ps,三态门接通时间为3ps,则从当前时钟到达开始算起,完成以下操作的最短时间是多少?各需要几个时钟周期?

将程序计数器PC加1

参考答案:分两个阶段:PC+1→Z:7+3+20+200+10=240ps;ZPC:7+3+20+10==40ps寄存器...

问答题

在下图中,假定总线传输延迟和ALU运算时间分别是20ps和200ps,寄存器建立时间为10ps,寄存器保持时间为5ps,寄存器的锁存延迟(Clk-to-Qtime)为4ps,控制信号的生成延迟(Clk-to-signaltime)为7ps,三态门接通时间为3ps,则从当前时钟到达开始算起,完成以下操作的最短时间是多少?各需要几个时钟周期?

将数据从一个寄存器传送到另一个寄存器

参考答案:寄存器的锁存延迟与控制信号的生成延迟的时间重叠,且Clk-to-signaltime>Clk-to-Qtime,所以完成...

问答题

以下是一个计算阶乘的C语言递归过程,请按照MIPS过程调用协议写出该递归过程对应的MIPS汇编语言程序,要求目标代码尽量短(提示:乘法运算可用乘法指令“mul rd,rs,rt”来实现,功能为“rd←(rs)×(rt)”)。

参考答案:


问答题

以下C语言程序段中有两个函数sum_array和compare,假定sum_array函数第一个被调用,全局变量sum分配在寄存器$s0中。要求写出每个函数对应的MIPS汇编表示。

参考答案:程序由两个过程组成,全局静态变量sum分配给$s0。为了尽量减少指令条数,并减少访问内存次数。在每个过程的过程体中总是先...

问答题

说明beq指令的含义,并解释为什么汇编程序在对下列汇编源程序中的beq指令进行汇编时会遇到问题,应该如何修改该程序段?

参考答案:Beq是一个I-型指令,可以跳转到当前指令前,也可以跳转到当前指令后。其转移目的地址的计算公式为:PC+4+offset...
赞题库

赞题库-搜题找答案

(已有500万+用户使用)


  • 历年真题

  • 章节练习

  • 每日一练

  • 高频考题

  • 错题收藏

  • 在线模考

  • 提分密卷

  • 模拟试题

无需下载 立即使用

版权所有©考试资料网(ppkao.com)All Rights Reserved