Assembly 基本累加器程序

Assembly 基本累加器程序,assembly,Assembly,我在高中刚开始一门计算机科学课程,我们收到了关于装配和蓄能器的模糊说明。这是我需要跟踪输出的程序的一部分(输入值为40和24): 事情还在继续。我知道001-006发生了什么,但在那之后,我被卡在CMP和JEQ上。在006,累加器加载N2,即24,但下一步是CMP,通过谷歌搜索,我发现是使用减法比较两个值。我不知道只有0的时候该怎么办。对于008,JEQ的意思是如果相等的话跳转,那么我假设它只是说“如果n2等于n2,跳转到011,然后从那里继续”对吗 谢谢,这种程序集中的CMP通常会将一个值与参

我在高中刚开始一门计算机科学课程,我们收到了关于装配和蓄能器的模糊说明。这是我需要跟踪输出的程序的一部分(输入值为40和24):

事情还在继续。我知道001-006发生了什么,但在那之后,我被卡在CMP和JEQ上。在006,累加器加载N2,即24,但下一步是CMP,通过谷歌搜索,我发现是使用减法比较两个值。我不知道只有0的时候该怎么办。对于008,JEQ的意思是如果相等的话跳转,那么我假设它只是说“如果n2等于n2,跳转到011,然后从那里继续”对吗


谢谢,这种程序集中的CMP通常会将一个值与参数进行比较,/并设置一个标志/如果它匹配。如果设置了该标志,则JEQ将跳转


如果您告诉我您的目标处理器是什么,我可以更精确地描述它,甚至可以使用正确的术语等等。=)

谢谢您的回答。我想我的老师从来没有告诉过我们目标处理器是什么。她只是根据定义介绍了这些操作,并告诉我们跟踪程序。那么CMP将N2与#0进行比较?什么是#0?我相信#0是“立即零”。#表示数字的字面意思是(0),而不是指向其他位置以查找值。所以,你把它比作“数字零”。
001 IN N1
002 IN N2
003 LDA N1
004 MUL N2
005 STA PR
006 LDA N2
007 CMP #0
008 JEQ 011