从小就对计算机的组成十分好奇:人是如何造出一台能思考的机器的?复杂哪怕如手表,也可以在科普读物的介绍中大致想象得到原理;但对于计算机,或者“电脑”,理解它的原理可就费劲得多了。
后来接触了编程,知道电脑上的软件和游戏是通过编程创作的;而计算机程序最终会被翻译成二进制的机器指令。同时也了解到,组成计算机的基本元素是晶体管;通过晶体管的开关特性能设计出“与”、“或”等逻辑门结构(早期计算机也有用电子管或者继电器等)。但这中间总有一块缺失的拼图:那么简单的逻辑门是如何组成如此复杂的、能执行程序的计算机的?
某反汇编程序的截图对我来说,这个答案知道上大学之后才逐渐清楚起来:知道什么是寄存器等。
之所以提起这个话题,是因为最近看到国外一个人(猜测是俄国人)做了一个游戏:nandgame,教人如何一关一关地从一个简单的“与非门”组装一个简单的计算机。通过玩这个游戏,可以体验到称得上二十世纪最伟大发明之一的计算机是如何一步一步诞生出来的。同时也可以增加对计算机组成的认识。最重要的还是满足自己的好奇心。
nandgame的截图因为这个游戏和自己的经历共鸣实在很大,所以就联系了作者并花时间将其翻译成中文。包括每一关中有一定篇幅的的原理解释(“关卡说明”部分)。
在电脑上输入nandgame.com就可以玩这个游戏。点击右上角的“中文”可以将界面和文字切换成中文。
网友评论