段地址由段寄存器提供。
8086CPU的段寄存器有4个,包括:CS,DS,SS,ES。
CS
而CS是提供代码段的段地址(code segment),而偏移地址是由IP寄存器提供。
在8086CPU中,任意时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存M x 16 + N单元开始读取一条指令并执行。
(注意:当CPU读取一条指令之后,IP中的值会根据读取当前指令的长度自动增加到下一条指令的偏移地址)。
可以通过修改CS,IP寄存器的值控制CPU执行目标指令。可以通过:jmp 段地址:偏移地址来实现修改CS和IP的值。
jmp 2AE3:3,执行后:CS=2AE3H,IP=0003H。
若只想修改IP的值,可以使用“jmp 某一合法寄存器”的指令实现,如:jmp&nb

本文介绍了8086CPU的四个段寄存器——CS,DS,SS,ES的功能和作用。重点阐述了CS如何与IP寄存器配合确定指令执行位置,以及如何通过 jmp 指令改变执行流程。同时,解释了DS寄存器在数据访问中的角色,展示了如何通过DS和偏移地址读取内存单元内容。
1万+

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



