Gabarito da P1

1a questão

(a)        
        instrucao               registradores alterados:

        li      $t1,1024        $t1: 0000 0400
        sub     $t2,$0,$t1      $t2: ffff fc00
        addi    $t1,$t1,-10     $t1: 0000 03f6
        add     $t3,$t1,$t2     $t3: ffff fff6
        li      $t1,-9          $t1: ffff fff7
        bge     $t3,$t1,L1      ----
        li      $t3,0           $t3: 0000 0000
        b       L2              ----
        move    $v0,$t3         $v0: 0000 0000
(b) 
        instrucao               registradores alterados:

        li      $s1,-10         $s1: ffff fff6
        jal     L1              $ra: 0000 4008
        sub     $sp,$sp,4       $sp: 7fff eff8
        sw      $s1,($sp)       ----
        li      $s1,40          $s1: 0000 0028
        add     $v0,$s1,$s1     $v0: 0000 0050
        lw      $s1,($sp)       $s1: ffff fff6
        add     $sp,$sp,4       $sp: 7fff effc
        jr      $ra             ----
        add     $s1,$s1,$v0     $s1: 0000 0046
(c)
        instrucao               registradores alterados:

        li      $v0,0           $v0: 0000 0000
        la      $t0,D1          $t0: 1004 0c00
        lb      $t1,($t0)       $t1: 0000 0066
        beqz    $t1,FIM         ----
        add     $v0,$v0,$t1     $v0: 0000 0066
        addi    $t0,$t0,1       $t0: 1004 0c01
        b       L1              ----
        lb      $t1,($t0)       $t1: 0000 0061
        beqz    $t1,FIM         ----
        add     $v0,$v0,$t1     $v0: 0000 00c7
        addi    $t0,$t0,1       $t0: 1004 0c02
        b       L1              ----
        lb      $t1,($t0)       $t1: 0000 0000
        beqz    $t1,FIM         ----
        li      $v1,0           $v1: 0000 0000

2a questão

# (a)

conta:	li	$v0, 0		# contador
loop:	lbu	$t0, ($a0)	# le char
	beqz	$t0, fim
	blt	$t0, 48, nc
	bgt	$t0, 57, nc
	addi	$v0, $v0, 1
nc:	addi	$a0, $a0, 1
	j	loop
fim:	jr	$ra
# (b)

dobra:  li      $t0, 0          # contador
loop:   bge	$t0, $a1, fim
        add     $t1, $t0, $t0
        sw      $t1, ($a0)
        addi    $t0, $t0, 1
        addi    $a0, $a0, 4
        j       loop
fim:    jr      $ra