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

LMC汇编程序问题:输入两数取较大值无输出求助

LMC程序无输出问题排查与修复

问题出在两个关键点:

1. 注释符号不兼容

绝大多数LMC汇编器不支持#作为注释标记,你代码里的#NUM1 > NUM2这类行会被解析成无效指令或错误标签,直接打乱程序的内存布局。原本该跳转到NUM2SHOW的指令无法定位到正确位置,最终导致输出操作无法执行。

2. 冗余的判断逻辑

第一次减法判断后,如果BRP NUM2SHOW未触发,就说明NUM2 < NUM1,完全没必要再做一次减法和跳转判断,直接输出NUM1即可。多余的代码不仅无意义,还可能增加出错概率。

修复后的代码

INP
        STA NUM1
        INP
        STA NUM2

        ; 用NUM2减去NUM1,判断数值大小
        SUB NUM1
        BRP NUM2SHOW  ; 若NUM2 >= NUM1,跳转输出NUM2
        
        ; 执行到此处则表示NUM1更大,直接输出
        LDA NUM1
        OUT
        HLT

NUM2SHOW LDA NUM2
        OUT
        HLT

NUM1    DAT
NUM2    DAT

测试验证

输入4和5时,SUB NUM1得到结果1(正数),触发BRP NUM2SHOW,程序会跳转到NUM2SHOW标签处,加载NUM2的值并输出5,随后终止,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:57:41