计算机组成原理实验报告:函数调用与寄存器使用
需积分: 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工具的使用。
2022-08-08 上传
2022-08-08 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-05-17 上传
2023-04-04 上传
2024-08-09 上传
设计师马丁
- 粉丝: 20
- 资源: 299
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景