内存分段
程序执行的时候内存是分段使用的
内存分为
代码段(CS, code segment) --存放着程序的执行的代码
数据段(DS, data segment) --静态数据和new请求分配的数据
附加段(ES, extra segment)
堆栈段(SS, stack segment) --就是我们所说的栈,存放形式参数,局部变量,主调函数的断点(函数
调用的后一条指令称为主调函数的断点,堆栈中形式参数,局部变量,主调函数的断点地址称为该函数的
活动记录)
下面讲述程序是如何执行的?
当程序执行时,必须将程序的代码加载到内存的代码段中,同时将第一条指令代码的地址存入到PC寄存器
中,然后每执行一条指令,PC的内容自动加1;当函数发生调用的时候,PC中的内容被更新为被调函数的
第一条指令的地址,当流程重新回到主调函数的时候,PC中的内容被自动更新为主调函数的断点的地址!