2.10 输入测试程序并进行调试
微型计算机终于顺利地制作出来了,诸位辛苦了!微型计算机接上电源就能用了吗?其实还不能,因为尽管硬件组装好了,但若没有输入程序,计算机还是不能工作的。所以即使为微型计算机接通了电源,它也什么都执行不了
下面就编写一段测试程序吧。编写时可以使用哪种编程语言呢?是BASIC、C语言还是Java呢?其实这些语言都无法使用,因为作为计算机大脑的CPU只能解释执行一种编程语言,那就是靠罗列二进制数构成的机器语言(原生代码)。代码清单2.1展示了一段用机器语言编写的测试程序。程序是指令和数据的集合,表示指令或数据的数值为8比特为一个单位存储到内存中的。这段程序只实现了一个简单的功能,那就是通过拨动连接到Z80 PIO上的指拨开关控制LED的亮或灭。有关机器语言的细节将在接下来的第3章中介绍
代码清单2.1 用机器语言编写的测试程序
地址 程序
00000000 00111110
00000001 11001111
00000010 11010011
00000011 00000010
00000100 00111110
00000101 11111111
00000110 11010011
00000111 00000010
00001000 00111110
00001001 11001111
00001010 11010011
00001011 00000011
00001100 00111110
00001101 00000000
00001110 11010011
00001111 00000011
00010000 11011011
00010001 00000000
00010010 11010011
00010011 00000001
00010100 11000011
00010101 00010000
00010110 00000000
接通了微型计算机的电源后,请按下Z80 CPU上的DMA请求开关。在这个状态下,拨动用于输入内存程序和指定内存输入地址的两个指拨开关,把代码清单2.1所示的程序一行接一行地输入内存。先来输入第一行代码,拨动用于指定地址的指拨开关,设定第一行代码所在的内存地址00000000,然后拨动用于输入程序的指拨开关,设定出程序代码00111110,再按下用于向内存写入程序的按键开关。接下来输入第二行代码,设定内存地址00000001,设定出程序代码11001111,再次按下按键开关。反复进行这三步操作,直到输入完程序代码的最后一行,所有的指令都输入完成后,按下用于重置CPU的按键开关,控制DMA请求的快动开关就会还原成关闭状态,与此同时程序也就运行起来了,“太棒了!终于成功了!”这真是令人激动的一瞬间啊(如照片2.2所示)
照片2.2 运行中的微型计算机
程序一旦运行起来,就可以用第3个指拨开关控制LED的亮与灭。只要拨动指拨开关,LED的亮灭就会随之改变。LED并不会只亮一下,而是一直亮着,时刻保持着指拨开关上的状态
如今活跃在计算机行业的第一线的工程师们,多数都在年轻时候玩过微型计算机。诸位可以把这本书拿给他们看,他们也许会说:现在还有人玩这个?不过不管怎么说,对计算机理解程序的深浅还是和有没有制作过微型计算机有很大关系的
笔者真的按图2.1所示的电路图制作过微型计算机,收集零件就费了不少劲。而在单片机广泛应用的今天,CPU、I/O、内存都被集成到了一块IC上。可话又说回来,即便只是在纸上体验制作微型计算机的过程,也还是非常有益的。诸位在本章制作了微型计算机,想必这一体验会加深诸位对计算机的理解,使诸位越来越喜欢计算机
在接下来的第3章中,笔者会先用汇编语言为微型计算机编写程序,然后尝试“手工汇编”,即以手工作业的方式将这段程序转换成机器语言(原生代码)。敬请期待!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论