[关闭]
@bintou 2017-11-15T22:43:01.000000Z 字数 540 阅读 1785

CSI第六章作业

CSI 实例 汇编代码


题目

用Pep/8汇编语言写满足这样功能的程序:键盘输入一个整数n,求1+2+...+ n的结果,并输出最终结果。

答案示例

  1. ;答案不唯一,仅供参考
  2. BR main; 跳过数据定义进入主程序
  3. sum: .WORD 0x0000 ; 最终结果初始值为0
  4. num: .BLOCK 2 ; Set up a two byte block for input value
  5. ;以上为数据定义
  6. main: DECI num, d ; 输入一个正整数
  7. loop: LDA num, d
  8. ADDA sum, d
  9. STA sum, d ; 以上三行完成sum = sum + num
  10. LDA num, d
  11. SUBA 1, i
  12. STA num, d; 以上完成 num--
  13. CPA 0, i; num0比较
  14. BREQ quit; goto quit if num equals 0
  15. BR loop; repeat loop
  16. quit: DECO sum, d; output sum
  17. STOP
  18. .END

作业点评

存在以下问题:
- 对变量的定义概念含糊。
- 对程序运行的流程不够清晰,主要体现在死板地参考其他题的答案,又不能灵活地运用到新的程序中。
- 缺乏学习主动性。
- 胆子太小,轻易被稍微难(陌生)一点的知识点吓跑。

思考题

这里的答案给出一个用两个变量实现的例子,请问能否只用一个变量就可以完成计算?如果可以,应该如何做?如果不行,为什么?

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注