2021编译器课程设计:MIPS竞速排名与MARS仿真器指南
需积分: 0 57 浏览量
更新于2024-08-05
收藏 561KB PDF 举报
"该资源是2021年编译器课程设计的竞速排名规则以及MARS仿真器的使用指南。重点在于如何利用MARS进行指令统计,以计算MIPS代码的权重,从而确定排名。同时,规定了在编写MIPS代码时的限制和寄存器的使用规范。"
在MARS仿真器的使用中,首先从菜单栏选择"Tools",然后打开"Instruction Statistics"工具来监控和统计代码中的指令执行情况。在弹出的窗口中,需要点击"Connect to MIPS"按钮连接到MIPS处理器,以便在执行代码时收集指令统计数据。
竞速排名的规则主要包括:
1. MIPS代码必须能在课程组提供的修改版MARS4.5上正常运行。
2. 允许使用基础指令、扩展指令和伪指令,但禁止使用宏。
3. MARS的延迟槽需关闭,内存布局应设为默认设置。
4. 寄存器的使用有特定要求,例如:
- $0 ($zero) 用于表示常量0。
- $1 ($at) 供汇编器内部使用。
- $2-$3 ($v0-$v1) 用于函数调用返回值。
- $4-$7 ($a0-$a3) 传递函数参数。
- $8-$15 ($t0-$t7) 作为临时寄存器。
- $16-$23 ($s0-$s7) 用作全局寄存器。
- $24-$25 ($t8-$t9) 也是临时寄存器。
- $26-$27 ($k0-$k1) 保留给中断和异常处理。
- $28 ($gp) 用于全局变量访问。
- $29 ($sp) 作为堆栈指针。
- $30 ($fp 或 $s8) 作为帧指针或全局寄存器。
- $31 ($ra) 存储返回地址。
排名的依据是基于指令的执行次数及其权重:
- Jump/Branch 指令(如 jal, bne)权重为1.5。
- Mem 指令(如 lw, sh)权重为2.5。
- Mult 指令(如 mul, madd)权重为3。
- Div 指令(如 div, divu)权重为100。
- 其他所有未特别指定的指令(如 addu, ori, mflo)权重为1。
如果参赛者违反上述规则,将会被取消竞速排名资格。为了获取指令统计,需要在MARS中运行代码并观察Instruction Statistics窗口中的结果。
2022-08-08 上传
点击了解资源详情
2022-08-03 上传
2021-02-12 上传
2024-09-07 上传
2024-04-19 上传
2021-09-09 上传
南小鹏
- 粉丝: 38
- 资源: 289
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率