10、深入理解x86 CPU的内存寻址与编程模型

深入理解x86 CPU的内存寻址与编程模型

1. 内存地址与寄存器基础

MyByte可能拥有三种地址:
| 段地址 | 偏移地址 |
| ---- | ---- |
| 0000 : 0029 | |
| 0001 : 0019 | |
| 0002 : 0009 | |

在实模式分段模型汇编语言中,段地址就像是实模式64K视野的起始位置。通常,我们将这个“视野”移动到想要操作的位置,然后在其64K的范围内进行操作。

x86 CPU有专门用于存储段地址的段寄存器,8088、8086和80286有4个段寄存器,386及以后的CPU在实模式下还多了2个。所有段寄存器都是16位的,无论CPU是多少位。以下是各段寄存器的含义:
- CS(代码段寄存器) :存储当前执行指令所在代码段的段地址。
- DS(数据段寄存器) :存储当前使用的数据段的段地址,CPU一次只能使用一个数据段。
- SS(堆栈段寄存器) :存储堆栈段的段地址,堆栈用于临时存储数据和地址。
- ES(附加段寄存器) :备用段,可用于指定内存中的位置。
- FS和GS :仅存在于386及以后的x86 CPU中,是ES的克隆,没有特定任务。

2. 通用寄存器

段寄存器主要用于存储段地址,而x86 CPU还有通用寄存器来完成汇编语言计算的其他工作。通用寄存器可用于存储偏移地址、进行算术运算、位操作等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值