8086CPU工作原理

前言

        我自学汇编到现在,可以说有一段时间了。最近学会了8086CPU的工作原理,连同CS、IP两个特殊的寄存器一起分享给大家~~


CS、IP寄存器介绍

        要理解CS、IP(段地址、偏移地址),可以通过我下面这个形象的比方:

        假设A和B只有两张能容纳三个数字的纸条,而他们需要进行四位数的交流。正常情况下,三个数字的纸条无法容纳四位数,但此时因为有两张纸条,所以A可以预先和B商量好暗号,从而达到通信目的。比如说,A要告诉B8086这个四位数,那么A可以先在一张纸条上写上086,另一张纸条上写800。由于B与A有约定,所以B可以通过800(段地址)*10+086(偏移地址)得到8086(物理地址)这一数据。

        CS、IP就是这样两张纸条。在8086CPU中,这一约定可表示为物理地址=段地址*16+偏移地址


8086CPU工作原理

        前面我们了解了CS、IP,下面我带领大家来学习一下8086CPU的工作原理——

      (以下过程的前提:CS中的内容为2000H,IP中的内容为0000H)

        首先,在CS、IP发生改变后,CPU将CS、IP送入地址加法器,地址加法器利用物理地址=段地址*16+偏移地址求出物理地址。完成计算后,得到的结果数(此处为20000H)送入输入输出控制电路。

        输入输出控制电路将得到的数值送入地址总线。

        内存在得到这个物理地址后,将从内存20000H单元开始存放的机器指令(此处假设为B8 23 01,转化为汇编指令即mov ax,0123H)通过数据总线送回输入输出控制电路。

        输入输出控制电路将命令送入指令缓冲器。此时指令缓冲器会对IP的值进行改变(IP中的数=IP中的原数+指令字节数,例如此处命令B8 23 01长3个字节,因此IP加上3改为0003H)。

        IP完成变更后,执行控制器开始执行命令(此处命令B2 23 01将寄存器ax中的值改为0123H)。

        完成以上操作后,CPU开始根据现有的CS、IP开始执行下一条指令。

        由此可见,CS、IP指示CPU工作的地址,因此,我们需要熟练运用这一点。

        最后补一个小知识:在8086CPU刚开始工作时,CS:IP=FFFFH:0000H,FFFF0H是CPU开机后执行的第一条指令。


结语

        本文一步步讲解了8086CPU的基本工作过程,真正的将这一原理投入应用,才是学习它的最终目的。我是faryou,再见!

本文链接:https://blog.faryou.eu.org/post/88.html 转载需经作者授权!

分享到:

扫描二维码推送至手机访问。

版权声明:本文由faryou的博客发布,如需转载请注明出处。

本文链接:https://blog.faryou.eu.org/post/88.html

标签: 底层
分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。