| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- .globl __start
- __start:
- li $a0, 68
- li $v0, 9
- syscall
- or $fp, $0, $v0
- la $t0, main
- sw $t0, 0($fp)
- sw $0, 4($fp)
- jal main
- j done
- fact:
- li $a0, 68
- li $v0, 9
- syscall
- sw $fp, 4($v0)
- sw $16, 8($fp)
- sw $17, 12($fp)
- sw $18, 16($fp)
- sw $19, 20($fp)
- sw $20, 24($fp)
- sw $21, 28($fp)
- sw $22, 32($fp)
- sw $23, 36($fp)
- or $fp, $0, $v0
- la $t0, fact
- sw $t0, 0($fp)
- sw $ra, 64($fp)
- or $16, $0, $5
- or $5, $0, $16
- li $8, 1
- or $6, $0, $8
- jal inner_fact
- lw $fp, 4($fp)
- lw $ra, 64($fp)
- lw $16, 8($fp)
- or $9, $0, $v1
- or $v1, $0, $9
- jr $31
- inner_fact:
- li $a0, 68
- li $v0, 9
- syscall
- sw $fp, 4($v0)
- sw $16, 8($fp)
- sw $17, 12($fp)
- sw $18, 16($fp)
- sw $19, 20($fp)
- sw $20, 24($fp)
- sw $21, 28($fp)
- sw $22, 32($fp)
- sw $23, 36($fp)
- or $fp, $0, $v0
- la $t0, inner_fact
- sw $t0, 0($fp)
- sw $ra, 64($fp)
- or $16, $0, $5
- or $17, $0, $6
- bne $16, $0, L0
- or $v1, $0, $17
- jr $31
- L0:
- li $11, 1
- sub $10, $16, $11
- mult $17, $16
- mflo $12
- or $5, $0, $10
- or $6, $0, $12
- jal inner_fact
- lw $fp, 4($fp)
- lw $ra, 64($fp)
- lw $16, 8($fp)
- lw $17, 12($fp)
- or $13, $0, $v1
- or $v1, $0, $13
- jr $31
- main:
- li $a0, 68
- li $v0, 9
- syscall
- sw $fp, 4($v0)
- or $fp, $0, $v0
- la $t0, main
- sw $t0, 0($fp)
- sw $ra, 64($fp)
- li $14, 3
- or $5, $0, $14
- jal fact
- lw $fp, 4($fp)
- lw $ra, 64($fp)
- or $15, $0, $v1
- or $16, $0, $15
- li $24, 5
- or $5, $0, $24
- jal fact
- lw $fp, 4($fp)
- lw $ra, 64($fp)
- lw $16, 8($fp)
- or $25, $0, $v1
- or $17, $0, $25
- li $8, 7
- or $5, $0, $8
- jal fact
- lw $fp, 4($fp)
- lw $ra, 64($fp)
- lw $16, 8($fp)
- lw $17, 12($fp)
- or $9, $0, $v1
- or $18, $0, $9
- add $10, $16, $17
- add $11, $10, $18
- or $v1, $0, $11
- jr $31
- done:
- or $a0, $v1, $0
- ori $v0, $0, 1
- syscall
- ori $a0, $0, 0xA
- ori $v0, $0, 0xB
- syscall
- ori $v0, $0, 10
- syscall
|