《程序是怎样跑起来的》第十章
汇编语言和本地代码是一一对应的,计算机 CPU 能直接解释运行的只有本地代码程序。高级语言等编写的源代码,需要通过各自的编译器编译后,转换成本地代码。通过调查本地代码的内容,可以了解程序最终是以何种形式来运行的。如果直接打开本地代码来看的话,只能看到数值的罗列。即使是用汇编语言编写的源代码,最终也必须要转换成本地代码才能运行。本地代码也可以反过来转换成汇编语言的源代码。持有该功能的逆变换程序称为反汇编程序,逆变换这一处理本身称为反汇编。
除了将本地代码进行反汇编这一方法外,通过其他方式也可以获 取汇编语言的源代码。大部分C语言编译器,都可以把利用C语言编写的源代码转换成汇编语言的源代码,而不是本地代码。
汇编语言的源代码,是由转换成本地代码的指令(后面讲述的操作码)和针对汇编器的 伪指令构成的。伪指令负责把程序的构造及汇编的方法指示给汇编器(转换程序)。不过伪指令本身是无法汇编转换成本地代码的。
指令中最常使用的是对寄存器和内存进行数据存储的 mov指令。 mov 指令的两个操作数,分别用来指定数据的存储地和读出源。
通过这一章,我们了解到程序是怎么被编写和运行,通过反汇编程序转换源代码