c코드를 mips 코드로 바꿔야되는데 ㅠㅠ 도와주세요
c코드를 mips로 바꾸는데 너무 급한데 좀도와주세요 ㅠㅠㅠ
제가 짠게 이건데 아무리 돌려도 안돌아가네요...ㅠㅠ
고수님들 제발 돌아갈 수 있게 고쳐주시길 부탁드리겠습니다.ㅠ
c코드는 밑에 첨부해놓았습니다ㅠㅠㅠㅠ
mips... 너무어렵네요ㅠ
.text
.globl main
# Preconditions:
# 1st parameter (a0) non-negative integer, n
# Postconditions:
# result (v0) n factorial
main:
addi $sp,$sp -4
sw $ra,0($sp)
addi $s0,$zero,5
move $s0,$t3
li $v0,4
la $a0, sortinput
syscall
sw $s0,4($sp)
move $s0,$zero
mainloop1: blt $s0,5,mainexit1
li $v0,5
syscall
move $s0,$v0
addi $s0,$s0,1
mainexit1:
move $t3,$s0
la $t0,array
lw $t1,$s0
jar sort
li $v0,4
la $a0, sortoutput
syscall
mainloop2: blt $s0,5,mainexit2
li $v0,4
la $a0,array
syscall
move $s0,$v0
addi $s0,$s0,1
mainexit2:
li $v0,4
la $a0,return
syscall
.array
array:.space 20
sort: addi $sp, $sp, -20
sw $ra, 16($sp)
sw $s3, 12($sp)
sw $s2, 8($sp)
sw $s1, 4($sp)
sw $s0, 0($sp)
move $s2, $a0
move $s3, $a1
move $s0,$zero
loop1: bge $s0,$a1,exit1
addi $s1,$s0,-1
loop2: blt $s1,$zero,exit2
sll $t1,$s1,2
add $t2,$a0,$t1
lw $t3,0($t2)
lw $t4,4($t2)
bge $t4,$t3,exit2
move $a0, $s2 # the inner loop body starts here
move $a1, $s1
jal swap
addi $s1,$s1,-1
j loop2
exit2:
addi $s0,$s0,1
j loop1
exit1: lw $s0, 0($sp)
addi $sp, $sp, 20
jr $ra
swap: sll $t1,$a1,2
add $t1,$a0,$t1
lw $t0,0($t1)
lw $t2,4($t1)
sw $t2,0($t1)
sw $t0,4($t1)
jr $ra
.globl main
return: .asciiz "\n"
sortoutput: .asciiz "정렬 결과"
sortinput: .asciiz "정렬할 정수 5개를 입력 하세요."
endl: .asciiz "\n"
google에게 c to mips 라고 물어보니
google에게 c to mips 라고 물어보니 여러가지 나오네요.
https://www.cs.umd.edu/class/fall2003/cmsc311/Lectures/lecture15/C_code.pdf 등등등
참고하셔요.
세벌 https://sebuls.blogspot.kr/
?
C 를 MIPS 로 바꾸려면 그냥 MIPS 타겟으로 컴파일하고 역어셈블 해서 손좀 보면 되지 않나요 -_-
댓글 달기