0206 CS、IP与代码段

两个关键的寄存器

CS:代码段寄存器,其内容作为段地址

IP: 指令指针寄存器,其内容作为偏移地址

CS:IP:CPU将内存中CS:IP指向的内存物理地址当作指令执行

image-20230903135739765

示例:在CS和IP指示下代码的执行

8086CPU当前状态

  • CS中内容为2000H
  • IP中内容为0000H

内存20000H~20009H处存放着可执行的机器代码,其执行过程如下图所示

Video_2023-09-03_140451

8086PC工作过程的简要描述:

(1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;

(2)IP = IP + 所读取指令的长度,从而指向下一条指令(指令长度的确定有其规定,比如操作数只涉及寄存器的指令,指令长度为2字节);

(3)执行指令。 转到步骤(1),重复这个过程。

指令读取和执行的实证演示-Debug验证8086CPU的工作过程

1、a命令:往CS:IP = 2000:0000处写入汇编指令

image-20230903141417940

2、u命令:查看CS:IP = 2000:0000汇编指令

image-20230903141459447

3、t命令:逐条单步执行CS:IP = 2000:0000处汇编指令

image-20230903141714684

CPU会把CS:IP指向的内存单元中的内容作为指令而非狭义的数据

问:内存中有数据 B8 23 01 BB 03 00 89 D8 01 D8,究竟用作一般数据,还是用作指令?

答:CPU将CS:IP指向的内存单元中的内容看作指令!

站内搜索

没有找到内容!