c코드를 mips 코드로 바꿔야되는데 ㅠㅠ 도와주세요

tkfka100의 이미지

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 라고 물어보니 여러가지 나오네요.
https://www.cs.umd.edu/class/fall2003/cmsc311/Lectures/lecture15/C_code.pdf 등등등
참고하셔요.

익명 사용자의 이미지

C 를 MIPS 로 바꾸려면 그냥 MIPS 타겟으로 컴파일하고 역어셈블 해서 손좀 보면 되지 않나요 -_-

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.