식:
int leaf_example (int g, int h, int i, int j)
{
int f;
f = (g - h) + (i - j);
return f;
}
· g, h, i, j의 값은 각각 3, 10, 15, 7이며 $a0, $a1, $a2, $a3레지스터에 입력되어야함. 나와야할 결과는 1.
.data
msg: .asciiz"The final result is "
.globl main
.text
main:
li $a0,3
li $a1,10
li $a2,15
li $a3,7
jal leaf_example
li $v0, 4
la $a0, msg
syscall
li $v0,1
add $a0,$v0,$zero
syscall
li $v0, 10
syscall
leaf_example:
addi $sp,$sp,-12
sw $t1,8($sp)
sw $s0,4($sp)
sw $s0,0($sp)
sub $t0,$a0,$a1
sub $t1,$a2,$a3
add $s0,$t0,$t1
add $v0,$s0,$zero
lw $s0,0($sp)
lw $t0,4($sp)
lw $t1,8($sp)
addi $sp,$sp,12
jr $ra
'MIPS > 공부' 카테고리의 다른 글
배열에서 값을 찾아 연산하는 프로그램 (0) | 2021.03.05 |
---|---|
n!을 구하는 프로그램 (0) | 2021.03.04 |
입력값에 10을 더해 출력하는 프로그램 (0) | 2021.03.03 |