1. 寄存器、内存和寻址
1.寄存器和内存
寄存器(Register)是 CPU的组成部分,是有限存储容量的告诉存储部件,用来暂存指令、数据和地址。一般的IA-32即x86架构的处理器中包含以下几个寄存器:
-
通用寄存器:EAX、EBX、ECX、EDX、ESI、EDI。
-
栈顶指针寄存器:ESP、栈底指针寄存器:EBP。
-
指令计数器:EIP(保存下一条即将执行的指令的地址)。
-
段寄存器:CS、DS、SS、ES、FS、GS。
对于x86-64架构,在以上寄存器基础上,将前缀的E改成R,以标记64位,同时增加了R8~R15这八个通用寄存器。
除此之外,CPU中还存在一个标志寄存器,其中的每位表示对于标志位的值,常用标志位如下:
- AF:辅助进位标志,当运算结果在第3位时置1;
- PF:奇偶校验标志,当运算结果的最低有效字节有偶数个时置1;
- SF:符号标志,有符号整型的符号位为1时置1,代表是负数;
- ZF:零标志,当运算结果为全0时置1;
- OF:溢出标志,当运算结果在被操作数是有符号数且溢出时置1;
- CF:进位标志,运算结果向最高位以上进位时置1,用来判断无符号数的溢出。
2.CPU的寻址方式
| 寻址方式 | 示例 | 操作对象 |
|---|---|---|
| 立即寻址 | 1000h | 1000h这个数字 |
| 直接寻址 | [1000h] |

本文详细介绍了x86与x64架构下的寄存器、内存及寻址方式,包括不同架构下的寄存器差异、CPU寻址方式、汇编语言基本格式、反汇编算法、调用约定等内容,并对局部变量的存储方式进行了阐述。
最低0.47元/天 解锁文章
1033

被折叠的 条评论
为什么被折叠?



