码迷,mamicode.com
首页 > 其他好文 > 详细

第二章 寄存器相关内容总结

时间:2018-10-21 23:23:43      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:存在   物理   总线   方法   学习   存储空间   方案   变化   组成   

      对于一个汇编程序员来说,CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。不同的CPU,寄存器的个数、结构是不相同的。8086CPU有14个寄存器,每个寄存器有一个名称。

      8086CPU的所有寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX、这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。出于对兼容性的考虑,8086CPU可以一次性处理以下两种尺寸的数据。字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中。字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节。

      我们知道,CPU访问内存单元时,要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址称为物理地址。CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。在CPU向地址总线上发出物理地址之前,必须要在内部先形成这个物理地址。不同的CPU可以有不同的形成物理地址的方式。

      8086CPU有20位地址总线,可以传送20位地址,达到1MB寻址能力。8086CPU又是16位结构,在内部一次性处理、传输、暂时存储的地址为16位。从8086CPU的内部结构来看,如果将地址从内部简单的发出,那么它只能送出16位的地址,表现出的寻址能力只有64KB。8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。

      “段地址*16+偏移地址=物理地址”的本质含义是:CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。更一般的说,8086CPU的这种寻址功能是“基础地址+偏移地址=物理地址”寻址模式的一种具体实现方案。8086CPU中,段地址*16可看作是基础地址。

     所以总结来说,CPU访问内存单元时,必须向内存提供内存单元的物理地址。8086CPU在内部用段地址和偏移地址移位相加的方法形成最终的物理地址。CPU可以用不同的段地址和偏移地址形成同一个物理地址。偏移地址16位,变化范围为0~FFFFH,仅用偏移地址来寻址最多可寻64KB个内存单元。比如给定段地址1000H,用偏移地址寻址,CPU的寻址范围为:10000H~1FFFFH。在8086PC机中,存储单元的地址用两个元素来描述,即段地址和偏移地址。

      CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器,从名称上我们可以看出它们和指令的关系。CS存放指令的段地址,IP存放指令的偏移地址。8086机中,任意时刻,CPU将CS:IP指向的内容当做指令执行。

      通过这一章的学习,我们主要从CPU如何执行指令的角度了解了8086CPU的逻辑结构、形成物理地址的方法、相关的寄存器以及一些指令。

第二章 寄存器相关内容总结

标签:存在   物理   总线   方法   学习   存储空间   方案   变化   组成   

原文地址:https://www.cnblogs.com/shxy0523/p/9827546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!