《第二章 微处理器与系统结构-1(精品).ppt》由会员分享,可在线阅读,更多相关《第二章 微处理器与系统结构-1(精品).ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章 微处理器与系统结构本章主要内容微处理器与系统结构第一节 微处理器的基本结构第二节 Intel 8086微处理器第三节 8086中的标志寄存器和堆栈第四节 8086系统的组成第五节 8086系统时钟和总线周期第一节微处理器的基本结构算术逻辑单元(ALU)寄存器阵列(RG)控制单元总线缓冲器高性能微处理器指令预取部件地址形成部件指令译码部件存储器管理部件2.1.1算术逻辑单元ALU进行二进制的算术运算和逻辑运算基本运算:加法,移位减法、乘法、除法:转换成加法和移位操作PSW标志寄存器标志寄存器运运算算器器标志标志寄存器寄存器运运算算器器被加数被加数加数加数和和进位进位十进制调整十进制调整2
2、.1.2控制器发布操作命令的机构,是微机的指挥中心P30 图2.2控制器程序计数器PC指令寄存器IR指令译码器ID操作控制器时序发生器外部命令内部命令地址总线数据总线取指令取指令执行指令执行指令分析指令分析指令指令部件时序部件时钟系统脉冲源:时钟启停逻辑时钟周期T 机器周期M 指令周期ICT1T2T3T1T2T3T4T2T3T1M1M2Mn指令周期2.5G主频的CPU,时钟周期是多少?微操作控制部件功能:根据指令产生计算机各部件所需要的控制信号方式方式特点特点优点优点缺点缺点组合逻辑控制用硬件电路实现速度快改动困难微程序控制ROM中的微指令 便于修改速度较慢可编程序逻辑阵列PLA通过程序来设计
3、组合逻辑兼顾以上两种的优点2.1.3总线总线是计算机各部件间传递信息的公共通路。片内总线在微处理器内部各单元间传递信息的总线单总线/双总线/多总线运运算算器器运运算算器器被加数被加数加数加数和和进位进位寄寄存存器器组组控制器控制器CPU存储器存储器输入输入输出输出运运算算器器运运算算器器加数加数寄寄存存器器组组被加数被加数和和片外总线片外总线:在CPU和各外部部件之间传送信息的总线,系统总线,三总线结构数据总线:DB(Data Bus)地址总线:AB(Adress Bus)控制总线:CB(Control Bus)单总线结构,分时使用发送:同一时刻只允许一个部件发送数据接收:不限存存储储器器I/
4、O接接口口输输入入设设备备I/O接接口口输输入入设设备备CPU数据总线数据总线地址总线地址总线控制总线控制总线数据总线的宽度决定数据传输的速度地址总线的宽度决定寻址能力(范围大小)三态缓冲器三态缓冲器部件1系统总线三态缓冲器部件2三态缓冲器部件3总线缓冲/锁存器CPU存储器存储器输出输出/输出设备输出设备运运算算器器运运算算器器加数加数寄寄存存器器组组被加数被加数和和数据总线地址总线片内总线数据总数据总线缓冲线缓冲/锁存器锁存器地址总地址总线缓冲线缓冲/锁存器锁存器控制器控制器2.1.4寄存器阵列功能:临时存放数据和地址一、存放待处理数据的寄存器(程序员使用)累加器通用寄存器组二、存放地址码的
5、寄存器(由CPU自动维护,不允许程序员修改)程序计数器堆栈指示器三、存放控制信息的寄存器指令寄存器(由CPU自动维护,不允许程序员修改)标志寄存器(由CPU自动维护,但程序员可以修改)四、起缓冲作用的寄存器(由CPU自动维护,不允许程序员修改)数据总线缓冲寄存器DBUF地址总线缓冲寄存器ABUF第二节 Intel 8086微处理器特点双列直插式16位:内部总线、寄存器、运算部件5MHz20条地址线:1M寻址空间Intel 8086l 8086:对外有对外有16根数据线,根数据线,20根地址线根地址线可寻址的内存单元数可寻址的内存单元数 220=1M内存地址范围内存地址范围00000 FFFFF
6、Hl 8088:内部寄存器、运算部件及内部操作内部寄存器、运算部件及内部操作均均按按16位位设设计计,除除对对外外数数据据线线为为8根根外外,其其余余与与8086基本相同。基本相同。为与当时已有的为与当时已有的8 位外设接口芯片兼容位外设接口芯片兼容。IBM PC、IBM PC/XT 采用采用8088CPU 808680881.总线接口部件总线接口部件BIU (Bus Interface Unit)运输部门运输部门2.执行部件执行部件EU (Execute Unit)加工部门加工部门3.工作方式工作方式串行串行:图图2.6并行并行:图图2.7DSESSSCSIP数据暂存器数据暂存器执执 行行
7、部部 件件控控 制制 电电 路路指令译码器指令译码器总线总线接口接口控制控制电路电路AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组寄存器组BIUABDBCB地地址址加加法法器器指指令令队队列列PSW标志寄存器标志寄存器EU运运算算器器8086的功能结构的功能结构DSESSSCSIP数据暂存器数据暂存器执执 行行 部部 件件控控 制制 电电 路路指令译码器指令译码器总线总线接口接口控制控制电路电路AXBXCXDXAHBHDIBPSPBLCLDL寄存器组寄存器组BIUABDBCB地地址址加加法法器器指指令令队队列列PSW标志寄存器标志寄存器EU运运算算器器8086的功能结
8、构的功能结构:负责取指令,读、写负责取指令,读、写负责指令的执行负责指令的执行CHDHALSI总线接口部件BIU主要功能主要功能 负责与存储器、负责与存储器、I/O设备之间传递信息设备之间传递信息(指令和数据指令和数据)具体完成:具体完成:(1)从内存从内存取指令取指令,送到指令队列,并管理指令队列,送到指令队列,并管理指令队列;(2)读数据读数据:配合执行部件从指定的内存单元:配合执行部件从指定的内存单元 或或I/O端口取数据端口取数据;(3)写数据写数据:将执行部件的运算结果送到:将执行部件的运算结果送到 指定的内存单元或指定的内存单元或I/O端口。端口。BIU的构成4个个16位段寄存器:
9、位段寄存器:CS,DS,ES,SS16位位IP指令指针寄存器指令指针寄存器20位位 地址加法器地址加法器指令队列指令队列(8088为为4字节字节/8086的指的指令队列为令队列为6字节字节)总线控制电路总线控制电路(包括三组包括三组总线总线):处理器与外界总线联系处理器与外界总线联系的转接电路。的转接电路。DSESSSCSIP数据暂存器数据暂存器PSW标志标志寄存器寄存器执行部件控制电路执行部件控制电路指令译码器指令译码器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组寄存器组指指令令队队列列总线总线接口接口控制控制电路电路运运算算器器地地址址加加法法器器8086 结构
10、结构BIUEUBIU-指令操作指令队列:先进先出队列FIFO读指令:当BIU有2个或2个以上的字节空间,而且EU没有向BIU请求读或写数据时,预取后续指令,填入指令队列每次利用一个存储器的读周期,读取2个字节的指令(偶地址开始)既不取指令,也不读写数据时,BIU处于空闲状态指令队列管理队列输出端指针队列输入端指针读取指令的过程输出指针输入指针1 2 3 4 5 6 输出指针输入指针1 2 3 4 5 6 输出指针输入指针1 2 3 4 5 6 输出指针输入指针1 2 3 4 5 6 取走一字节的指令填充2字节的指令取走3字节的指令l 由于有指令队列的存在,由于有指令队列的存在,在在EU执行指令
11、的同时,执行指令的同时,BIU可取指令,可取指令,即即BIU和和EU可处于并行工作状态。可处于并行工作状态。取指取指 取指取指 取指取指 取指取指 取数取数 取指取指 等待等待 执行执行 执行执行 执行执行 等待等待 执行执行时间时间8086的工作原理:的工作原理:BIUEU执行单元EU主要功能主要功能 指令的译码和指令的执指令的译码和指令的执行行(包括算术、逻辑运算,包括算术、逻辑运算,控制命令等控制命令等)。构成部分:构成部分:8个个16位寄存器:位寄存器:AX、BX、CX、DXSP、BP、DI、SI标志寄存器标志寄存器PSW算术逻辑运算部件算术逻辑运算部件ALU指令译码器指令译码器控制部
12、件控制部件DSESSSCSIP数据暂存器数据暂存器PSW标志标志寄存器寄存器执行部件控制电路执行部件控制电路指令译码器指令译码器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组寄存器组指指令令队队列列总线总线接口接口控制控制电路电路运运算算器器地地址址加加法法器器8086 结构结构BIUEUDestination Index目的变址寄存器目的变址寄存器SIDIBPSPAX 累加器累加器 AccumulatorBX 基数寄存器基数寄存器BaseCX 计数寄存器计数寄存器CountDX 数据寄存器数据寄存器DataAHBHCHDHALBLCLDLIPPSWDSESSSCS数
13、据段寄存器数据段寄存器Data Segment附加段寄存器附加段寄存器Extra Segment堆栈段寄存器堆栈段寄存器Stack Segment代码段寄存器代码段寄存器Code SegmentProcessor Status Word状态标志寄存器状态标志寄存器Instruction Pointer指令指针寄存器指令指针寄存器变变 址址寄存器寄存器段寄存器段寄存器控制寄存器控制寄存器Source Index源变址寄存器源变址寄存器Base Point基址指针寄存器基址指针寄存器Stack Point堆栈指针寄存器堆栈指针寄存器指指 针针寄存器寄存器 通用寄存器通用寄存器8086的寄存器组地址
14、和节内存大小:1M字节00000-FFFFF节:16个字节第0节 16个单元第1节 16个单元第65535节 16个单元第2节 16个单元.00000H00001H0000FH00010H00011H0001FH00020H00021H0002FHFFFF0HFFFF1HFFFFFH.段段:64K字节从节开始.00000H00001H0FFFFH23450H3344FH33450H4344FHF0000HFFFFFH.23460H.345673:456734:567345:673456:7.34567H段地址和偏移量段地址段地址 :只取段起始地址高只取段起始地址高16位值。位值。偏移地址偏移地
15、址:指在段内某内存单元的物理地址,相对段起始指在段内某内存单元的物理地址,相对段起始地址的距离地址的距离(差值差值)。段起始地址:段起始地址:33450h偏移量:偏移量:1117h物理地址:物理地址:34567h段起始地址:段起始地址:34560h偏移量:偏移量:7h地址加法器20位物理地址的形成段寄存器0000偏移量20位物理地址物理地址段地址 X 16(10H)偏移量1、段寄存器、段寄存器段寄存器段寄存器:4个个16位段寄存器位段寄存器CS、DS、SS、ES。用来用来识别当前可寻址的四个段,不可互换的使用。识别当前可寻址的四个段,不可互换的使用。CSCode Segment Registe
16、r 代码段寄存器代码段寄存器 用来识别当前代码段(程序一般放在代码段)。用来识别当前代码段(程序一般放在代码段)。DSData Segment Register数据段寄存器数据段寄存器 用来识别当前数据段寄存器。用来识别当前数据段寄存器。SSStack Segment Register堆栈段寄存器,堆栈段寄存器,用来识别当前堆栈段。用来识别当前堆栈段。ESExtra Segment Register附加段寄存器附加段寄存器,用来识别当前附加段。用来识别当前附加段。段寄存器的初始值代码段:64K数据段:64K堆栈段:64KCSDSSSCSDSSS64K2、通用寄存器、通用寄存器AX、BX、CX、
17、DX 作为通用寄存器。作为通用寄存器。用来用来暂存暂存计算过程中所用到的计算过程中所用到的操作数,结果或其它信息操作数,结果或其它信息。访问形式访问形式:可以用可以用16位的访问位的访问;或者可以用字节(或者可以用字节(8位)形式访问位)形式访问,它们的它们的高高8位记作位记作:AH、BH、CH、DH。它们的它们的低低8位记作位记作:AL、BL、CL、DL。AX(Accumulator)作为)作为累加器累加器。它它是算术运算的主要寄存器,是算术运算的主要寄存器,所有所有I/O指令都使用这一寄存器与外部设备交换数据指令都使用这一寄存器与外部设备交换数据。例:例:IN AL ,20HOUT 30H
18、,AXBXBase用作用作基址寄存器基址寄存器使用。使用。在在计算内存储器地址时,经常用来存放基址。计算内存储器地址时,经常用来存放基址。例:例:MOV AX,BX+03HCXCount可以可以作计数寄存器作计数寄存器使用。使用。在在循环循环LOOP指令和串处理指令中用作隐含计数器指令和串处理指令中用作隐含计数器。例:例:MOV CX,200HAGAIN:LOOP AGAIN ;(CX)-1(CX),结果结果 0转转AGAINDXData可以可以作为数据寄存器使用。作为数据寄存器使用。一般在一般在双字长乘除法运算时双字长乘除法运算时,把把DX和和AX组合在一起存放一个双字长组合在一起存放一个双
19、字长(32位位)数,数,DX用来存放高用来存放高16位位;对某些对某些I/O操作操作DX可用来存放可用来存放I/O的端口地址(的端口地址(端口地址端口地址 256)。)。例:例:MUL BX ;(AX)(BX)(DX)(AX)例例:IN AL,DX2.地址指针与变址寄存器地址指针与变址寄存器:SP、BP、SI、DI 四个四个16位寄存器。位寄存器。以字为单位在运算过程中存放操作数,以字为单位在运算过程中存放操作数,经常用以在经常用以在段内寻址时提供偏移地址。段内寻址时提供偏移地址。地址指针寄存器地址指针寄存器(SP、BP)SP(stack pointer)堆栈指针寄存器堆栈指针寄存器 用来用来
20、指示栈顶的偏移地址指示栈顶的偏移地址,必须必须与与SS段寄存器段寄存器联合使用确定实际地址。联合使用确定实际地址。堆栈和指针如下堆栈和指针如下页页图所示。图所示。BP(base pointer)基址指针寄存器基址指针寄存器 可以可以与与SS寄存器联合使用来确定寄存器联合使用来确定堆栈段堆栈段中中某一某一存储器单元地址存储器单元地址。8086系统存储器与总线连接系统存储器与总线连接堆栈和指针堆栈和指针设设:(SS)=3F00H,(SP)=0100H堆栈和指针如下图:堆栈和指针如下图:堆栈是内存开辟的一个特殊数据区,一端固定,一端浮动,堆栈是内存开辟的一个特殊数据区,一端固定,一端浮动,严格按照严
21、格按照后进先出后进先出的工作原则。的工作原则。数据总线数据总线地址总线地址总线D7D0D7D01 M X 81 M X 8位存储体位存储体A19A0A19A000000H00000HFFFFFHFFFFFHA1910A1910.a1a1a0a0栈底栈底3F100H3F100H3F060H3F060H(SP)=60H(SP)=60H3F000H3F000H(SS)=3F00H(SS)=3F00H(SP)=100H(SP)=100H(SP)=0FEH(SP)=0FEH(SP)=0FCH(SP)=0FCH 变址寄存器变址寄存器(SI、DI)SISource Index Register 源变址寄存器
22、源变址寄存器DIDestination Index 目的变址寄存器目的变址寄存器使用场合:常用于变址寻址。使用场合:常用于变址寻址。一般与一般与DS联用,用来确定联用,用来确定数据段数据段中某一存储单元的地址,中某一存储单元的地址,SI,DI具有自动增量和自动减量功能具有自动增量和自动减量功能.例:例:MOV AX,SI 在串处理指令中,在串处理指令中,SI、DI作为隐含的源变址和目的变址寄作为隐含的源变址和目的变址寄 存器分别达到在数据段和附加段中寻址的目的。存器分别达到在数据段和附加段中寻址的目的。执行示意图如右图。执行示意图如右图。例:例:MOV SI,2000HMOV DI,3000H
23、MOV CX,100HCLD.MOVSB.串处理指令执行示意图串处理指令执行示意图4、控制寄存器、控制寄存器控制寄存器控制寄存器:IP、PSWIPInstruction Pointer指令指针寄存器指令指针寄存器 用来存储代码段中的偏移地址用来存储代码段中的偏移地址;程序运行过程中程序运行过程中IP始终指向下一次要取出的指令偏移地址始终指向下一次要取出的指令偏移地址。IP要与要与CS寄存器相配合才能形成真正的物理地址。寄存器相配合才能形成真正的物理地址。PSW(Processor States Word)程序状态字寄存器,程序状态字寄存器,16位寄存器位寄存器,只用了其中只用了其中9位。位。由
24、条件码标志由条件码标志FLAG、控制标志构成。、控制标志构成。(6位条件码标志位条件码标志,3位控制标志位控制标志)。如下所示如下所示。OFOFDFDFIFIFTFTFSFSFZFZFAFAFPFPFCFCF0 015152 24 46 67 78 89 910101111 9个标志按其作用分个标志按其作用分状态标志状态标志和和控制标志控制标志两类两类 状态标志状态标志:OF、SF、ZF、AF、PF、CF 共共6个个 记录指令运行过程或运算结果的状态信息。记录指令运行过程或运算结果的状态信息。常作为后续转移指令的控制条件,又称为条件码。常作为后续转移指令的控制条件,又称为条件码。控制标志控制标
25、志:DF、IF、TF 共共3个个 作用是控制作用是控制CPU 的操作。的操作。16位寄存器,用了其中的位寄存器,用了其中的9位,其它位,其它7位在位在8086/8088中无意义。中无意义。l状态标志寄存器状态标志寄存器PSW(Program Status Word)如何记忆?如何记忆?各状态标志的含义各状态标志的含义:CF:进位标志进位标志(Carry Flag)反映运算过程中,最高位是否产生进位反映运算过程中,最高位是否产生进位/借位。借位。(最高位最高位 对字节操作指对字节操作指D7位位,对字操作指对字操作指D15位位)加法,最高有效位有进位加法,最高有效位有进位CF1,否则,否则CF0
26、减法,最高有效位有借位减法,最高有效位有借位CF1,否则,否则CF0AF:辅助进位标志辅助进位标志(Auxiliary Carry Flag)反反映映运运算算过过程程中中,D3位位是是否否产产生生进进位位或或借借位位。有有进进位位或或借位时,借位时,AF1,否则,否则AF0。ZF:零标志零标志(Zero Flag)反应运算结果是否为反应运算结果是否为0。运算结果为运算结果为 0 时,时,ZF1,否则,否则ZF0SF:符号标志符号标志(Sign Flag)反应运算结果的符号位。反应运算结果的符号位。对字节操作对字节操作 SFD7 对字操作对字操作SFD15ZFSFOF:溢出标志溢出标志(Over
27、flow Flag)反应运算过程中是否产生溢出。反应运算过程中是否产生溢出。产生溢出,产生溢出,OF1,否则为,否则为0。PF:奇偶标志奇偶标志(Parity Flag)反应运算结果低反应运算结果低8位中位中“1”的个数情况。的个数情况。有偶数个有偶数个“1”时,时,PF1,否则否则PF0。OFPF 1 0 1 1 0 1 0 1 被加数被加数8位位 +1 0 0 0 1 1 1 1 加数加数8位位进位进位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 和和8位位PSW标志寄存器标志寄存器运运算算器器标志标志寄存器寄存器运运算算器器被加数被加数加数加数和和进位进位例例 8位二进制
28、加法如下,给出各状态标志位的值位二进制加法如下,给出各状态标志位的值 最高位最高位D7位产生进位位产生进位:CF=1 D3位产生进位位产生进位:AF=1相加的结果为相加的结果为44H,不为不为0:ZF=0结果的最高位为结果的最高位为0:SF=0两负数相加结果为正,溢出两负数相加结果为正,溢出:OF=1结果中有结果中有2个个1,偶数个,偶数个1:PF=11 0 0 1 1 1各控制标志作用各控制标志作用DF:方向标志方向标志在串操作指令中控制地址变化的方向。在串操作指令中控制地址变化的方向。当当DF1时,地址递减;当时,地址递减;当DF时,地址递增。时,地址递增。IF:中断标志中断标志当当IF1时,允许时,允许CPU响应可屏蔽中断申请。响应可屏蔽中断申请。当当IF时,禁止时,禁止CPU响应可屏蔽中断申请。响应可屏蔽中断申请。TF:跟踪标志跟踪标志为调试程序设置的一个控制标志。为调试程序设置的一个控制标志。当当TF1时,时,CPU按单步方式执行指令。按单步方式执行指令。作业作业P7814591215标志寄存器中各个标志位的记忆方法标志寄存器中各个标志位的记忆方法