读过前面的章节后,我们可以了解到在前面章节中已经多次提到,计算机 CPU能直接解释运行的只有本地代码。用C语言等编写的源代码,需要通过各自的编译器编译后,转换成本地代码。在各本地代码中,附带上表示其功能的英语单词缩写,这些缩写称为助记符,使用助记符的编程语言称为汇编语言。这样,通过查看汇编语言编写的源代码,就可以了解程序的本质了。不过,即使是用汇编语言编写的源代码,最终也必须要转换成本地代码才能运行。负责转 工作的程序称为汇编器,转换这一处理本身称为汇编。另外,用汇编语言编写的源代码,和本地代码是一一对应的。因而,本地代码也可以反过来转换成汇编语言的源代码。持有该功能的逆变换程序称为反汇编程序,逆变换这一处理本身称为反汇编。如果学会汇编语言源代码,就会感觉它很简单。汇编语言的源代码,是由转换成本地代码的指令和针对汇编器的伪指令构成的。伪指令负责把程序的构造及汇编的方法指示给汇编器 。不过伪指令本身是无法汇编转换成本地代码的。由伪指令 segment 和ends围起来的部分,是给构成程序的命令和数据的集合体加上一个名字而得到的,称为段定义°。 段定义指的是命令和数据等程序的集合体的意思。一个程序由多个段定义构成。源代码的开始位置,定义了3个名称分别为TEXT、DATA、BSS的段定义。TEXT是指令的段定义,DATA是被初始化 的数据的段定义,BSS是尚未初始化的数据的段定义。类似于这种段定义的名称及划分方法是Borland C++的规定,是由Borland C++的编译器自动分配的。
这样也确保了内存的连续性。指令中最常使用的是对寄存器和内存进行数据存储的mov 指令。 mov指令的两个操作数,分别用来指定数据的存储地和读出源。C语言中,在函数外部定义的变量称为全局变量,在函数内部定义的变量称为局部变量。全局变量可以参阅源代码的任意部分,而局部变量只能在定义该变量的函数内进行参阅。另外,了解程序运行的方式可以让我们更好的理解计算机的运行机制。