0
## Question:
## Swap each pair of elements in
## the string "chararray" and
## print the resulting string.
## There will always be an even number
## of characters in "chararray".
##
## Output format must be:
## "badcfe"
#################################################
# #
# text segment #
# #
#################################################
.text
.globl main
main: # execution starts here
# Any changes above this line will be discarded by
# mipsmark. Put your answer between dashed lines.
#-------------- start cut -----------------------
la $t1, chararray
la $t2, chararray
nextCh: lb $t0, ($t1) # get a byte from string
lb $t3, ($t2) #get a byte from string
beqz $t0, strEnd #zero means end of string
add $t2, 1
sb $t3, ($t1)
sb $t0, ($t2)
add $t1, 1
j nextCh
strEnd: la $a0, chararray
li $v0, 4
syscall
li $v0, 10
syscall
#-------------- end cut -----------------------
# Any changes below this line will be discarded by
# mipsmark. Put your answer between dashed lines.
#################################################
# #
# data segment #
# #
#################################################
.data
chararray:
.asciiz "abcdef"
endl: .asciiz "\n"
##
## End of file loop4.a
나는이 물건에 아주 익숙하다. 내가 제대로 배열을 통해 사이클링 아니에요 아니면 내가 잘못 명령을 사용하고있는 것 같아요. 너 생각 하는게 뭐야? 아이디어 있니? 프로그램이 계속 충돌합니다.제 출력물과 프로그램이 충돌하면서 많은 것을 얻습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
. 그게 당신이 추락 한 명령을 알려주고, 당신이 regs/mem을 검사하게하십시오. 한 번에 하나의 명령을 한 단계 씩 실행할 수도 있습니다. 디버거없이 asm을 작성하는 것은 눈을 가리는 동안 로봇을 만드는 것과 같습니다. 즉, 프로그램이 어떻게 실패하는지 정확하게 설명하는 작업을 수행했고 몇 가지 코멘트가 있었기 때문에 코드를 디버그하려는 사람이 매우 쉽게 대답 할 수 있습니다. –
물론 코드가 SPIM/MARS에서 실행되도록 작성되었으므로 시뮬레이터에는 사용자가 사용하기를 기다리는 내장 된 시뮬레이터가 있기 때문에 디버거를 찾을 필요조차 없습니다. – Michael