LC-3汇编代码报错求助:在线模拟器提示无效数字字面量'99'
LC-3汇编代码错误排查:无效数字字面量'99'
你的LC-3汇编代码运行时报错:
哦不!你的汇编代码存在错误:
第34行:无效数字字面量: '99'
错误原因
LC-3汇编器默认识别十六进制数字,十进制数字必须以#前缀标识。直接写99会被当作十六进制解析,但十六进制的有效字符仅为0-F,因此触发无效字面量错误。
修正方案
将第34行的storeString .blkw 99修改为以下两种写法之一:
- 明确指定十进制:
storeString .blkw #99 - 使用十六进制等价值:
storeString .blkw x63(十进制99转换为十六进制是0x63)
修正后的完整代码
.orig x3000 Lea r1, storeString Lea r0, Student puts Lea r0, Userinput puts LOOP getc out str r0, r1, 0 add r1, r1, 1 add r0, r0, -10 brz OUTSIDE brnzp LOOP OUTSIDE Lea r0, Outputtext puts Lea r0, storeString puts Halt Student .stringz "Francois Van Zyl" Userinput .stringz "\n\nPlease enter a text: " Outputtext .stringz "The text you have typed is: " storeString .blkw #99 ; 或替换为x63 .end
额外说明
修正后代码可正常运行:通过getc读取用户输入字符,回显后存入storeString缓冲区,直到输入换行符(ASCII码10)时退出循环,最后输出存储的字符串。
内容的提问来源于stack exchange,提问作者sArwar sHafee
相关产品推荐
相关产品推荐

