汇编语言_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当前的状态开始执行。
在这里插入图片描述

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

  • 7
    点赞
  • 21
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

Mr_WangAndy

你的鼓励,激励我前行

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值