构建程序的方法
所谓编程,是为了让电子通过电子器件或电路帮助我们解决问题,即从自然语言的问题描述到使控制电路工作的多层转换。在这里,我尝试描述一下在汇编器中编程的整个流程:
- 首先,我们通过键盘输入程序,键盘包含了特定的逻辑阵列,当一个按键按下,则会控制逻辑阵列中对应的逻辑单元将输入电平转化为有序的高低电平,我们可用二进制0,1表示,而有序的0,1排列,构成了对应字符的ASCII码,该ASCII码将存入键盘的寄存器中,通过计算机控制单元的控制信号将寄存器内容回显在屏幕上;当一个程序写好后,汇编器将汇编语言翻译成机器语言(这个过程在下一章中将详述),存放入内存中,通过PC指向程序的入口,开始执行程序。
一般,程序有三种结构:顺序、条件、循环。这三种都是编程中常见的结构,在此不再详述。本书中,提出的“结构化编程”,即要求我们将问题系统地分解成多个独立的模块,每个独立的模块都能够独立运行和调试。这也是我们构建程序的基本思想。
调试bug的方法
采用LC-3调试器来说明调试的几个基本操作:
- 赋值:一般一个模块都有一个数据入口,来收集外部模块传进的信息,而此时我们可以直接为对应的寄存器赋值来跳过收集信息的过程
- 控制指令序列的执行:直接运行,单步或多步跳步执行,断点执行
- 内容查看:在模拟器停止执行程序时,查看我们关心的内存单元或寄存器的值