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

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

第一步:初始状态

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

在这里插入图片描述

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

将CS 和IP寄存器中的内容送入地址加法器,地址加法器按照“”短地址*16 + 偏移地址 = 物理地址”的方式计算物理地址,如下图所示:
在这里插入图片描述

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

地址加法器将计算好的物理地址,送入输入输出控制电路,过程如下:
在这里插入图片描述

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

输入输出电路将物理地址20000H送上地址总线:
在这里插入图片描述

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

从内存20000开始的位置存放的指令 B8 23 01通过数据总线送至CPU;
在这里插入图片描述

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

输入输出电路,接收到指令后开始处理:通过数据总线穿过来的B8 23 01送入指令缓存器中。
在这里插入图片描述

第七步: IP值自动增加

CPU读取一条指令后,IP中的值自动增加,因为当前读取的指令长度为3字节,所以IP的值自动加3;此时CS:IP指向的内存单元为:2000H:0003H
在这里插入图片描述

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

执行控制器开始执行指令B8 23 01
在这里插入图片描述

第九步: 执行指令后

执行控制器执行指令后,AX中的内容为0123H;至此,一条指令执行完毕。执行CPU在执行下一条指令时,以CS:IP当前的状态开始执行。
在这里插入图片描述

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值