随笔二十五:IA32 机器代码中一些对 C 程序员隐藏的处理器状态可见

1、程序计数器 (在 IA32 中,通常称为 “PC”,用 %eip 表示)指示将要执行的下一条指令在存储器中的地址。

2、整数寄存器文件 包含 8 个命名的位置,分别存储 32 位的值。这些存储器可以存储地址(相对于 C 语言的指针)或整数数据。有的寄存器被用来记录某些重要的程序状态,而其他的寄存器则用来保存临时数据,例如过程的局部变量和函数的返回值。

3、条件码寄存器保存着最近执行的算数或逻辑指令的状态信息。它们用来实现控制或数据流中的条件变化,比如说用来实现 if 和 while 语句。

4、一组浮点存储器存放浮点数据。


机器代码只是简单地将存储器看成一个很大的、按字节寻址的数组。

程序存储器(program memory)包含:程序的可执行机器代码,操作系统需要的一些信息,用来管理过程调用和返回的运行时栈,以及用户分配的存储器块(比如用malloc库函数分配的)。程序存储器是用虚拟地址来寻址。在任意给定的时刻,只认为有限的一部分虚拟地址是合法的。操作系统负责管理虚拟地址空间,将虚拟翻译成实际处理器存储器(processor memory)中的物理地址。


一条机器指令只执行一个非常基本的操作。

你可能感兴趣的:(c,存储,语言)