微型计算机技术精简复习深圳大学电子与信息工程学院考试用2019年6月存储器I/O接口输入设备I/O接口数据总线DB控制总线CB地址总线AB输出设备CPU微机的硬件由CPU、存储器、输入/输出设备构成;输入/输出设备通过输入/输出接口与系统相连;(输入/输出接口简称I/O接口)各部件通过总线连接。构成部件地址总线AB(AddressBus):单向用来传送CPU输出的地址信号,确定被访问的存储单元、I/O端口。地址总线的条数决定CPU的寻址能力。10根→21010241K20根→2201024K1M32根→23222×2304G36根→23626×23064G数据总线DB(DataBus):双向用来在CPU与存储器、I/O接口之间进行数据传送。数据总线的条数决定一次可最多传送数据的宽度。8根→一次传送8位控制总线CB(ControlBus):用于传送各种控制信号。有的是CPU发出,如读控制信号、写控制信号;有的是发向CPU,如外设向CPU发出的中断申请信号。内存内存是存储程序和数据的部件,由地址译码器、内存单元等构成。内存单元存储信息的基本单元。每片内存芯片有若干个内存单元。每个单元可存储8位二进制数(即两位十六进制数)。内存单元的地址为区分各内存单元,每个内存单元对应有一个地址。地址线上的数据经译码后只有唯一的内存单元被选中。外设和输入/输出接口(I/O接口)外设的电信号、运行速度与CPU不匹配,不能与CPU直接相连,必须通过I/O接口与CPU相连。I/O端口的地址为区分各I/O端口(寄存器),每个端口对应有一个端口地址。I/O端口1(23H端口)I/O端口2(24H端口)I/O端口3(25H端口)地址译码数据缓冲控制电路外设ABDBCBCPU2)微机的工作过程计算机的工作原理是:“存储程序”+“程序控制”CPU总线内存标志寄存器地址总线AB程序数据数据总线DB控制总线CB地址译码器、、、指令1指令2指令3指令4、、、、、、数据1数据2数据3、、、指令寄存器数据暂存器控制电路指令译码器地址寄存器指令指针寄存器R1R2R3R4寄存器组运算器IP2.微处理器、微型计算机、微型计算机系统系统软件:DOS、WindowsXP/2000应用软件:Word、Photoshop微处理器CPU存储器(RAM,ROM)I/O接口总线硬件软件微型计算机系统微型计算机(主机)外设ALU寄存器控制部件键盘、鼠标显示器硬盘、光驱打印机、扫描仪2)按CPU的字长分类CPU的性能可以用两个主要参数来描述:速度:用CPU的工作频率表示,单位MHzCPU内部寄存器宽度:寄存器的位数宽度:外部数据总线宽度:数据线的根数地址总线宽度:地址线的根数按CPU的字长,微机可分为:4位机、8位机、16位机、32位机、64位机…CPU内部的寄存器宽度可用字长描述,字长即CPU能同时处理的数据位数。INTEL8086结构INTEL8086,16位机.INTEL8088(简称8088)是一种准16位微处理器。8086与8088的主要区别在于8086的外部数据总线16位。8088是8位(不进反退,为了和外设匹配)8086结构特点:(1)内部结构是16位的(内部寄存器,内部运算部件,内部操作都按16位设计);(2)外部数据总线16条(3)20条地址总线,直接寻址能力1M字节;2^20=(2^10)*(2^10)=1Kb*2^10=1024Kb=1Mb8086CPU的内部结构1、总线接口单元BIU(BusInterfaceUnit)功能:负责与内存、I/O端口传送数据。(取指令、取数据、传结果)2、执行部件EU(ExecutionUnit)功能:负责指令执行。总线接口单元BIU组成4个段地址寄存器(CS、DS、ES、SS),16位指令指针寄存器IP,20位的地址加法器(16d段地址+偏移地址=物理地址),6字节(8086)或4字节(8088)的指令队列,总线控制电路:处理器与外界总线联系的转接电路。包括三组总线:20位地址总线,8位双向数据总线,一组控制总线。执行部件EU组成:4个通用寄存器:AX、BX、CX、DX4个专用寄存器:BP、SP、SI、DI,标志寄存器(PSW):9个标志位,其中6个条件标志位用于存放结果状态,算术逻辑单元:16位加法器,用于对寄存器和指令操作数进行算术或逻辑运算,EU控制系统:接受从总线接口单元的指令队列中取来的指令代码,对其译码和向EU内各有关部分发出时序命令信号,协调执行指令规定的操作。118086内部有14个16位寄存器(通用寄存器)专用寄存器AX——(Accumulator)作为累加器。它是算术运算的主要寄存器,所有I/O指令都使用这一寄存器与外部设备交换数据。例:INAL(数据),20H(端口地址)(必须通过累加器AX(字)或AL(节)输入/输出数据。)OUT30H(端口地址),AX(数据)BX——Base用作基址寄存器使用。在计算内存储器地址时,经常用来存放基址。例:MOVAX,[BX+03H]CX——Count可以作计数寄存器使用。在循环LOOP指令和串处理指令中用作隐含计数器。例:MOVCX,200HAGAIN:…………LOOPAGAIN;隐含(CX)-1(CX),结果0转AGAINDX——Data可以作为数据寄存器使用。一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;对某些I/O操作DX可用来存放I/O的端口地址(口地址256)。例:MULBX;(AX)(BX)(DX)(AX)INAL,data8;端口地址8位,输入一个字节INAX,data8;端口地址8位,输入一个字INAL,DX;端口地址16位,输入一个字节INAX,DX;端口地址16位,输入一个字OUTdata8,AL;端口地址8位,输出一个字节OUTdata8,AX;端口地址8位,输出一个字OUTDX,AL;端口地址16位,输出一个字节OUTDX,AX;端口地址16位,输出一个字14(2)地址指针与变址寄存器:段起始地址SP、BP、SI、DI四个16位寄存器。以字为单位在运算过程中存放操作数,经常用以在段内寻址时提供偏移地址。段内偏移地址段地址:段起始地址的高16位值。偏移地址:相对段起始地址的偏移值。…高16位值0000B15地址指针寄存器(SP、BP)SP(stackpointer)——堆栈指针寄存器用来指示栈顶的偏移地址,与SS段寄存器联合使用确定实际地址。堆栈和指针如下页图所示。BP(basepointer)——基址指针寄存器可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。变址寄存器(SI、DI)SI——SourceIndexRegister源变址寄存器。DI——DestinationIndex目的变址寄存器。使用场合:常用于变址寻址。一般与DS联用,用来确定数据段中某一存储单元的地址,SI,DI具有自动增量和自动减量功能.例:MOVAX,[SI]168086系统存储器与总线连接堆栈和指针设:(SS)=3F00H,(SP)=0060H堆栈和指针如下图:堆栈是内存开辟的一个特殊数据区,一端固定,一端浮动,严格按照后进先出的工作原则。数据总线地址总线D7~D01MX8位存储体A19~A000000HFFFFFHA19~0............a1a0栈底4EFFFH3F060H(SP)=60H3F000H(SS)=3F00H控制寄存器:IP、PSWIP—InstructionPointer指令指针寄存器用来存储代码段中的偏移地址;程序运行过程中IP始终指向下一次要取出的指令偏移地址。IP要与CS寄存器相配合才能形成真正的物理地址。PSW—(ProcessorStatesWordProgram)程序状态字寄存器,16位寄存器。由条件码标志FLAG、控制标志构成。只用了其中9位,6位条件码标志,3位控制标志。如下表示。段寄存器段寄存器:4个16位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。CS——CodeSegmentRegister代码段寄存器用来识别当前代码段(程序一般放在代码段)。DS——DataSegmentRegister数据段寄存器用来识别当前数据段寄存器。SS——StackSegmentRegister堆栈段寄存器,用来识别当前堆栈段。ES——ExtraSegmentRegister附加段寄存器,用来识别当前附加段。条件码标志:用来记录程序中运行结果的状态信息,作为后续条件转移指令的转移控制条件。∴称为条件码。条件码包括6位:CF、PF、AF、ZF、SF、OF。①OF(OverflowFlag)溢出标志(一般指补码溢出)OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为不溢出。②SF(SignFlag)符号标志SF=1:记录运算结果的符号为负。SF=0:记录运算结果的符号为正。③ZF(ZeroFlag)零标志ZF=1:运算结果为0。ZF=0:运算结果不为0。④CF(CarryFlag)进位标志CF=1:记录运算时从最高有效位产生进位值/借位值。CF=0:记录运算时从最高有效位不产生进位值/借位值⑤AF(AuxiliaryCarryFlag)辅助进位标志AF=1:记录运算时第3位(半个字节)产生进位值。AF=0:记录运算时第3位(半个字节)不产生进位值。⑥PF(ParityFlag)奇偶标志PF=1:结果操作数低8位中有偶数个1。PF=0:结果操作数低8位中有奇数个1。程序根据这些检验条件,分支转向。控制标志:对控制标志位进行设置后,对其后的操作起控制作用。控制标志位包括3位:TF、IF、DF。跟踪(陷阱)标志TF、中断标志IF、方向标志DF。①TF(TrapFlag)跟踪(陷阱)标志位TF=1,每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。TF=0,CPU正常工作,不产生陷阱。②IF(InteruptFlag)中断标志位IF=1,允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。IF=0,关闭中断。CPU禁止响应可屏蔽中断请求。IF的状态对不可屏蔽中断和内部软中断没有影响。③DF(DirectionFlag)方向标志位DF=1,每次串处理操作后使变址寄存器SI和DI减量,使串处理从高地址向低地址方向处理。DF=0,每次串处理操作后使变址寄存器SI和DI增量,使串处理从低地址向高地址方向处理。DF方向标志位,用于串处理指令中的控制方向,属于一种控制信息。1、存储单元的地址和内容及与CPU之间数据传送(1)、存储单元的地址和内容存储器位编号:8088/8086字长16位,由二个字节组成,位编号如下:高位字节MSB(8~15位)低位字节LSB(0~7位)8088/8086内部的ALU能进行16位运算。有关地址寄存器如SP、IP、BP、SI、DI等都是16位的。存储单元地址:按照字节编址......11001111B......物理地址内容00000H00001H00002H00006HFFFFFH存储单元的的内容:一个存储单元有效的信息。机器字长是16位,但数据以字节为单位表示。•一个字存入存储器占有相继的二个单元:低位字节存入低地址,高位字节存入高地址。字单元的地址采用它的低地址来表示。例:字单元:(0004H)=1234H,字节单元:(0004H)=34H同一个地址既可以看作字节单元地址,又可看作字单元地址,需要根据使用情况确定。字单元地址:可以是偶数也可以是奇数,34H12H1EH2FH0000H0001H0002H0003H0004H0005H0006H...1234H1235H1236H...2、存储器地址分段:8088/8086有20条地址总线,直接寻址能力为220=1M字节。用16进制数表示1M字节的地址范围应为00000H~FFFFFH。(1)、8088/8086内部20