深入理解x86 CPU寄存器与编程模型
1. 内存地址与寄存器基础
1.1 MyByte地址示例
MyByte可能有以下三种地址:
- 0000 : 0029
- 0001 : 0019
- 0002 : 0009
可以将段地址看作实模式下64K范围的起始位置,通常会移动这个范围以涵盖工作位置,然后在64K范围内移动操作。
1.2 16位和32位寄存器
1.2.1 段寄存器
x86 CPU中有专门用于保存段地址的段寄存器,不同CPU型号的段寄存器数量有所不同:
| CPU型号 | 段寄存器数量 | 段寄存器名称 |
| ---- | ---- | ---- |
| 8088、8086、80286 | 4个 | CS、DS、SS、ES |
| 386及以后 | 6个 | CS、DS、SS、ES、FS、GS |
各段寄存器的功能如下:
- CS(代码段寄存器) :保存当前执行指令所在代码段的段地址。
- DS(数据段寄存器) :保存当前使用的数据段的段地址,CPU一次只能使用一个数据段。
- SS(堆栈段寄存器) :保存堆栈段的段地址,堆栈用于临时存储数据和地址。
- ES(额外段寄存器) :备用段,可用于指定内存位置。
- FS和GS :仅存在于386及以后的x86 CPU中,是ES的克
超级会员免费看
订阅专栏 解锁全文
944

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



