程序计数器和指令指针寄存器

本文详细介绍了8086 CPU中的CS(代码段寄存器)和IP(指令指针寄存器)的作用,包括它们如何共同指示CPU读取指令的地址。文章还阐述了系统上电或复位时,CS和IP的初始值设定,并解释了这种设定的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器,从名称上我们可以看出它们和指令的关系。

在8086PC机中,任意时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存M 16+N单元开始,读取一条指令并执行。

也可以这样表述:8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。


x86 系统中自增的是 IP,用 CS:IP 组合表示正在执行的指令地址,此时 PC 只是一个概念上的说法。在 ARM 体系中 R15 就是 PC,当然 ARM 和 IA-32、x64 都支持高级内存管理,所以「PC」的内容未必是当前指令在内存中的绝对位置。


当计算机系统上电开机或者按了机箱上的复位按钮时,CPU会自动把代码段寄存器CS设置为0XF000,其段基地址则被设置为
0XFFFF 0000,段长度设置为64K。而IP则设置为0XFFF0,因此此时CPU代码指针指向0XFFFF FFF0处,即4G空间的最后一个64K的最后16字节处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值