Jupiter: (error) asm::29:13: (syntax) unexpected input '49' > beq t0, 49, show_name ^
时间: 2024-03-18 19:45:14 浏览: 172
非常抱歉,这是我的错误。在RISC-V汇编语言中,立即数(immediate)需要使用整数格式,而不是字符格式。因此,需要将 `49` 和 `50` 改为对应的整数值 `1` 和 `2`。以下是修改后的代码:
```
# 用RISC-V汇编语言编写的程序,实现键盘输入显示姓名或学号的功能
.section .data
# 定义提示消息
msg1: .ascii "请输入数字 1 或 2:\n"
msg2: .ascii "姓名:YourName\n"
msg3: .ascii "学号:YourStudentID\n"
.section .text
.globl _start
# 程序入口点
_start:
# 显示提示消息
la a0, msg1
li a7, 4
ecall
# 读取键盘输入
li a7, 8
li a1, 1
la a0, buffer
li a2, 2
ecall
# 判断输入的数字
lbu t0, 0(a0)
beq t0, 1, show_name # 1 对应数字 1
beq t0, 2, show_id # 2 对应数字 2
j exit # 其他情况返回操作系统
show_name:
# 显示姓名
la a0, msg2
li a7, 4
ecall
j exit
show_id:
# 显示学号
la a0, msg3
li a7, 4
ecall
j exit
exit:
# 返回操作系统
li a7, 10
ecall
.section .bss
# 定义缓冲区
lcomm buffer, 2
```
感谢您的指正!
阅读全文