如何在MIPS汇编中输入负数时打印控制台错误提示?
解决MIPS汇编输入负数时打印错误提示的问题
要实现输入负数时打印错误提示,你只需要在数据段添加错误提示字符串,然后修改分支逻辑,先打印错误信息再回到输入流程。以下是修改后的完整代码:
.globl main .data # program output text constants prompt: .asciiz "Please enter a positive integer: " error_msg: .asciiz "Error: Input must be a positive integer!\n" # 新增错误提示字符串 .text main: li $v0, 4 # 输出输入提示 la $a0, prompt syscall li $v0, 5 # 获取用户输入 syscall blt $v0, $zero, error_handler # 输入为负时跳转到错误处理逻辑 # 输入为正时执行的后续代码 # ...(这里保留你原有的业务代码) # 程序结束(可选,避免执行到错误处理逻辑) li $v0, 10 syscall error_handler: li $v0, 4 # 打印错误提示 la $a0, error_msg syscall j main # 跳转回输入提示流程
关键改动说明:
- 在
.data段新增了error_msg字符串,存储错误提示内容 - 将原来直接跳回
main的分支指令,改为跳转到新的error_handler标签 - 添加
error_handler代码块:先通过系统调用打印错误信息,再用j指令跳回main重新发起输入请求 - 新增了程序结束的系统调用(
li $v0,10; syscall),避免输入合法时意外执行到错误处理逻辑
内容的提问来源于stack exchange,提问作者Geeky Quentin
相关产品推荐
相关产品推荐

