北航软院计组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