资源描述
教材:《计算机系统结构教程》,张晨曦等,清华大学出版社,2009
实验平台:指令级和流水线操作级模拟器WinMIPS64(从网络下载)
【补充习题2.14】
模拟以下MIPS程序的单条指令运行方式,在表中用16进制编码记录每一步产生的结果。
.data
n: .word 3
x: .double 0.5
.text
LD R1, n(R0)
L.D F0, x(R0)
DADDI R2, R0, 1 ; R2 ← 1
MTC1 R2, F11 ; F11 ← 1
CVT.D.L F2, F11 ; F2 ← 1
loop: MUL.D F2, F2, F0 ; F2 ← F2*F0
DADDI R1, R1, -1 ; decrement R1 by 1
BNEZ R1, loop ; if R1≠0 continue
HALT ; 此条不填表
提示:MIPS浮点数的格式是IEEE754
序号
结果寄存器名称
结果值(16进制)
序号
结果寄存器名称
结果值(16进制)
1
8
无
无
2
9
3
10
4
11
无
无
5
12
6
13
7
14
无
无
【实验1】
实验要求:用MIPS64指令编写一个尽可能短小的程序,将事先存放在数据区的4字节字符串(例如“3901”)转换为一个4位BCD整数,赋给R9。在WinMIPS64模拟器调试通过。
实验报告:
(1) 程序清单;
(2) 运行结果(每轮循环末尾R9的数值,高位的0可以不写)
循环轮数
1
2
3
4
R9的值(BCD整数)
(3) 程序效率
指令总条数(不算HALT)
运行总时间(节拍数)
展开阅读全文