为什么我的代码在第2行上始终出现比较失败,我该如何解决?

大卫·沙茨卡默

在CPU模拟器Add4.asm中的hack汇编语言中,测试始终在第2行中失败。我尝试了各种形式进行修复,但无法弄清楚。如何将其设置为0,或者这不是问题,还可以如何解决我的代码?ADD4 Hack汇编语言帮助

每当我运行.asm文件时,都会在第2行出现比较失败的情况。请帮助我解决此问题。这是我的.asm代码,后跟ADD4.tst。Add4.asm的行号有清楚的注释。

Add4将四个数字相加(等效地在RAM [0],…,RAM [3]或R0,…,R3中找到),并将结果存储在RAM [0](又名R0)中。您的程序必须在30个周期或更短的时间内完成

Add4.asm:

1. @1
2. D=M
3. @2
4. D=D+M
5. @3
6. D=D+M
7. @4
8. D=D+M
9. @5
10. D=D+M
11. @0
12. M=D

Add4.tst:

load Add4.asm,
output-file Add4.out,
compare-to Add4.cmp,
output-list RAM[0]%D2.6.2;
set RAM[0] 1,
set RAM[1] 2,
set RAM[2] 3,
set RAM[3] 4,
repeat 30
{ ticktock; }
output;
set PC 0,
set RAM[0] 0,
set RAM[1] 0,
set RAM[2] 0,
set RAM[3] 0,
repeat 30
{ ticktock; }
output;
set PC 0,
set RAM[0] -10,
set RAM[1] 5,
set RAM[2] 100,
set RAM[3] 9,
repeat 30
{ ticktock; }
output;

add4.cmp:

1.|  RAM[0]  |
2.|      10  |
3.|       0  |
4.|     104  |
jknotek

您错误地使用@1@2等等引用存储在RAM中的值。这实际上是字面数字12等等,让你的程序将总是添加相同的号码,从而给你比较失败。

相反,R如果要引用寄存器,则必须在数字之前加上数字,如下所示:

@R0
D=M
@R1
D=D+M
@R2
D=D+M
@R3
D=D+M
@R0
M=D

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是什么导致我的代码出现分段错误,我该如何解决?

为什么在我运行脚本时出现错误。我该如何解决?

为什么我的输出是“()”,我该如何解决?

比较线不起作用,为什么?我该如何解决?

尝试检查碰撞时为什么会出现类型错误,我该如何解决?

为什么会出现“应用程序不带参数”的提示,我该如何解决?

为什么会出现此错误,我该如何解决?迅速

为什么此代码有“内联文件中的EOF”错误,我该如何解决?

为什么Bazel欠链接,我该如何解决?

NoClassDefFoundError。为什么???我该如何解决?

为什么我不能下载swiglpk,该如何解决?

Vim为什么在此重新映射的密钥上延迟?以及我该如何解决?

为什么JavaCC无法在我的Mac上运行,该如何解决?

代码不断出现错误“命令帮助已经是现有命令或别名”,为什么会这样,我该如何解决?

为什么我在Spring Boot上出现TLSv1问题以及如何解决?

什么是IndexOutOfBoundsException?我该如何解决?

什么是NullPointerException,我该如何解决?

什么是NullReferenceException,我该如何解决?

什么是错误?我该如何解决?

我想知道为什么我不能将我的文本与代码中的变量连接起来。我该如何解决此代码?

我该如何解决我的代码中出现编译错误的问题?

本地运行的测试通过了,但是詹金斯测试失败了。为什么,我该如何解决?

为什么通过Angular $ http解析此示例Twitter json文件失败,我该如何解决?

我的网站仅对我而言是失败的,该如何解决?

为什么 Node.js 上会出现“TypeError: client.db is not a function”,我该如何解决?

为什么此C ++代码中的构造函数模棱两可,我该如何解决?

我的代码导致STARTTLS错误,我该如何解决?

我的代码正在泄漏。我该如何解决?

我该如何解决我的追逐/攻击代码?