欢迎关注我,学习更多计算机知识!
上一篇文章讲解了如何制作一台微型计算机,但是这台计算机并不能直接运行起来,因为它还没有软件。
今天我们就来讲讲如何编写一个软件,然后把它输入到这台微型计算机当中执行起来。
编写时可以使用哪种编程语言呢?是 BASIC、C 语言,还是 Java 呢?
其实这些语言在我们这台微型计算机当中都无法使用,因为我们制作的计算机还没有操作系统,无法把C语言等高级语言翻译成机器语言。
而计算机的大脑——CPU,只能解释执行一种编程语言,那就是靠罗列二进制数构成的机器语言(原生代码)。
如下代码是一段用机器语言编写的测试程序:
地址 程序
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
是不是很难看懂?看不懂是正常的,因为这是机器语言只适合机器读取。
程序是指令和数据的集合,表示指令或数据的数值是以 8 比特为一个单位存储到内存中的。
这段程序只实现了一个简单的功能,那就是通过拨动连接到 Z80 PIO 上的指拨开关控制 LED 的亮或灭。
接通了微型计算机的电源后,请按下 Z80 CPU 上的 DMA 请求开关。
在这个状态下,拨动用于输入内存程序和指定内存输入地址的两个指拨开关,把上述代码一行接一行地输入内存。
先来输入第一行代码,拨动用于指定地址的指拨开关,设定出第一行代码所在的内存地址 00000000,然后拨动用于输入程序的指拨开关,设定出程序代码 00111110。
再然后按下用于向内存写入程序的按键开关。 接下来输入第二行代码,设定出内存地址 00000001,设定出程序代码 11001111,再次按下按键开关。
反复进行这三步操作,直至输入完程序 代码的最后一行。所有的指令都输入完成后,按下用于重置 CPU 的按键开关,控制 DMA 请求的快动开关就会还原成关闭状态,与此同时程序也就运行起来了。
“太棒了,终于成功了!”这真是令人激动的一瞬间啊。
程序一旦运行起来,就可以用第 3 个指拨开关控制 LED 的亮与灭。只要拨动指拨开关,LED 的亮灭就会随之改变。
LED 并不会只亮 一下,而是一直亮着,时刻保持着指拨开关上的状态
现在活跃在计算机行业的一线工程师们,他们大多数都在年轻的时候玩过微型计算机。
大家可以拿这篇文章给他们看,他们也许会这样说:现在还有人玩这个?
不过不管怎么说,对计算机理解程度的深浅还是和有没有制作过微型计算机有很大关系的。
只有制作过微型计算机,才知道制作计算机的复杂,因为收集零件就费了不少劲。而在单片机广泛应用的今天,CPU、I/O、内存都被集成到了一块 IC 上。
不过,话又说回来,即便只是在纸上体验制作微型计算机的过程,也还是非常有益的。大家跟着我制作了微型计算机,这一体验可以加深大家对计算机的理解,使你们越来越喜欢计算机。
欢迎关注我,学习更多计算机知识!
,