汇编语言_8086CPU读取、执行指令的过程

这篇文章记录一下,8086CPU读取指令执行的过程。
CPU当前的状态如下图所示:
汇编语言_8086CPU读取、执行指令的过程_第1张图片
CS中的内容为2000H,IP为0000H;在内存中20000H-20009H的内存单元中。
假如CPU要执行上面内存单元中的汇编指令,执行过程如下:

第一步:初始状态

初始状态:CS:2000H,ip:0000H,CPU将从内存2000H*16+0000H=20000H内存单元中读取指令,如下图所示。

汇编语言_8086CPU读取、执行指令的过程_第2张图片

第二步 将CS IP送入地址加法器

将CS 和IP寄存器中的内容送入地址加法器,地址加法器按照“”短地址*16 + 偏移地址 = 物理地址”的方式计算物理地址,如下图所示:
汇编语言_8086CPU读取、执行指令的过程_第3张图片

第三步:送出计算好的物理地址

地址加法器将计算好的物理地址,送入输入输出控制电路,过程如下:
汇编语言_8086CPU读取、执行指令的过程_第4张图片

第四步:输入输出电路将地址送上地址总线

输入输出电路将物理地址20000H送上地址总线:
汇编语言_8086CPU读取、执行指令的过程_第5张图片

第五步: 内存将指令送入CPU

从内存20000开始的位置存放的指令 B8 23 01通过数据总线送至CPU;
汇编语言_8086CPU读取、执行指令的过程_第6张图片

第六步: 输入输出控制电路接收到指令并处理

输入输出电路,接收到指令后开始处理:通过数据总线穿过来的B8 23 01送入指令缓存器中。
汇编语言_8086CPU读取、执行指令的过程_第7张图片

第七步: IP值自动增加

CPU读取一条指令后,IP中的值自动增加,因为当前读取的指令长度为3字节,所以IP的值自动加3;此时CS:IP指向的内存单元为:2000H:0003H
汇编语言_8086CPU读取、执行指令的过程_第8张图片

第八步: 执行控制器执行指令

执行控制器开始执行指令B8 23 01
汇编语言_8086CPU读取、执行指令的过程_第9张图片

第九步: 执行指令后

执行控制器执行指令后,AX中的内容为0123H;至此,一条指令执行完毕。执行CPU在执行下一条指令时,以CS:IP当前的状态开始执行。
汇编语言_8086CPU读取、执行指令的过程_第10张图片

注意:上边的图是汇编语言第四版书上的原图。

你可能感兴趣的:(汇编语言,CPU执行过程,CS寄存器,IP寄存器)