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

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

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

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

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


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

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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值