如何解决Nand2tetris Project4-测试失败-Fill.asm:第3行比较失败
关于Nand2tetris课程并没有过多提及,并且没有上传与键盘交互的程序集文件。
该程序的基本操作是,当按下键盘上的某个键时,屏幕将变成黑色,即屏幕上的每个像素都应该变成黑色,而当键盘处于空闲状态时,屏幕保持白色。
这是我的代码,可以在计算机的硬件模拟器上很好地工作,但是当我将其上传到Coursera上提交时失败。
@place
M=0
(LOOP)
@KBD
D=M
@WHITE
D; JEQ
@BLACK
0; JMP
(WHITE)
@place
D=M
@LOOP
D; JLT
@place
D=M
@SCREEN
A=A+D
M=0
@place
M=M-1
@LOOP
0;JMP
(BLACK)
@place
D=M
@LOOP
D; JGE
@SCREEN
A=A+D
M=-1
@place
M=M-1
@LOOP
0; JMP
我在哪里弄错了?比较失败的原因是什么,如何解决? 预先感谢
解决方法
很抱歉,您发布的解决方案无法解决问题。我认为这就是Coursera拒绝它的原因。
当我通过汇编器然后通过cpu仿真器运行解决方案时,我看不到col2
所需的行为。我正在将您的解决方案与我知道是正确的解决方案进行比较,并且看到了不同的行为。
下面是使用您的解决方案按下键盘时的cpu模拟器的屏幕截图:
这是我希望看到的:
我建议您查看解决方案。
提示:解决方案缺少的代码是填满屏幕的代码。
这就是为什么我认为它不见了:
- 您认为解决方案的第19行
Fill.asm
是我认为颜色设置为白色的地方 - 我将第19行更改为
M=0
,将白色设置为黑色 - 我希望看到屏幕总是涂成黑色,但是相反,我在模拟器屏幕的左上角仅看到一小段黑色线,如下所示
提示:您有一个循环(M=-1
)反复监听键盘。我希望看到另一个循环((LOOP)
或其他),用白色或黑色填充专用于(FILL)
的整个内存区域。
祝你好运。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。