能力有限,只写出了规定大小的字符串反转,已在MARS4_5调试,可运行,欢迎指正,话不多说,直接上代码
.data
promt1: .asciiz "input string shorter than 20\n"
promt2: .asciiz "the after-string is:"
str: .space 100
trans_str: .asciiz " "
.text
.globl main
main: li $v0,4
la $a0,promt1
syscall
la $a0,str
li $v0,8
li $a1,100
syscall
jal trans
li $v0,4
la $a0,promt2
syscall
li $v0,4
la $a0,trans_str
syscall
li $v0,10
syscall
trans: move $a2,$a0
li $t0,0
li $t2,19
loop: bltz $t2,ret
lb $t1,($a2)
beqz $t1,ret
sb $t1,trans_str($t2)
next: addi $a2,$a2,1
addi $t2,$t2,-1
addi $t0,$t0,1
blt $t0,$a1,loop
ret: jr $ra