版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、;微机原理实验报告实验名称:MIPS汇编程序设计院系:电信学院班级: 姓名: 指导老师:一、 实验目的:1.熟悉MIPS汇编程序开发环境,学习使用Qtstim工具。知道如何查看内存空间分配。2. 了解C语言语句与汇编指令之间的关系。3. 掌握MIPS汇编程序设计 , 掌握QTSPIM的调试技术。4. 了解MIPS汇编语言与机器语言之间的对应关系 。5. 熟悉常见的MIPS汇编指令 6. 掌握程序的内存映像。二、实验内容1.用汇编程序实现以下伪代码:要求使用移位指令实现乘除法运算。Int main ()Int K
2、,Y;Int Z50;Y=56;For(k=0;k<50;K+) Zk=Y-16*(k/4+210);三、程序设计及分析1.C语言分析:有两个变量是int型,一个数组型;还有一个循环执行过程。2.汇编程序实现分析:首先需要定义用户数据段,获得一个内存空间作为数组空间。再选定几个寄存器作为K,Y以及输出,其中输出输出和Y可以合用一个寄存器。3.设计思路:分配完空间地址后,最重要的是完成循环控制。循环控制有两个思路:可以是先判断后循环;或者是先循环后判断即如图开始开始赋值int K, Y ;int Z50 ;K=0;Y = 56;赋值int K, Y ;int Z50 ;K=0;Y = 56
3、;计算ZK = Y - 16 * ( K / 4 + 210) ;K<50计算ZK = Y - 16 * ( K / 4 + 210) ;K=k+1K<50 否K=k+1结束否是 是 slti $t2,$t0,50 #判断k是否小于50,beq $t2,$0,#是则结束 #否,循环结束slti $t2,$t0,50 #判断k是否于50beq $t2,$t3($t2=1循环,否则结束。)四、程序实现及调试分析1. 汇编程序代码实现:方法一.data #定义用户数据段 z:.space 200 #数组为int型,大小为50,所以占内存4*50str:.asciiz " &qu
4、ot;#输出结果之间的空隙.textmain:la $s0,z #$s0 #为数组在zli $t0,0 #$s1 #代表k计数,初始值为0li $t1,56 #$t2 #代表Y,初值为56 loop:slti $t2,$t0,50 #判断k是否于50beq $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) #写进zk li $v0,1 #输出addi $a0
5、,$s0,0syscallli $v0,4 #输出间隔la $a0,strsyscalladdi $s0,$s0,4 #地址移一位 addi $t0,$t0,1 #k加1 j loop #循环 done: li $v0,10 syscall2.调试过程1. 编写程序:详细见代码2. 装载程序选择file,选择Reinitialize and Load File,把写好的文件导入QtSpim。3. 如果没有错误,便运行。点击上图的小三角运行之后点击不同的窗口便可得到我们想要的结果。具体详细结果如下图内存占用情况映像分析:由图可知数组地址从0Xfffff3180Xfffff258;每行有四个是一样
6、的,总共50个地址。这是因为数组含有50个元素,而int型数据占4个字节空间,字对齐方式,所以连续四个地址是相同的而且有上表也可以得出Qpstim仿真器是按大字节序数据段内存映像表格如下(数值都采用16进制)内存地址(16进制)变量名值内存地址(16进制)变量名值fffff318Z0268500992fffff2b8Z25268501092fffff318Z1268500996fffff2b8Z26268501096fffff318Z2268501000fffff2b8Z27268501100fffff318Z3268501004fffff2a8Z28268501104fffff308Z426
7、8501008fffff2a8Z29268501108fffff308Z5268501012fffff2a8Z30268501112fffff308Z6268501016fffff2a8Z31268501116fffff308Z7268501020fffff298Z32268501120fffff2f8Z8268501024fffff298Z33268501124fffff2f8Z9268501028fffff298Z34268501128fffff2f8Z10268501032fffff298Z35268501132fffff2f8Z11268501036fffff288Z362685011
8、36fffff2e8Z12268501040fffff288Z37268501140fffff2e8ffff288Z38268501144fffff2e8ffff288Z39268501148fffff2e8ffff278Z40268501152fffff2d8Z16268501056fffff278Z41268501156fffff2d8ffff278Z42268501160fffff2d8ffff278Z43268501164fffff2d8Z192685010
9、68fffff268Z44268501168fffff2c8Z20268501072fffff268Z45268501172fffff2c8Z21268501076fffff268Z46268501176fffff2c8Z22268501080fffff268Z47268501180fffff2c8Z23268501084fffff258Z48268501184fffff2b8Z24268501088fffff258Z49268501188点击Window选择console得下图运行结果显示代码段内存映像地址 机器码 汇编指令00400014 0c100009 jal 0
10、x00400024 main 00400018 00000000 nop 0040001c 3402000a ori $2, $0, 10
11、; 00400020 0000000c syscall 00400024 3c101001 lui $16, 4097 z 00400028 34080000 ori $8, $0, 0
12、160; 0040002c 34090038 ori $9, $0, 56 00400030 290a0032 slti $10, $8, 50 00400034 11400010 beq $10, $0, 64 done-
13、0x0040003400400038 00085882 srl $11, $8, 2 0040003c 216b00d2 addi $11, $11, 210 00400040 000b5900 sll $11, $11, 4 00400044 012
14、b5822 sub $11, $9, $11 00400048 ae0b0000 sw $11, 0($16) 0040004c 34020001 ori $2, $0, 1 00400050 22040000 addi $4, $16, 0
15、; 00400054 0000000c syscall 00400058 34020004 ori $2, $0, 4 地址 机器码 汇编指令
16、0040005c 3c011001 lui $1, 4097 str 00400060 342400c8 ori $4, $1, 200 str 00400064 0000000c syscall
17、00400068 22100004 addi $16, $16, 4 0040006c 21080001 addi $8, $8, 1 00400070 0810000c j 0x00400030 loop 00400074 3402
18、000a ori $2, $0, 10 00400078 0000000c syscall 80000180 0001d821 addu $27, $0, $1
19、 80000184 3c019000 lui $1, -28672 80000188 ac220200 sw $2, 512($1) 8000018c 3c019000 lui $1, -28672
20、; 80000190 ac240204 sw $4, 516($1) 80000194 401a6800 mfc0 $26, $13 80000198 001a2082 srl $4, $26, 2
21、; 8000019c 3084001f andi $4, $4, 31 800001a0 34020004 ori $2, $0, 4 800001a4 3c049000 &
22、#160;lui $4, -28672 _m1_ 800001a8 0000000c syscall 800001ac 34020001 ori $2, $0, 1 800001b0 0
23、01a2082 srl $4, $26, 2 800001b4 3084001f andi $4, $4, 31 800001b8 0000000c syscall
24、 800001bc 34020004 ori $2, $0, 4 800001c0 3344003c andi $4, $26, 60 800001c4 3c019000 lui $1, -28672
25、160; 800001c8 00240821 addu $1, $1, $4 800001cc 8c240180 lw $4, 384($1) 800001d0 00000000 nop &
26、#160; 800001d4 0000000c syscall 800001d8 34010018 ori $1, $0, 24
27、 800001dc 143a0008 bne $1, $26, 32 ok_pc-0x800001dc 800001e0 00000000 nop 800001e4 40047000
28、60; mfc0 $4, $14 800001e8 30840003 andi $4, $4, 3 800001ec 10040004 beq $0, $4, 16 ok_pc-0x800001ec 800001f0 00000000 nop
29、; 800001f4 3402000a ori $2, $0, 10 800001f8 0000000c syscall
30、0; 800001fc 34020004 ori $2, $0, 4 80000200 3c019000 lui $1, -28672 _m2_ 地址 机器码 汇编指令80000204 3424000d ori $4
31、, $1, 13 _m2_ 80000208 0000000c syscall 8000020c 001a2082 srl $4, $26, 2 80000210 3084001f and
32、i $4, $4, 31 80000214 14040002 bne $0, $4, 8 ret-0x8000021480000218 00000000 nop 8000021c 401a
33、7000 mfc0 $26, $14 80000220 275a0004 addiu $26, $26, 4 80000224 409a7000 mtc0 $26, $14 800
34、00228 3c019000 lui $1, -28672 8000022c 8c220200 lw $2, 512($1) 80000230 3c019000 lui $1, -28672 80000234 8c240204 lw $4, 516($1) 80000238 001b0821 addu $1, $0, $27
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级下册数学口算综合练习题 (每页100题)
- 《买玩具》幼儿园大班数学教案
- 《人教版新课标语文六年级上册教案(表格式)》
- 五金安全承诺书
- 湘教版四年级下册语文教案-《一单元-三单元》
- 旅游景区消防改造施工合同
- 供应链管理项目招投标授权书
- 国有企业市场营销策略
- 建筑设备租赁劳务分包协议
- 森林生态效益评估手册
- 日间照料及居家养老服务中心运营实施方案
- 河南省部分地区2023年中考语文一模试卷汇编:文学类文本阅读
- 政府审计视角下国有企业股权投资风险防控研究
- 公墓宣传推广策划方案
- IPC-A-610F-表面贴装组件课件
- 家庭教育指导服务现状调查
- 《亚里士多德》课件
- 《女性生殖生》课件
- 项目管理与个人发展
- 公安部保安管理制度
- 特殊教育资源中心(特殊教育指导中心)工作职责
评论
0/150
提交评论