logo资料库

MIPS汇编程序设计实验.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
MIPS 汇编程序设计实验 一、实验目的 1. 掌握 QTSPIM 的调试技术 2. 了解 MIPS 汇编语言与机器语言之间的对应关系 3. 掌握 MIPS 汇编程序设计 4. 了解 C 语言语句与汇编指令之间的关系 5. 熟悉常见的 MIPS 汇编指令 6. 掌握程序的存储映像 二、实验要求 1.完成汇编语言程序设计、调试、测试全过程 2.指出用户程序的内存映像,包括代码段和数据段 3.完成软件实验报告 三、实验环境:QTSPIM 运行在 windows 操作系统下的支持 MIPS32 指令集的 MIPS 微处理器仿真器,具备调试、运 行 MIPS32 汇编指令程序的功能 四、实验任务: 用汇编程序实现以下源代码:要求采用移位指令来实现乘除法 int main() { int k,y; int z[50]; y=56; for(k=0:k<50;k++) z[k]=y-16*(k/4+210); } 五、实现 汇编源程序设计思路(算法): 1. 先判断 k 是否小于 50,如果大于 50,那么就直接跳到 exit。若小于 50,则开始 loop 循 环。 2. 因为在 z[k]中 k 不是立即数而是一个变量,因而用 mips 语言需要运用 add 语句进行地 址相加。 3. 在 loop 末尾需要让 k++,同时$s2 的地址首位需要加 4. 源代码: .data z:.space 200 .text main:la $s2,z li $s1,0#k=0=$s1
li $s0,56#y=56 li $t0,50 loop:beq $s1,$t0,exit srl $t1,$s1,2 addi $t1,$t1,210 sll $t1,$t1,4 sub $t1,$s0,$t1 sw $t1,0($s2) addi $s1,$s1,1 addi $s2,$s2,4 j loop exit: li $v0,10 syscall 调试过程: 当载入 txt 文件时,对话框出现如上内容,出现未识别的 character,找到该行,为“la $s2,z;”, 其中在 z 后多加了“;”号,导致出错,因而删除后,再次选择 载入,未出现错误提示框,点击运行,观察 data 框,数组 z[50]储存数据如下: , 与预期结果符合。
结果 程序运行后寄存器的值
程序存储映像代码段、数据段 六、心得体会 在星期三晚上进行了 MIPS 汇编程序设计实验,自行编写了一个简单的 for 循环 MIPS 程序,虽然不难,但是在编写和运行的过程中遇到了各种各样的小问题,比如说在 txt 文件 中编写代码时半角和全角符号的混淆导致出错;在载入 txt 文件以后没有点运行的按钮;在 编写代码的时候没有让$s2 进行自加 4,导致地址出错;对于数组在 z[50]在内存中的存贮的 映像的具体对应理解不清楚,即分布应该是由 z[0]开始,到 z[49]j 结束。 这次实验让我学习了如何使用 QTSPIM,同时使用其处理模拟当中出现的问题,让我认 识到课本知识和操作技能相结合的重要性。我的应变能力和问题临时处理水平得到了巩固和 提高。
分享到:
收藏