Skip to content

Instantly share code, notes, and snippets.

@hlian
Created April 29, 2011 05:06
Show Gist options
  • Save hlian/947871 to your computer and use it in GitHub Desktop.
Save hlian/947871 to your computer and use it in GitHub Desktop.
.data
NL: .asciiz "\n"
.text
main:
addi $sp, $sp, -4 # $sp := $sp+-4
sw $ra, 0($sp) # [$sp+0] := $ra
li $a0, 32000 # $a0 := 32000
li $v0, 9 # $v0 := 9
syscall
sw $v0, 0($gp) # [$gp+0] := $v0
jal _main # call _main
move $a0, $v0
jal _printint
lw $ra, 0($sp) # $ra := [$sp+0]
main.epilog:
addi $sp, $sp, 4 # $sp := $sp+4
jr $ra # also uses: $v0,$s0,$s1,$s2,$s3,$s4,$s5,$s6,$s7
alloc:
addi $sp, $sp, 0 # $sp := $sp+0
lw $v0, 0($gp) # $v0 := [$gp+0]
add $t0, $v0, $a0 # $t0 := $v0+$a0
sw $t0, 0($gp) # [$gp+0] := $t0
alloc.epilog:
addi $sp, $sp, 0 # $sp := $sp+0
jr $ra # also uses: $v0,$s0,$s1,$s2,$s3,$s4,$s5,$s6,$s7
_printint:
addi $sp, $sp, 0 # $sp := $sp+0
li $v0, 1 # $v0 := 1
syscall
la $a0, NL # $a0 := NL
li $v0, 4 # $v0 := 4
syscall
_printint.epilog:
addi $sp, $sp, 0 # $sp := $sp+0
jr $ra # also uses: $v0,$s0,$s1,$s2,$s3,$s4,$s5,$s6,$s7
_main:
addi $sp, $sp, 0 # $sp := $sp+0
move $v1, $ra # $v1 := $ra
move $a1, $s0 # $a1 := $s0
move $a2, $s1 # $a2 := $s1
move $a3, $s2 # $a3 := $s2
move $t0, $s3 # $t0 := $s3
move $t1, $s4 # $t1 := $s4
move $t2, $s5 # $t2 := $s5
move $t3, $s6 # $t3 := $s6
move $t4, $s7 # $t4 := $s7
move $v0, $a0 # $v0 := $a0
li $v0, 5 # $v0 := 5
li $a0, 3 # $a0 := 3
add $v0, $v0, $a0 # $v0 := $v0+$a0
li $a0, 7 # $a0 := 7
mulo $v0, $v0, $a0 # $v0 := $v0*$a0
li $a0, 7 # $a0 := 7
add $a0, $v0, $a0 # $a0 := $v0+$a0
li $a0, 0 # $a0 := 0
blt $v0, $a0, L2 # if (signed) $v0 <$a0 goto L2
L1:
li $v0, 2 # $v0 := 2
neg $v0, $v0 # $v0 := -$v0
beqz $v0, L4 # if (signed) $v0 == 0 goto L4
L5:
li $v0, 0 # $v0 := 0
# $v0 := $v0
j L6 # goto L6
L4:
li $v0, 1 # $v0 := 1
# $v0 := $v0
L6:
# $v0 := $v0
j L3 # goto L3
L2:
li $v0, 42 # $v0 := 42
# $v0 := $v0
L3:
# $v0 := $v0
move $ra, $v1 # $ra := $v1
move $s0, $a1 # $s0 := $a1
move $s1, $a2 # $s1 := $a2
move $s2, $a3 # $s2 := $a3
move $s3, $t0 # $s3 := $t0
move $s4, $t1 # $s4 := $t1
move $s5, $t2 # $s5 := $t2
move $s6, $t3 # $s6 := $t3
move $s7, $t4 # $s7 := $t4
_main.epilog:
addi $sp, $sp, 0 # $sp := $sp+0
jr $ra # also uses: $v0,$s0,$s1,$s2,$s3,$s4,$s5,$s6,$s7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment