郑文盯着眼前的屏幕,他很快熟悉了这台机器的系统。
郑文面前的系统是英特尔公司制作的Windows 10系统,然而这个系统只是整个系统的一部分。
眼前的操作系统和整个系统的关系,就好比大脑和四肢的关系。郑文通过它控制其他的设备。
当然,郑文现在面对一个严峻的问题,设备上的软件都被清空了,他没法进行任何有意义的行动。
郑文现在可以输入任何一种命令,得到每一台设备的信息。他可以手动控制机器,可是他不可能每时每刻都盯着设备不放。
他需要一系列的程序来控制这座基地,但是再编这些程序之前,他需要一个编译器。
程序员编程时,并不是把程序直接存入电脑。他们会先编辑出程序的“文本”,然后再把“文本”变成程序,这个过程就需要编译器。
程序的文本可以用任何一种程序语言写出来,比如Python,c#。编译器会把他们翻译为二进制代码,也就是源代码,后者是可以运行的程序。
问题是,编译器本身也是程序。而在编其他程序以前,郑文需要制造一个编译器,他就不能使用其他语言编程了。
他只能用一种语言编程,汇编语言。
严格来说,汇编程序也不是可以直接执行的程序,但是它是微软系统可以识别的程序。微软系统有一套指令,能把汇编语言的文本翻译成程序。在这个过程中,文件的格式会从txt变成exe。
郑文现在要做的,就是利用汇编语言,编出一个c语言的编译器。
想到这里,郑文的嘴角露出自信的微笑。
汇编语言,是计算机软件的基础。其它的所谓高级语言,并不是另外的语言,它们实际上都被翻译成了汇编语言,然后再执行。
举个例子,要计算1+1=2,高级语言只需要写下等号左边的式子就行,但是对于汇编语言来说,这个过程要复杂的多。
左边的两个1需要存在存储器上,他们存于何处?得到的结果也需要存起来,又存于何处?这些都是必须考虑的问题。
为了体现这些信息,汇编语言规定,一个命令至多两个地址,和一个动作,每个命令的结果都约定俗成的放在指定位置。
这就好像两个人去买菜,高级语言的写法是,我和你去市场买萝卜和白菜;而汇编语言的写法是,我去市场
你去市场
箩卜是菜
白菜是菜
我买菜
你买菜
这样,汇编语言的格式就跟死板,然而这样的格式有个好处,就是准确。
计算机能处理的信息是有限的,对于人类来说,我和你和你和我是一个意思,但是对于计算机来说,这是两种表达。
如果人类给计算机的命令太复杂,计算机就需要更多的准备来理解命令,计算机的效率也就会下降。
反之,命令越简单,虽然程序也越长,但是计算机理解得也快,程序反而高效,这就是汇编语言的意义。
在这个时代,理解汇编语言的奥秘的人,不多了。
郑文想到这里,惆怅之情油然而生。