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

仿写C++逻辑的Pep9汇编代码循环输出多11问题排查

问题原因

你的推测完全正确,问题出在循环跳转指令的逻辑和C++参考代码不匹配:

  • C++代码的循环判断是while (number < limit),等价于只要number大于等于10就终止循环
  • 你当前使用的BRGT endwh指令的触发条件是number的值严格大于10才会跳出循环,等于10时仍会进入循环体执行自增、输出逻辑,所以多输出了11。

修复方法

只需要将循环处的跳转指令从BRGT endwh修改为BRGE endwh即可:
BRGE指令的触发条件是累加器的值大于等于比较值时跳转,刚好匹配C++循环的终止判断逻辑,当number等于10时会直接跳出循环,不会执行后续的自增和输出操作。

修改后的循环段代码如下:

while:   LDWA    number,s    
         CPWA    limit,i      ;对应while (number < limit)判断
         BRGE    endwh        ;number >= 10时直接跳出循环
         ADDA    1,i
         STWA    number,s
         DECO    number,s
         STRO    msg2,d
         BR      while
endwh:   STRO    msg3,d 

修改后输入5的运行结果为6 7 8 9 10,和C++代码运行结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:15:10