Assembly 读取和打印Qtspim中的整数
在解释发生了什么之前,我正在使用Qtspim。该程序很简单:它所做的只是读取一个整数(来自用户)并输出键入的数字。以下是代码:Assembly 读取和打印Qtspim中的整数,assembly,mips,qtspim,Assembly,Mips,Qtspim,在解释发生了什么之前,我正在使用Qtspim。该程序很简单:它所做的只是读取一个整数(来自用户)并输出键入的数字。以下是代码: ################################################### # text segment # ################################################### .text .globl __start __start: li $v0,4
###################################################
# text segment #
###################################################
.text
.globl __start
__start:
li $v0,4
la $a0,message
syscall
li $v0, 5 #read_int#
syscall
move $a0,$v0
li $v0, 1 #print_int#
syscall
li $v0,10
syscall
###################################################
# data segment #
###################################################
.data
message: .asciiz "please enter in a single number:"
###################################################
# #
# End of File #
# #
这是输出:
please enter in a single number:0
注意:键入输入时,它不会打印您键入的内容。因此,0是程序的输出。是的,我在输入后没有按enter键。……是的朋友执行它,它对他们有效你在QtSPIM的调试器中单步执行代码了吗?我也看不出有什么问题,显示这些是正确的号码和那些MARS/SPIM系统调用的寄存器。所以我想知道你是不是忘了在用SPIM或类似的东西重新加载文件之前保存它。。。在调试器中单步执行应该可以排除这种情况。尤其是如果此副本/粘贴对尝试过它的朋友有效。@PeterCordes希望这就是问题所在://我总是将文件保存为.s,并总是重新初始化和加载文件。同样使用F10(单步),没有错误弹出:(我还下载了所有版本(新的或旧的)util'19,重新初始化并加载了文件,每个版本都输出这个…检查你的QtSPim选项:模拟器->设置->MIPS->内存映射I/O。如果选中,取消选中,如果不选中,请告诉我们。