我正在研究一个将在pcspim上运行的mips程序,我需要一点帮助。该程序的描述是:编写一个程序,该程序从键盘读取一个字符串,将其存储在内存中,然后计算并打印每个字符的频率;然后它反转字符串并打印反转的字符串。MIPS计划需要帮助
到目前为止,我已经是...
.data # Data declaration section
userString: .space 256
Prompt: .asciiz "\nEnter a word: "
newLine: .asciiz "\n"
.text
main: # Start of code section
li $v0, 4
la $a0, Prompt
syscall
li $v0, 8
la $a0, userString
li $a1, 256
syscall
jr $ra
la $a0, userString
move $t0, $a0
lb $t1, 0($t0)
li $v0, 4
move $a0, $t1
syscall # prints first letter of word
现在,我只是想看看我是否已经实际存储的输入到userString阵列。所以最后我试图打印出第一个字母。但它似乎没有打印任何东西。
有什么建议吗? 谢谢。
我从来没有使用PCSPIM,但它看起来像'syscall' 4打印一个字符串,而不是一个字符。您可能想要尝试删除'lb'指令并将整个字符串移动到'$ a0'中。 (它已经存在了,但是你可以在那里做一个'移动$ a0,$ t0' – mjschultz 2010-11-14 23:03:33
我已经忘记了我对MIPS汇编所知甚少,但在前几行中,你展示了什么是提示符使用la $ a0,提示。所以为什么你不显示什么在userString通过:la $ a0,userString?为什么所有其他的指令,这可能会或可能不会是正确的? – 2010-11-14 23:08:08
yeaa我只是不知道我将如何能够将一个用户输入字符串存储到数组中,我在网上查了一下,并尝试了一些他们的代码,所以我不太确定,我真的很讨厌mips:( – John 2010-11-14 23:12:20