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

Nand2tetris中Mult.hack不存在,Mult.asm测试报错求助

问题原因及修复方案

问题根源

你在编写Mult.asm时,错误地把提问里用来格式化代码的<pre>、<code>这类HTML标签也写入了实际文件中,导致Hack汇编器无法识别(LOOP)和(END)这两个标签,触发了"Undefined symbol"(未定义符号)错误。

修复步骤

  1. 打开你的Mult.asm文件,删除所有<pre>、</pre>、<code>、</code>标签,确保文件里只有纯汇编代码。
  2. 修正后的正确代码如下:
// Multply R2=R1*R0
@R2
M=0 
@R1
D=M
@n
M=D

(LOOP)
@R0
D=M
@R2
M=D+M
@n
M=M-1
D=M
@LOOP
D;JGT

(END)
@END
0;JMP

额外说明

当前代码仅能正确处理无符号整数乘法,如果测试用例包含有符号整数(比如R1为负数),循环不会执行,结果会出错。若需要支持有符号乘法,需额外处理符号位:

  • 先记录R0、R1的符号,计算两者绝对值的乘积,最后根据符号位调整结果的正负。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:20:11