mips64的问题,求教,求教,help!!!!!!!!!

insensate_stone 2014-05-09 11:52:07
Exercise 1
以下是C代码
;
; for(int i=0;i<6;i++) {
; a[i] = b[i] + c[i];
; }


MISPS64
.data
a: .space 48
b: .word 10,11,12,13,0,1
c: .word 1,2,3,4,5,6
.text
;initialize registers
daddi r1,r0,a
daddi r2,r0,b
daddi r3,r0,c
daddi r4,r0,6
Loop: lw r5,0(r2) ; element of b
lw r6,0(r3) ; element of c
dadd r7,r5,r6 ; a[i] = b[i] + c[i];
sw r7,0(r1) ; store value in a[i]
daddi r1,r1,8 ; increment memory pointers
daddi r2,r2,8
daddi r3,r3,8
daddi r4,r4,-1 ; i++
bnez r4,Loop
end: halt


1、禁用旁路逻辑假设MIPS硬件无法检测到的危险。修改源代码通过在适当的敌法插入NOP而不重新排序的代码。检查模拟器,没有stall的发生,并检查是CPI是否改变,是否提高了性能。
2、重新安排指令(代码移动技术)为了避免stall而且不修改程序的语义(看看移动后的指令的结果都是一样的结果)。重新计算CPI的正常值和渐近值
3、尝试修改原代码添加6个额外的输入值在A和B,你对CPI有什么期望?
4、考虑EX1的原代码。展开循环两次不移动任何代码,即只是重复第一个四循环指令,进行一些必要的改变。计算没有旁路技术时的CPI。
5、对代码进行重新排列来解决以前的问题,计算在有旁路技术和没有旁路技术下的CPI和渐进CPI
6、假设在原来的代码中加操作是一个浮点运算和循环迭代12次。修改你的汇编代码,
The following is the input data of your code:
.data
a: .space 96
b: .word 10.1,11.1,12.1,13.1,0.1,1.1,1.1,0.1,13.1,12.1,11.1,10.1
c: .word 1.2,2.2,3.2,4.2,5.2,6.2,6.2,5.2,4.2,3.2,2.2,1.2
.text
...全文
83 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧