QTSPIM运行MIPS汇编代码遇语法错误求助
QTSPIM运行MIPS汇编时
li $v0,4出现语法错误的排查方案 问题代码
## ## Place your header here ## including purpose of the program ## .text main: # Prompt for the integer to enter li $v0, 4 la $a0, prompt syscall # Read the integer and save it in $s0 li $v0, 5 syscall move $s0, $v0 # Output the text li $v0, 4 la $a0, output syscall # Output the number li $v0, 1 move $a0, $s0 syscall # Exit the program li $v0, 10 syscall .data prompt: .asciiz "Please enter an integer: " output: .asciiz "\nYou typed the number "
报错信息
spim: (parser) syntax error on line 8 of file
/Users/somebody/Desktop/Lesson6AssemblyExercise.asm
li $v0, 4
^
可能的原因及解决方法
- 文件编码问题:QTSPIM解析器对带BOM的UTF-8文件兼容性差,BOM会被识别为非法字符导致指令解析失败。解决:用文本编辑器将文件保存为UTF-8无BOM或纯ASCII格式后重新加载。
- 隐藏控制字符:复制粘贴代码时可能引入不可见的空格、制表符或控制字符,干扰解析器识别指令。解决:开启编辑器的“显示所有字符”功能,删除指令行周围的无效隐藏字符。
- 伪指令支持未生效:即使修改了偏好设置,部分旧版本QTSPIM仍可能无法正确识别
li伪指令。解决:将li伪指令替换为等效的机器指令,比如把li $v0, 4替换为addi $v0, $zero, 4,li $v0, 5替换为addi $v0, $zero, 5,以此类推。addi是原生MIPS指令,无需伪指令支持即可运行。
内容的提问来源于stack exchange,提问作者Jordan Hernandez
相关产品推荐
相关产品推荐

