$t0: 3 $t1: 10 $t2: 3 $t3: 2 $t4: 6
$t0: -2 $t1: 10 $t2: 3 $t3: 15 $t4: -60
$t0: 5 $t1: 2 $t2: 1 $t3: 9 $t4: 3 $t5: 7 $t6: 28
$t0: 3 $t1: 8 $t2: 2 $t3: 10 $t4: 3 $t5: 8 $t6: 32
$t0: 16 $t1: 15 $t2: 56
$t0: 4 $t1: 3 $t2: 2 $t3: 1 $t4: 82 $t5: 27 $s0: 9 $s1: 18
beq $t1, $t2, else ble $t2, $t5, else . . (1) . b endif else: . . (2) . endif: . . (3) . .
ble $t1, $t2, if bgt $t3, $t4, if . . (2) . b endif if: . . (1) . endif: . . (3) .
add $t5,$t2,$t3 ble $t1,$t5,else . . (1) . b after else: add $t5,$t3,$t1 bne $t5,$t4,outelse . . (2) . b after outelse: . . (3) . b after after: . . (4) .
blt $t1, $t2, else2 bge $t0, $t3, else1 . . (1) . b endin1 else1: . . (2) . endin1: . . (3) . b endout else2: li $t4, 10 beq $t0, $t4, endout . . (4) . endout: . . (5) .
addi $t3, $t2, 1 bgt $t1, $t3, else1 . . (1) . b endout else1: ble $t1, $t2, checkor b then checkor: bnez $t1, else2 then: . . (2) . b endin else2: . . (3) . endin: . . (4) . endout: . . (5) .
li $t3, 10 # t3 = 10 while: beqz $t1, endwhile # if t1 == 0 exit loop add $t2, $t2, $t3 # t2 = t2 + t3 addi $t1, $t1, -1 # t1-- b while # back to loop endwhile:
move $t3, $0 # t3 = 0 move $t1,$0 # t1 = 0 forloop: bge $t1, $t2, endfor # if t1 >= t2 exit loop li $v0, 4 la $a0, prompt # print prompt syscall li $v0, 5 # read num syscall mult $v0, $v0 # num * num mflo $t2 # t2 = num * num li $v0, 1 move $a0, $t2 # print t2 syscall addi $t1, $t1, 1 # t1++ b forloop # back to loop endfor:
move $t3, $0 # t3 = 0 move $t2, $0 # t2 = 0 move $t1, $0 # t1 = 0 li $t4,100 # t4 = 100 forloop: bge $t1, $t4, endfor # if t1 >= t4 exit loop li $v0, 4 la $a0, prompt # print prompt syscall li $v0, 5 # read num syscall andi $t5, $v0, 0x0001 # get last bit of num beqz $t5, even # if last bit is zero, num is even add $t3, $t3, $v0 # if not, add 1 to odds b increment even: add $t2, $t2, $v0 # add 1 to evens increment: addi $t1, $t1, 1 # t1++ b forloop # back to loop endfor: li $v0, 4 la $a0, evenmsg # print even msg syscall li $v0, 1 move $a0, $t2 # print count of evens syscall li $v0, 4 la $a0, oddmsg # print odd msg syscall li $v0, 1 move $a0, $t3 # print count of odds syscall
li $t0, 1 # $t0 is x^n = 1 li $v0, 4 la $a0, nummsg # print num prompt syscall li $v0, 5 # read x syscall outer: beqz $v0, done # if x == 0 exit loop move $t1, $v0 # $t1 is x li $v0, 4 la $a0, expmsg # print exponent prompt syscall li $v0, 5 # read n syscall move $t2, $v0 # $t2 is n inner: beqz $t2, innerend # count down from n to 0 in inner loop mult $t0, $t1 # x^n = x^n * x mflo $t0 addi $t2, $t2, -1 # n-- b inner # back to top of loop for x^n innerend: li $v0, 4 la $a0, xtonoutmsg # print "xton = " syscall li $v0, 1 move $a0, $t0 # print x^n syscall li $t0, 1 # x^n = 1 li $v0, 4 la $a0, nummsg # print num prompt syscall li $v0, 5 # read x syscall b outer # back to loop for x done:
Email Me |
Office Hours |
My Home Page |
Department Home |
MCC Home Page
© Copyright Emmi Schatz 2020