.file 1 "e.c" .text .align 2 .globl foo .ent foo foo: .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0 .mask 0x40000000,-8 .fmask 0x00000000,0 subu $sp,$sp,16 sw $fp,8($sp) move $fp,$sp sw $4,16($fp) sw $5,20($fp) lw $2,16($fp) blez $2,$L2 lw $2,20($fp) blez $2,$L2 li $2,1 # 0x1 sw $2,0($fp) $L3: lw $3,0($fp) lw $2,16($fp) mult $3,$2 mflo $3 lw $2,20($fp) addu $2,$3,$2 sw $2,0($fp) lw $2,16($fp) addu $2,$2,-1 sw $2,16($fp) lw $2,16($fp) bgtz $2,$L3 lw $2,0($fp) sw $2,4($fp) j $L1 $L2: sw $0,4($fp) $L1: lw $2,4($fp) move $sp,$fp lw $fp,8($sp) addu $sp,$sp,16 j $31 .end foo .rdata .align 2 $LC0: .ascii "x=3, y=4, foo=" .text .align 2 .globl main .ent main main: .frame $fp,24,$31 #vars= 0, regs= 2/0, args= 16, extra= 0 .mask 0xc0000000,-4 .fmask 0x00000000,0 subu $sp,$sp,24 sw $31,20($sp) sw $fp,16($sp) move $fp,$sp li $4,3 # 0x1 li $5,4 # 0x5 jal foo la $4,$LC0 li $5,3 # 0x1 li $6,4 # 0x5 move $7,$2 # jal printf li $v0, 4 # system call code for print_str la $a0, $LC0 # string to print syscall li $v0, 1 # system call code for print_int la $a0, ($7) # int to print syscall move $sp,$fp lw $31,20($sp) lw $fp,16($sp) addu $sp,$sp,24 j $31 .end main