Buaa计组pre-p2MIPS实验

本文是北航软院计组pre-p2MIPS实验介绍,重点讨论了MIPS语法、栈调用规范及递归理解。通过解决最大公约数问题、子串拟置和汉诺塔问题,阐述了MIPS编程思想。代码注释详尽,有助于学习MIPS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

北航软院计组pre-p2MIPS实验

个人认为最重要的还是把握语法的使用以及规范的栈调用(还有一点就是规范的缩进!!!)
下面直接给出代码
(有啥语法不会的同学可以看我以前发的mips教程
plus:具体注释代码里已经给的非常详细了

Q1:最大公约数问题

.data
.text
main:
	# needed function swap and gcd
	# input data into $s0 $s1
	# the result put into $a0
	li $v0 5
	syscall
	move $s0 $v0
	li $v0 5
	syscall
	move $s1 $v0
	
	bge $s0 $s1 pass
	# swap
	move $t0 $s0
	move $s0 $s1
	move $s1 $t0
	# $s0=a,$s1=b
	pass:
		jal gcd
		nop
	# output
	li $v0 1
	syscall
	# end procedure
	li $v0 10
	syscall
gcd:
	addiu $sp $sp -16
	sw $fp 4($sp)
	move $fp $sp
	sw $ra 8($fp)
	sw $s0 12($fp)
	sw $s1 16($fp)
	
	move $a0 $s0
	beq $s1 0 End
	
	div $s0 $s1
	move $s0 $s1
	mfhi $s1
	
	jal gcd
	nop
	
	End:
		lw
### 关于北航算机成原理 Logisim 使用教程或实验指导 在学习北京航空航天大学的《算机成原理》课程时,Logisim 是一种常用的模拟工具,用于帮助学生理解和实现数字电路以及算机体系结构的基础概念。以下是关于 Logisim 的相关内容及其应用: #### 1. **Logisim 工具简介** Logisim 是一款开源的数字逻辑设与仿真软件,广泛应用于教学领域。其图形界面友好,支持基本门电路、合逻辑、时序逻辑的设与验证。通过该工具,学生能够直观地观察到输入输出的变化过程,从而加深对理论知识的理解[^1]。 #### 2. **Logisim 在实验中的应用场景** 根据课程需求,Logisim 主要被用来完成以下几个方面的实验任务: -简单的加法器、减法器等基础运算单元; - 构建寄存器文件(Register File),即 CPU 中的核心件之一——寄存器堆 (GRF)[^2]; - 模拟数据存储器 (DM),了解内存访问机制; - 实现控制单元的功能,包括指令译码、执行顺序调整等功能; - 验证流水线技术的效果,并分析可能存在的冲突问题,例如分支预测和延迟槽的应用场景[^3]。 #### 3. **具体操作指南** 为了更好地开展基于 Logisim 的实验项目,建议按照如下方式准备: - 初步浏览教材中有关汇编语言的部分,建立整体框架性的认知后再深入研究细节之处[^4]; - 结合实际案例练习搭建完整的 ALU 单元或者小型处理器模型; - 将复杂的大规模集成电路拆分成若干独立的小模块分别调试优化后拼接在一起形成最终版本[^5]。 #### 4. **注意事项** 当使用 Logisim 进行开发时需要注意以下几点事项: - 确保每一个子系统的接口定义清晰明确以便后续集成测试顺利推进; - 对重要节点设置探针监控变量状态变化轨迹辅助定位错误位置; - 定期保存进度防止意外丢失成果造成重复劳动浪费时间精力。 ```python # 示例 Python 脚本展示如何自动化生成某些配置文件供 Logisim 加载运行 def generate_logisim_config(output_file="config.circ"): with open(output_file, 'w') as f: f.write('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n') f.write('<project version="2">\n') # Add your components and connections here... f.write('</project>') generate_logisim_config() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值