
上QQ阅读APP看书,第一时间看更新
1.1 我们如何与计算机对话
如果我们一上来就要求你读懂下面这段代码,你能接受吗?
section .text global _start _start: mov ecx, 10 mov eax, '0' l1: mov [num], eax mov eax, 4 mov ebx, 1 push ecx mov ecx, num mov edx, 1 int 0x80 mov eax, [num] inc eax pop ecx loop l1 mov eax, 1 int 0x80 section .bss num resb 1
这段“天书”会打印0~9的数字。它是用一种低级编程语言——汇编语言编写的。如你所见,低级编程语言与人们日常读写的语言相去甚远。它们主要是为计算机而设计的,并非面向人类。
没人愿意编写这种程序,但在早期,这也是不得已而为之。程序员通过这种手段细致地定义他们希望计算机执行的具体操作,细致到每一条指令。为了从性能不足的计算机中尽可能地榨取性能,这种精细的控制是必需的。20世纪90年代那些对速度要求极高的计算机游戏,例如《毁灭战士》(Doom)和《雷神之锤》(Quake),都是采用上面那种汇编语言编写的。如果不这样做,这些游戏根本开发不出来。