发布之前的编辑:所以我有点基本上都认为这一切都是在我自己完成之后才完成的,整个freakin的问题被打出来并整齐排列。为了不为无功而工作,无论如何我都会发布这个消息,询问这是否正确,并征求任何建议/意见。我仍然不确定一件事。制作一个简单的汇编程序语言程序需要帮助
好的,所以我是计算机科学的完全noob。现在我正在学习汇编语言和机器语言编程。这是一个家庭作业问题,所以请帮助我理解,不要把答案扔在我的脸上。我试图编写一个程序,使用分支条件(一个循环)从1到20(答案是210)的数字总和。使用
的口诀是:
L for load
A for Add
St for store
BC for branch on condition
C for compare
CH for channel
有10个寄存器放东西进去。所以基本上我必须做2件事:1)找出一种方法来合计从1到20的所有数字(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + ...) +20),其中包括制作一个循环,并且2)创建一个计数器,以便当它达到二十时知道停止。这是正确的吗??
START L R1,COUNT
A R1,ONE
ST R1,COUNT
A R2,COUNT
C R1,TWENTY
BC 3,???
ST R2,SUM
CH SUM
STOP
COUNT DC F'0'
ONE DC F'1'
TWENTY DC F'20'
END START
所有这一切都是说:将COUNT的内容(以0开头)加载到Register1。将ONE添加到Register1的内容(即1)。将这个在Register1中的新号码存入COUNT。将这个新号码添加到Register2。将COUNT的内容与TWENTY的内容(即20)进行比较。如果COUNT内部的数字小于或等于20,则分支(/重复)(3是条件代码)。一旦计数器达到20,条件将被破坏,指令将进入下一行,即:将寄存器2中的数字(现在应该是210)存储到变量SUM中。然后调用CHannel在I/O设备上显示SUM的内容。然后停止。
现在......我不知道如何指定分支/返回到开始,所以它重复该过程,直到计数器达到20为止。我也不确定是否应该将COUNT指定为0或不。
感谢您的任何/所有帮助。
+1写得很好的第一个问题!您可以投票或接受您认为有用的答案。 –