--C COMPILER int main() { int x = 4; int y = 5; int z = 6; int a = x + y; int b = y + z; int c = z * a; int d = b * c; int e = x; return e * d; } parse finished D d int F main ; ; ; ; ; ; ; ; ~ int = x 4 ~ int = y 5 ~ int = z 6 ~ int = a + x y ~ int = b + y z ~ int = c * z a ~ int = d * b c ~ int = e x return * e d func main x := 4 y := 5 z := 6 $t0 := x + y a := $t0 $t1 := y + z b := $t1 $t2 := z * a c := $t2 $t3 := b * c d := $t3 e := x $t4 := e * d ret $t4 end main ===== 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 #func main 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) #x := 4 li $8, 4 or $16, $0, $8 #y := 5 li $9, 5 or $17, $0, $9 #z := 6 li $10, 6 or $18, $0, $10 #$t0 := x + y add $11, $16, $17 #a := $t0 or $19, $0, $11 #$t1 := y + z add $12, $17, $18 #b := $t1 or $20, $0, $12 #$t2 := z * a mult $18, $19 mflo $13 #c := $t2 or $21, $0, $13 #$t3 := b * c mult $20, $21 mflo $14 #d := $t3 or $22, $0, $14 #e := x or $23, $0, $16 #$t4 := e * d mult $23, $22 mflo $15 #ret $t4 or $v1, $0, $15 jr $31 #end main done: ori $v0, $0, 10 syscall