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

求实现两数比较后加减的可运行MARIE模拟器程序代码

MARIE 条件分支程序正确实现

你原来编写的代码没有实现if A < B的条件判断逻辑,会直接先执行加法再覆盖执行减法,无法得到正确结果。MARIE需要通过SkipCond指令配合减法操作实现大小比较跳转。

以下是可直接在MARIE模拟器运行的正确代码:

/ 输入并存储A、B
INPUT
STORE A
INPUT
STORE B

/ 比较A和B:计算A-B,根据结果符号判断大小
LOAD A
SUBT B
SkipCond 400 / 如果AC<0(即A<B),跳过下一条跳转指令,直接走加法分支
JUMP ELSE    / 否则跳转到减法分支

/ if分支:A < B时执行X = A+B
IF, LOAD A
ADD B
STORE X
JUMP END_IF / 执行完加法直接跳过减法分支

/ else分支:A >= B时执行X = A-B
ELSE, LOAD A
SUBT B
STORE X

/ 输出结果并终止
END_IF, LOAD X
OUTPUT
HALT

/ 变量声明
A, DEC 0
B, DEC 0
X, DEC 0

关键逻辑说明

  • 用LOAD A + SUBT B得到A和B的差值存入累加器AC
  • SkipCond 400是MARIE内置的条件跳过指令,当AC值为负时正好对应A<B的场景,此时会跳过下一条跳转指令直接执行加法分支
  • 加法分支执行完成后必须加JUMP END_IF,否则会继续执行后续的减法分支逻辑,导致结果被覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:39:03