微机原理实验报告.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
微机原理实验报告 实验名称:MIPS汇编程序设计 院系:电信学院 班级: 姓名: 指导老师: 一、实验目的: 熟习MIPS汇编程序开发环境,学习使用Qtstim工具。知道怎样查察内存空间分派。 认识C语语言句与汇编指令之间的关系。 掌握MIPS汇编程序设计,掌握QTSPIM的调试技术。 4.认识MIPS汇编语言与机器语言之间的对应关系。 熟习常有的MIPS汇编指令6.掌握程序的内存映像。 二、实验内容 用汇编程序实现以下伪代码:要求使用移位指令实现乘除法运算。 Intmain( ) { IntK,Y; IntZ[50]; Y=56; For(k=0;k<50;K++)Z[k]=Y-16*(k/4+210); } 三、程序设计及剖析 语言剖析: 有两个变量是int型,一个数组型;还有一个循环履行过程。 汇编程序实现剖析: 第一需要定义用户数据段,获取一个内存空间作为数组空间。 再选定几个存放器作为K,Y以及输出,此中输出输出和Y能够合 用一个存放器。 设计思路: 分派完空间地点后,最重要的是达成循环控制。循环控制有 两个思路:能够是先判断后循环;或许是先循环后判断 即如图 开始 开始 赋值 赋值 计算 K<50 K=k+1 计算否 K<50 否是 K=k+1 是结束 结束 slti$t2,$t0,50#判断k能否于50slti$t2,$t0,50#判断k能否小 于50, beq$t2,$t3($t2=1循环,不然结束。) beq$t2,$0,#是则结束 四、程序实现及调试剖析 1.汇编程序代码实现: 方法一 .data#定义用户数据段 z:.space200# 数组为int型,大小为50,因此占内存4*50 str:.asciiz" "# 输出结果之间的缝隙 .text main: la$s0,z#$s0 # 为数组在z[] li$t0,0#$s1 # 代表k计数,初始值为0 li$t1,56#$t2 # 代表Y,初值为56 loop: slti$t2,$t0,50#判断k能否于50 beq$t2,$0,done#当k大于等于50,跳转结束 srl$t3,$t0,2#k/4 addi$t3,$t3,210#k/4+210 sll$t3,$t3,4#16*(k/4+210) sub$t3,$t1,$t3#y-16*(k/4+210) sw$t3,0($s0)#写进z[k] li$v0,1#输出 addi$a0,$s0,0 syscall li$v0,4#输出间隔 la$a0,str syscall addi$s0,$s0,4#  地点移一位 addi$t0,$t0,1#k  加  1 jloop#循环 done: li$v0,10 syscall 调试过程 1.编写程序:详尽见代码 2.装载程序 选择file,选择ReinitializeandLoadFile,把写好的文件导入 QtSpim。 3.假如没有错误,便运转。点击上图的小三角 运转以后点击不一样的窗口即可获取我们想要的结果。详细详尽结果如 下列图 内存占用状况映像 剖析:由图可知数组地点从0Xfffff318—0Xfffff258;每行有四个是 同样的,总合50个地点。这是因为数组含有50个元素,而int型数 据占4个字节空间,字对齐方式,因此连续四个地点是同样的 并且有上表也能够得出Qpstim仿真器是按大字节序 数据段内存映像 表格以下(数值都采纳16进制) 内存地点 变量 值 内存地点 变量 值 (16进 名 (16进制) 名 制) fffff318 Z[0] 2 fffff2b8 Z[25] 2 fffff318 Z[1] 6 fffff2b8 Z[26] 6 fffff318 Z[2] 0 fffff2b8 Z[27] 0 fffff318 Z[3] 4 fffff2a8 Z[28] 4 fffff308 Z[4] 8 fffff2a8 Z[29] 8 fffff308 Z[5] 2 fffff2a8 Z[30] 2 fffff308 Z[6] 6 fffff2a8 Z[31] 6 fffff308 Z[7] 0 fffff298 Z[32] 0 fffff2f8 Z[8] 4 fffff298 Z[33] 4 fffff2f8 Z[9] 8 fffff298 Z[34] 8 fffff2f8 Z[10] 2 fffff298 Z[35] 2 fffff2f8 Z[11] 6 fffff288 Z[36] 6 fffff2e8 Z[12] 0 fffff288 Z[37] 0 fffff2e8 Z[13] 4 fffff288 Z[38] 4 fffff2e8 Z[14] 8 fffff288 Z[39] 8 fffff2e8 Z[15] 2 ffff

文档评论(0)

198****3683 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

认证主体朱**

1亿VIP精品文档

相关文档

相关课程推荐