计算机组成原理实验报告:函数调用与寄存器使用

需积分: 0 0 下载量 143 浏览量 更新于2024-08-04 收藏 129KB DOCX 举报
计算机组成原理实验报告 **计算机结构与组成** 本实验报告的主要内容是计算机结构与组成实验,旨在让学生更好地理解函数调用、栈操作和寄存器使用等概念。 **实验目的** 本次实验的目的是让学生更好地理解函数调用过程,了解哪些数据需要入栈,以及逻辑操作的实现方法。同时,学生还需要熟悉MIPS汇编程序开发环境,学习使用MARs工具,了解如何查看内存空间分配。 **实验内容** 实验内容主要分为两部分:实验1和实验2。 **实验1** 实验1的目的是让学生编写一个swap函数,实现两个整数的交换。学生需要在给定的代码模板上添加swap代码,以便测试。swap函数的实现需要使用栈操作,变量temp需要保存在栈中,而不能使用寄存器$t0来保存temp变量。 **实验步骤** 实验步骤包括: 1. 编写swap函数,实现两个整数的交换。 2. 使用MIPS汇编语言编写swap代码。 3. 使用栈操作实现变量temp的保存。 **代码实现** swap函数的实现代码如下所示: ```assembly swap: move $fp, $sp # FRAME POINTER NOW POINTS TO THE TOP OF STACK addiu $sp, $sp, -16 # ALLOCATE 16 BYTES IN THE STACK lw $t0, 0($sp) # LOAD PX INTO $t0 lw $t1, 4($sp) # LOAD PY INTO $t1 lw $t2, 8($sp) # LOAD TEMP INTO $t2 sw $t0, 0($sp) # STORE PX INTO TEMP sw $t1, 4($sp) # STORE PY INTO PX sw $t2, 8($sp) # STORE TEMP INTO PY addiu $sp, $sp, 16 # DEALLOCATE 16 BYTES FROM THE STACK jr $31 ``` **实验2** 实验2的目的是让学生熟悉MIPS汇编程序开发环境,学习使用MARs工具,了解如何查看内存空间分配。学生需要使用移位指令实现乘除法运算,并编写相应的汇编代码。 **实验结果** 实验结果显示了学生编写的swap函数是否正确,是否能够正确地实现两个整数的交换。同时,学生还需要解释自己的代码,并说明变量temp的保存方法。 **内存占用情况映像** 实验结果还显示了内存占用情况的映像,包括数据段内存映像表格。该表格显示了内存地址和对应的值,以十六进制表示。 本次实验旨在让学生更好地理解函数调用、栈操作和寄存器使用等概念,并熟悉MIPS汇编程序开发环境和MARs工具的使用。