电脑能识别的只有机械语言,即由1和0组成的数字串。这是因为电子电平只有正负,一般正表示为1,负表示为0。不过也有相反的情况。程序则是人输入指令序列让计算机执行,计算机会按顺序执行这些指令,这些指令可以理解为CPU的动作,每一条指令就是一个动作。指令是最底层的语句,从软件角度看不可再被分解。
人机交互中,人使用的是人类语言,而计算机则使用机械语言。为解决这个问题,汇编语言应运而生。汇编语言是最接近机械语言的编程语言,从人的角度看是最底层的语言。当编写好汇编程序后,通过编译器将其转化为机械语言。
计算机体系有外存储器(硬盘等),编译好的程序会保存在硬盘上,这个过程是CPU发出IO命令,将内存中的内容保存回硬盘。当用编辑器打开可执行文档时显示的那些莫名其妙的字符,是因为需要将硬盘里的文件传送到内存,内存中的表示是CPU的指令集合,即1和0组成的字符串。编辑器打开文件时需要指定编码方式,即将1和0转化成文字的映射方式。
C语言是一种“中层语言”,既接近底层又是一种高级语言。C的编译器通常是由汇编语言编写的。编译时,编译器会将C语言转化为比C更底层的语言,即汇编语言,然后调用汇编编译器生成汇编程序,最后生成可执行文件。
大型游戏中除了exe文件外,还有动态链接库、配置文件、资源文件等,这些文件是供游戏运行时调用或读取的。这些文件的共同点是它们都包含指令集合,而非文字内容,因此用某种编码方式查看时可能会出现乱码。
以上所述可能在细节描述上有些模糊,但大致原理就是这样的。
下载本文