You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

汇编购票系统函数调用异常:输入4执行view_comp而非reset

汇编购票系统输入4执行view_comp的问题修复

问题根源

你的代码核心错误出在菜单选择的判断逻辑部分:

cmp al, '1'
je view_activites 
cmp al, '2'
je view_workshop
cmp al, '3' 
call view_comp
cmp al, '4'
call reset 
  • 对选项3的判断没有使用条件跳转指令(je),而是直接执行call view_comp——不管用户输入的是不是'3',程序都会进入view_comp函数。
  • 当输入'4'时,程序走完前两个cmp判断(均不满足跳转)后,会直接执行call view_comp,而view_comp末尾的jmp DisplayMenu会让程序直接跳回菜单循环,完全没机会执行到后续的cmp al,'4'和reset调用逻辑。

另外,所有子函数(view_activites、view_workshop等)末尾的ret指令都是多余的——因为jmp DisplayMenu已经让程序跳走,ret永远不会被执行到,可直接删除。

修复步骤

  1. 修正菜单判断逻辑,给选项3和4加上条件跳转:
cmp al, '1'
je view_activites 
cmp al, '2'
je view_workshop
cmp al, '3' 
je view_comp
cmp al, '4'
je reset
  1. 删除子函数末尾多余的ret,例如view_activites中的:
jmp DisplayMenu
ret  ; 删掉此行

其他子函数的ret做同样处理。

  1. 修正view_comp的提示文本,当前代码调用的是msg(活动提示),应改为msg3以显示竞赛相关内容:
view_comp:
mov ah,09h
mov dx,offset msg3  ; 替换原msg为msg3
int 21h
  1. 修正菜单提示文本,把Enter a choice (1 to 2):改为Enter a choice (1 to 4):,和实际选项对应。

内容的提问来源于stack exchange,提问作者Kaze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 03:31:37