MIPS函数返回类型

时间:2018-10-21 00:21:46

标签: string function assembly mips mars

我已经测试了将所有小写字符分别切换为大写的功能。当将函数返回到我的main.asm(通过.include附加)时,它什么都不打印。 Main.asm由我的老师预先编写,并且在打印.asciiz类型的标签时会打印。

这是将修改后的字符串返回到主程序的函数:

toUpper:

move $t0, $a0

#li $t0, 0

loop:
 lb $t1, 0($t0)
     beq $t1, 0x00, exit
 blt $t1, 'a', case
 bgt $t1, 'z', case
 sub $t1, $t1, 32
 sb $t1, 0($t0)

case: 
  addi $t0, $t0, 1
 j loop

exit:

la  $v0, 0($t0)

jr $ra

以下是返回值后调用打印函数的代码:

la $a0, toUpper_CSisFun
jal toUpper

move $t0, $v0
print_string(str_result)    
print_string_reg($t0) 
print_newline

这是打印宏本身

.macro print_string_reg(%reg)
li $v0, PRINT_STRING
la $a0, 0(%reg)
syscall 
.end_macro

我必须返回内容,而不是我修改的字符串的地址吗?任何帮助,不胜感激。

结果:

********* toUpper *********
Input: Computer
Result: 

0 个答案:

没有答案
相关问题