新曙光专接本培训新曙光专接本培训1第2章16位微处理器新曙光专接本培训22.116位微处理器概述•微处理器(microprocessor)微处理器(microprocessor)是微型计算机的运算及控制部件,也称中央处理单元(CPU)。它本身不构成独立的工作系统,因而它也不能独立地执行程序。CPU功能:指令控制;操作控制;时序控制;数据加工新曙光专接本培训38086特点:(1)数据总线宽度16位,地址总线宽度20位;可直接寻址空间220=1M字节单元;16位数据总线与地址总线复用。(2)采用单一的+5V电源,时钟频率为5MHz(8086),10MHz(8086-1),8MHz(8086-2)(3)133条指令,指令长度1~6字节新曙光专接本培训4•8086与8088的比较–8086为16位机(数据总线16位)–8088为准16位机,数据总线内部16位,外部8位–8086和8088CPU的内部都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同。然而,由于8088要比8086有较多的外部存取操作,所以,对相同的程序,它将执行得较慢。–8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。新曙光专接本培训5后面课程中将要用到的概念•概念一:寄存器简单的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。8086CPU所有的寄存器都是16位的,可以存放两个字节。AX是其中一个寄存器的代号,BX是另一个寄存器的代号。一个16位寄存器所能存储的数据的最大值为多少?答案:216-1。新曙光专接本培训6•16位数据在寄存器中的存放情况【例1】数据:18二进制表示:10010在寄存器AX中的存储:新曙光专接本培训716位数据在寄存器中的存放情况【例2】数据:20000二进制表示:0100111000100000在寄存器AX中的存储:新曙光专接本培训8•概念二:存储器CPU是计算机的核心部件.它控制整个计算机的运作并进行运算,要想让一个CPU工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是平时所说的内存。在一台PC机中内存的作用仅次于CPU。离开了内存,性能再好的CPU也无法工作。磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU使用。新曙光专接本培训9•概念三:存储单元(每一个存储单元有一个名字,叫地址)存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号;例如:一个存储器有128个存储单元,编号从0~127。如右图示:新曙光专接本培训10•神马是物理地址?•CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。新曙光专接本培训11•概念四:CPU对存储器的读写•CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行三类信息的交互:–存储单元的地址(地址信息)–器件的选择,读或写命令(控制信息)–读或写的数据(数据信息)•在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。–物理上:一根根导线的集合;–逻辑上划分为:地址总线:CPU是通过地址总线来指定存储单元的。数据总线:CPU是通过数据总线来读写数据。控制总线新曙光专接本培训12概念五:地址总线•地址总线:CPU是通过地址总线来指定存储单元的。•一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N。•这样的CPU最多可以寻找2的N次方个内存单元。新曙光专接本培训13地址总线发送地址信息演示新曙光专接本培训14概念六:数据总线•CPU与内存或其它器件之间的数据传送是通过数据总线来进行的。•数据总线的宽度决定了CPU和外界的数据传送速度。•我们来分别看一下它们向内存中写入数据89D8H时,是如何通过数据总线传送数据的:新曙光专接本培训158位数据总线上传送的信息8088CPU新曙光专接本培训1616位数据总线上传送的信息8086CPU新曙光专接本培训17控制总线上发送的控制信息新曙光专接本培训18概念七:控制总线•CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合。•有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。所以,控制总线的宽度决定了CPU对外部器件的控制能力。新曙光专接本培训19•总线在逻辑上划分的图示:新曙光专接本培训20概念八:CPU在内存中读数据MOVAX,[3]新曙光专接本培训21概念九:CPU在内存中写数据新曙光专接本培训22•前面所讲的内存读或写命令是由几根控制线综合发出的:–其中有一根名为读信号输出控制线负责由CPU向外传送读信号,CPU向该控制线上输出低电平表示将要读取数据;–有一根名为写信号输出控制线负责由CPU向外传送写信号。新曙光专接本培训23概念十:堆栈(STACK)是按后进先出原则组织的一片存储区域,用来暂存一批需要回避的数据或地址。“后进先出”堆栈:暂存数据、断点信息或传送信息用途:存取原则:8086堆栈段的最大深度:64KB新曙光专接本培训24入栈的方式新曙光专接本培训25出栈的方式新曙光专接本培训26一端固定,具有最大地址的单元(数据由此向上堆积)一端浮动,指向最后被压入堆栈的数据所在存储单元(栈顶的位置随堆栈中存放数据多少而变化)用来指示当前栈顶的位置。(压入的数据放入哪个单元或从那个单元弹出数据均由SP决定SP堆栈段SSBottomXXXXXXXXTop1.栈底:2.栈顶:3.堆栈指针:SP称为堆栈指针寄存器新曙光专接本培训27•8086堆栈的组织该片存储区域所包含存储单元数,其值有由初始时SP的值决定(指向栈底+1单元)12H34H01954H01955H•堆栈段:由SS存放堆栈段段基值以决定其起始地址•堆栈段的长度:8086堆栈是按字组织的,数据的存取均为2字节操作•数据在堆栈段内的存放新曙光专接本培训28•堆栈的三种基本操作SS、SP赋值(段的起始位置及长度)SP-2→SP;栈顶向上浮动数据→(SS:SP)(SS:SP)→R/M(寄存器、存储器)SP+2→SP数据;栈顶向下回落1、设置堆栈2、进栈把数据压入堆栈,在栈顶进行3、出栈从栈顶取出数据送入R/M新曙光专接本培训29•SP和BP在使用上有区别:•执行入栈和出栈时,指令地址是由SP给出当前栈顶的偏移地址,故将SP称为堆栈指针寄存器。•BP称作基址指针寄存器。BP则是用来存放位于堆栈段中的一个数据区基址的偏移地址的•可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。新曙光专接本培训30概念十一:内存地址空间•什么是内存地址空间呢?•一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。新曙光专接本培训31概念十二:内存中字的存储•在0地址处开始存放十进制数20000(十六进制为4E20H):•0号单元是低地址单元,1号单元是高地址单元。问题:(1)0地址单元中存放的字节型数据是多少?(2)0地址字单元中存放的字型数据是多少?(3)2地址字单元中存放的字节型数据是多少?(4)2地址单元中存放的字型数据是多少?(5)1地址字单元中存放的字型数据是多少?结论:任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元。新曙光专接本培训322.28086/8088CPU的结构●执行部件(EU)●总线接口部件(BIU)内部寄存器算术逻辑运算单元(ALU)及标志寄存器内部控制逻辑电路段地址寄存器(CS、DS、SS、ES)地址加法器指令指针寄存器(IP)指令队列I/O控制逻辑2.2.18086基本结构新曙光专接本培训331234内部暂存器IPESSSDSCS输入/输出控制电路外部总线执行部分控制电路∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列执行部件(EU)总线接口部件(BIU)16位20位8位8位8086的内部结构ALU数据总线队列总线123456新曙光专接本培训34(1)执行部件(EU)功能:负责指令执行。接受从总线接口单元的指令队列中取来的指令代码,译码和向EU内各有关部分发出时序命令信号,协调执行指令规定的操作。EU的组成:–4个通用寄存器,即AX,BX,CX,DX;–4个专用寄存器,SI(SourceIndex):源变址寄存器DI(DestinationIndex):目的变址寄存器BP(BasePointer):基址指针SP(StackPoint):堆栈指针–标志寄存器(FR),微处理器状态字(ProcessorStateWord,PSW)–算术逻辑部件(ALU)。新曙光专接本培训35(2)总线接口部件BIU•功能:负责与M、I/O端口传送数据。具体讲:总线接口部件要从内存取指令送到指令队列;CPU执行指令时,要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件EU;或把执行部件的操作结果传给指定的M或I/O口。•主要组成:4个段地址寄存器,即CS——16位代码段寄存器;DS——16位数据段寄存器;ES——16位附加段寄存器;SS——16位堆栈段寄存器。–16位指令指针寄存器IP。–20位的地址加法器。–6字节的指令队列。–I/O控制逻辑新曙光专接本培训36总线接口部件BIU–8086的指令队列为6个字节,8088的指令队列为4个字节。不管是8086还是8088,都会在执行指令的同时,从内存中取下一条指令或下几条指令,取来的指令就放在指令队列中。•指令队列–地址加法器用来产生20位物理地址。8086可用20位地址寻址1M字节的内存空间,但8086内部所有的寄存器都是16位的,所以需要由一个附加的机构来根据16位寄存器提供的信息计算出20位的物理地址,这个机构就是20位的地址加法器。•地址加法器新曙光专接本培训37•I/O控制逻辑是CPU外部三总线(AB、DB、CB)的控制电路,它控制CPU与其他部件交换数据、地址、状态及控制信息。新曙光专接本培训38EU部件与BIU部件•EU和BIU之间是通过指令流队列相互联系的。•EU和BIU的联系上的不同步性:–在执行指令的过程中,如果必须访问存储器或者输入/输出设备,那么,执行部件就会请求总线接口部件,进入总线周期,完成访问内存或者输入/输出端口的操作;–如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。–指令队列空余时的填充–当指令队列已满,而且执行部件又没有总线访问时,总线接口部件便进入空闲状态。–在执行转移指令、调用指令和返回指令时,指令队列中的原有内容被自动消除,总线接口部件会接着往指令队列中装入另一个程序段中的指令。新曙光专接本培训392.2.28086的寄存器结构AHALBHBLCHCLDHDLSPBPSIDIIPPSWCSDSSSESAXBXCXDX累加器基址计数数据数据寄存器015015015附加数据段堆栈段数据段代码段段寄存器指令指针状态标志控制寄存器堆栈指针基址指针源变址目的变址地址指针寄存器变址寄存器通用寄存器07815新曙光专接本培训40(一)通用寄存器(8个)(1)数据寄存器AX、BX、CX、DX作为通用寄存器。功能:用来暂存计算过程中所用到的操作数,结果或其它信息●四个通用数据寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8为寄存器。用作8位寄存器分别记作:AH、AL、BH、BL、CH、CL、DH、DL。BX可用作间接寻址的地址寄存器和基地址寄存器,BH、BL可用作8位通用数据寄存器。有些指令约定以AX(或AL)为源或目的寄存器。AX(AH,AL)累加器BX(BH,BL)基址寄存器新曙光专接本培训41除用作通用寄存器外,在I/O指令中可用作端口地址寄乘除指令中用作辅助累加器。CX(CH,CL)计数寄存器DX(DH