.data
start: .asciiz " Input N = "
last: .asciiz " The result is "
out1: .asciiz " N is not legal"
out2: .asciiz " overow"
empty: .asciiz " "
Hex: .asciiz " 0Xxxxxxxxx"
buf: .word 1,1
.space 4096 #设定数组大小
.text
main: la $a0,start
li $v0,4
syscall #输出 start
la $a0,buf
move $a1,$a0 #$a1 是地址 ==$s2
li $v0,5
syscall #输入 N
addi $v0,$v0,-1
move $a0,$v0 #$a0 是计数器 N ==$s3
bltz $a0,out_1
move $t5,$a1
move $t6,$a0
li $s1,1
jal FIB #按要求存储数据
addi $a3,$a0,0
li $a2,0
la $a0,start
li $v0,4
syscal
jal print #按要求打印数据
li $v0,10 #退出
syscall
FIB: ble $t6,$s1,ret #$t6<=1 就返回
addi $a2,$t5,4
lw $t1,($t5)
lw $t2,($a2)
addu $a3,$t1,$t2
addi $t4,$0,-1 #f3=f1+f2
subu $t3,$t4,$t1
bltu $t3,$t2,out_2 #判断溢出
sw $a3,4($a2)
addi $t5,$t5,4
addi $t6,$t6,-1
b FIB
评论0
最新资源