前些章讲过CPU只能识别本地代码,但如果直接看本地代码会发现根本看不懂,因而诞生了汇编语言,汇编语言也就是在本地代码上加上相关的助记符,例如在加法运算的本地代码中加上add(addition的缩写),汇编语言与本地代码是一一对应的,但想要运行汇编语言也得将源代码转换成本地代码,而负责这一工作的程序就称为汇编器,负责将本地代码转换为汇编语言的程序称为反汇编程序。汇编语言的源代码是由转换成本地代码的指令和针对汇编器的伪指令构成,伪指令负责把程序的构造及汇编的方法指示给汇编器,由伪指令segment和ends围起来的部分称为段定义,汇编语言指令的语法为操作码+操作数(也有部分指令没有操作数)操作码表示指令动作,操作数表示指令对象。操作码和操作数组成的语法就是一个英文的指令文本,操作码是动词,操作数是宾语。能够使用任何形式的操作吗是由CPU类型决定的,本地代码加载到内存后才能运行,内存中存储着构成本地代码的指令和数据,程序运行时CPU会从内存中把指令和数据读出,然后再将其存储在CPU内部的寄存器(CPU中的存储区域,不仅具有存储指令和数据的功能,也有运算功能)中进行处理。程序运行时,会在内存上申请分配一个称为栈的数据空间。数据在存储时是从内存的下层(大的地址号)逐渐往上层(小的地址编号)累积,读取时则是按照从上到下进行的。栈是存储临时数据的区域,他的通过push指令和pop指令进行数据的存储和读取,往栈中存储数据称为入栈,从栈中读取数据称为出栈。编译器的最优能的目的是让编译后的程序运行速度更快、文件更小。函数的参数是通过栈来传递的,返回值是通过寄存器来返回的。标签表示是相对于段定义起始位置的位置。函数内部利用栈,在函数处理完毕后会恢复到初始状态,因此局部变量的值就销毁了,因此局部变量只是在函数出力运行期间临时存储在寄存器和栈上,寄存器空闲时就使用寄存器,寄存器空间不足就使用栈
标签:存储,汇编语言,第十章,代码,程序,指令,寄存器,CPU,怎样 From: https://www.cnblogs.com/ghost109/p/18044913