您的位置:首页 > 其它

关于微机原理个人的一些总结(1)

2017-10-22 14:06 309 查看
      嗯,其实这是我第一次写博客。写博客的原因实话实说其实也是很利己的,那就是对自己学习过的知识进行一定的总结与归纳吧,如果能对各位初学微机原理的同学给与一定的启发的话那么真的是本人的荣幸了。先声明本人不才,有不足之处,还望前辈请多多指教。    我们今天讲的微机原理其实很大部分都是来描述80x86cpu的运行,80x86cpu虽然并不是人类第一款cpu,但却也是最为跨越时代的一款cpu,可以说它独创的x86架构影响了电脑行业之后三十多年来的发展,可谓是影响深远。80x86cpu是一个十六位的微处理器芯片,由40个引脚构成,从功能上可以划分为:总线接口部件BIU和执行部件EU。(下图摘抄于百度百科)。      总线接口部件的功能是负责cpu与外部设备传送指令代码或者数据。它由四个十六位的段地址寄存器、十六位的指令寄存器、二十位的地址加法器、六字节的指令队列缓冲器、十六位的内部暂存器和总线逻辑控制器所组成.。(下图摘自hulianwang)      现在让我们来讨论下各个段寄存器的作用,在此之前我们必须先对寄存器进行一定的了解。寄存器是中央处理器内的组成部分,是有限贮存容量的高速贮存部件,在中央处理器中用来暂存指令、地址和数据。(此段资料参考于百度百科)在我们要学习的80x86cpu中总共有14个16位的寄存器,按照其用途可以分为通用寄存器、指针指令、标志寄存器和段寄存器四种。    通用寄存器由Ax、BX、CX、DX组成。四者的功能如下:(1)AX:十六位的累加器,允许划分为八位的累加器AH、AL来使用;(2)BX:十六位的基址寄存器,也可以划分为 八位的BH、BL来使用,常被用来间接寻址;(3)CX:十六位的计数器寄存器,同样可以划分为两个八位寄存器:CH、CL使用,在8086cpu中作为程序循环计数寄存器,CL被单独出来作为程序移位寄存器使用。(4)DX:十六位的数据寄存器,同样可以划分为两个八位的寄存器来使用,在指令系统中作为I/O指令专用间接寻址寄存器来使用。
然后我们要解说的是专用寄存器,专用寄存器分为BP(基址指针寄存器)、SP(堆栈指针寄存器)、SI(源变址指针寄存器)、DI(目的地址寄存器)四种。接下来我们要对这四种专用寄存器进行解析:(1)BP:基址指针寄存器,通常在间接寻址中使用,操作数在堆栈段中,由SS段寄存器和BP组合形成操作数的地址,即BP中存放现行堆栈段中的一个数据区的"基址"的偏移量。(2)SP:堆栈指针寄存器,系统入栈和出栈的指令过程即该寄存器给出的栈顶指针的偏移地址存取位于堆栈段中的数据的过程,在此过程中堆栈指令SP指令会自动修改。(3)SI:源变址寄存器,用来存放相对于DS段之源变址指针。(4)DI:目的变址寄存器,主要用来存放相对于DS、ES段的目的变址指针,进行串操作时,SI、DI必须分别与DS、ES联用,这是一种规定。
接下来要说的是标志寄存器(psw),标志寄存器主要是用来存放操作后的状态特征和人为设置的控制标志,分为状态标志和控制标志,由于该片章的内容过长,且多为记忆性内容,也就不一一罗列了。
    段地址寄存器是为了对内存进行分段管理而设置的,计算机需要对内存进行分段的目的则是为了使内存能够实现不同的程序,(参考于百度百科内容)对计算机资源的最大利用的考虑。在80x86cpu中<4000em>段地址寄存器共有四个:CS(代码段寄存器)、DS(数据段寄存器)、ES(拓展段寄存器)、SS(堆栈段寄存器),以上的寄存器都是十六位的。采用段寄存器机制的原因是显而易见的,80x86cpu的数据总线是十六位,但是它的地址线却有二十条。这样的设计具有局限性,是由当时INTEL公司的制造工艺所决定。即便如此,聪明的计算机科学家们依旧能够思考出解决方案,那就是采用了具有灵活为特征的段地址寄存机制——内存通过“段基址+段内偏移地址”的方式来进行访问。(段地址寄存器的示意图如下,该图片同样来源于网络)                  剩下的还有指令指针的内容,在8086CPU中还存在一个六字节的队列缓冲器,具有逻辑控制作用和实现信息传达和信息分时传等功能。  今天就先写到这里吧,祝各位晚安,后续内容还会补充、更新。再说一句,本人才识浅陋,有不足之处,还望前辈指教,开点迷津。(本文内容之所以发布也得归于百度百科等互联网资料的参考与借鉴)    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微机原理