跳转至

汇编语言

assembly language,简称asm

汇编语言就是用文字指令替代机器指令,方便人类读写,它与机器指令是一一对应的,比如ADD对应00000011,但不同架构CPU对应的汇编语言是不一样的

20221118114629

CPU 只负责运算,数据一般存储在内存,但是CPU运行速度远高于内存读写速度,所以有些对性能有要求的数据被存储在一级或二级缓存中,但对于那些频繁读写的数据,使用缓存仍然不够快,于是这些数据便存储在CPU自带的寄存器中。

20221118151320

寄存器不依靠地址而是通过名称查找数据,x86 CPU有8个寄存器,每一个寄存器都有自己的名称和不同的用途。

虽然寄存器很快,但是只能存储少量的数据,数据主要还是放在内存中

程序运行的时候,操作系统会给它分配一段内存,这段内存有起始地址和结束地址,用来储存程序和运行产生的数据。

20221118122912

用户主动请求而划分出来的内存区域,叫做堆(heap),从起始地址开始,由内存的低位地址向高位地址增加,其它内存区域叫做栈,从结束地址开始,由内存的高位地址向低位地址增加

C语言中全局变量存在堆,函数运行结束后需要手动释放,否则会内存泄漏(memory leak),局部变量存在栈,由系统管理,函数运行时进入内存,运行结束时自动清理

先入栈的数据后出栈,后入栈的数据先出栈,比如嵌套函数,内层函数会后被执行,但会先结束运行


最后更新: 2023-04-02