Machine-Level Representation of Programs

计算机执行的是机器码(machine code),即一串编码了底层操作的字节序列,这些操作执行着数据操控、内存管理、存储设备读写以及网络通信等任务。编译器根据编程语言的语法规则、目标机器的指令集以及操作系统遵循的约定来生成机器码。GCC C 语言编译器会先生成汇编代码(assembly code),这是机器码的一种文本表示形式,是程序中一条条具体的指令。接着,GCC 会调用汇编器(assembler)和链接器(linker),将汇编代码最终转化为可执行的机器码。