《程序是怎样跑起来的》第十章

本章前半部分,对CPU解释运行的本地代码和汇编语言的一对一关系进行说明;后半部分介绍了局部表量和全局变量的不同等。
汇编语言是将本地代码附带表示功能的英语单词缩写,如add、cmp等。汇编语言不能直接被CPU识别运行,还是要转化为本地代码才能运行。转换的程序被称为汇编器,处理行为被称为汇编。可用汇编语言写源代码并转换为本地代码运行,也可以从本地代码由反汇编程序转换为汇编语言,这一行为被称为反汇编。C语言编译器也可以将源代码转换为汇编语言源代码。
汇编语言的语法是操作码+操作数。

mov指令是对寄存器和内存进行数据存储的mov指令。mov指令的两个操作数分别用来指定存储的和读出源。栈是存储临时数据的区域。栈从内存最下层逐渐往上层积累,读取时则是从上往下进行。push指令为存储,pop指令为读出。
函数的参数是通过栈来传递的,返回值是由寄存器来返回的。c语言中全局变量第一在函数外部,相应的内部就是局部变量。由于局部变量临时保存在寄存器和栈中,函数处理完毕后则会恢复到初始状态。因此,局部变量只在函数处理运行期间临时储存。
高级语言的循环处理和条件分支在汇编语言里面都用到了cmp指令和跳转指令。

posted @ 2024-02-26 23:07  咲张  阅读(3)  评论(0编辑  收藏  举报