《微型计算机的结构(CPU和内存).ppt》由会员分享,可在线阅读,更多相关《微型计算机的结构(CPU和内存).ppt(17页珍藏版)》请在金锄头文库上搜索。
1、第三章第三章 微型计算机的结构微型计算机的结构本章要点本章要点l 8086/8088CPU内部结构内部结构l 8086/8088寄存器和标志寄存器和标志l 堆栈与存储器结构堆栈与存储器结构l 寻址方式和指令系统寻址方式和指令系统 80868086是是1616位字长的微处理器,位字长的微处理器,80888088的内部结构为的内部结构为16 16 位,位,外部数据总线外部数据总线8 8位,是准位,是准1616位字长的微处理器,二者指令位字长的微处理器,二者指令系系统统相同,均具有相同,均具有2020位地址线位地址线,寻址能力,寻址能力达到达到1MB1MB空间。空间。3.1 8086/8088的功能
2、结构的功能结构next 总线接口单元总线接口单元 BIU( Bus Interface Unit ) 执行单元执行单元 EU( Execution Unit )协同完成执行内存中存放的指令序列协同完成执行内存中存放的指令序列。Go8086/8088微处理器由总线接口单元微处理器由总线接口单元 和执行单元组成。和执行单元组成。 BIU 和和 EU 相互独立,可并行操作,相互独立,可并行操作,构成构成指令流水线指令流水线结构。结构。T1 取指令取指令取指令取指令取指令取指令等待等待执行执行执执 行行 执行执行BIUEUT2T3返回3.2 8086/8088的寄存器结构的寄存器结构14个个16位寄存
3、器,分为位寄存器,分为4类类。(1)数据寄存器数据寄存器: 4个个AX、 BX、 CX、 DX计算过程中的计算过程中的常用寄存器常用寄存器 Go(3) 段寄存器段寄存器: 4个个CS、 DS、 SS、 ES存放存放段起始地址段起始地址 Go(2) 指针与变址寄存器指针与变址寄存器: 4个个SP、 BP、 SI、 DI提供操作数的提供操作数的偏移地址偏移地址 Go(4) 控制寄存器控制寄存器: 2个个IP、 F提供指令的偏移地址;提供指令的偏移地址;保存保存条件码标志和控制标志条件码标志和控制标志 GoAXBXCXDX数据寄数据寄存器存器AHBHCHDHALBLCLDLCSDSSSES代码段寄存
4、器代码段寄存器数据段寄存器数据段寄存器堆栈段寄存器堆栈段寄存器附加段寄存器附加段寄存器SPBPSIDI堆栈指针寄存器堆栈指针寄存器基址指针寄存器基址指针寄存器源变址寄存器源变址寄存器目的变址寄存器目的变址寄存器 FIP指令指针寄存器指令指针寄存器标志寄存器标志寄存器nextAX(累加器累加器 Accumulator):): 主主要要的的算算术术运运算算寄寄存存器器,专专用用于于:乘乘、除除法法运运算算、十十进进制调整及制调整及I/O操作等操作。操作等操作。返回 DX AX 31 16 15 0BX(基址寄存器(基址寄存器 Base):): 常用于存放存储区的起始地址。常用于存放存储区的起始地址
5、。CX(计数寄存器(计数寄存器 Count):): 常用作循环操作和字串处理的计数控制。常用作循环操作和字串处理的计数控制。DX(数据寄存器(数据寄存器 Data):): 常与常与AX联用,做双字乘、除法时,联用,做双字乘、除法时,DX存放高位字,存放高位字,AX存放低位字。此外在存放低位字。此外在I/O操作时提供操作时提供外部设备接口外部设备接口的端口地的端口地址。址。CS(代码段地址寄存器代码段地址寄存器 Code Segment): 存放代码段的起始地址。代码段存放当前正在运行的程序存放代码段的起始地址。代码段存放当前正在运行的程序返回返回DS(数据段地址寄存器(数据段地址寄存器 Dat
6、a Segment): 存放数据段的起始地址。数据段存放当前正运行的程序所存放数据段的起始地址。数据段存放当前正运行的程序所用的数据。用的数据。SS(堆栈段地址寄存器(堆栈段地址寄存器 Stack Segment): 存放堆栈段的起始地址。堆栈段是定义堆栈的存储区。存放堆栈段的起始地址。堆栈段是定义堆栈的存储区。ES(附加段地址寄存器(附加段地址寄存器 Extra Segment): 存放附加段的起始地址。附加段是存放附加段的起始地址。附加段是附加的数据段附加的数据段,作为辅,作为辅助数据区存放当前正运行程序所用的数据。助数据区存放当前正运行程序所用的数据。SP(栈顶指针寄存器栈顶指针寄存器
7、Stack Pointer):提提供供堆堆栈栈栈栈顶顶单单元元的的偏偏移移地地址址。与与SS段段寄寄存存器联用,控制数据进栈和出栈。器联用,控制数据进栈和出栈。 堆栈段堆栈段堆栈段堆栈段SS:SPSS:SP 访问访问访问访问 栈顶栈顶栈顶栈顶 堆栈段堆栈段SS:BP 访问访问 栈内栈内 数据段数据段DS:SI 访问访问 数据数据 附加段附加段ES:DI 访问访问 数据数据BP(基址指针寄存器基址指针寄存器 Base Pointer): 常常用用于于提提供供堆堆栈栈内内某某个个单单元元的的偏偏移移地地址址。与与SS段段寄寄存存器器联联用用,访访问问堆堆栈栈中中的的任任一一个个存存储储单元。单元。
8、SI(源变址寄存器源变址寄存器 Source Index):与与DS段段寄寄存存器器联联用用,可可以以访访问问数数据据段段中中的的任任一个存储单元。一个存储单元。 DI(目的变址寄存器目的变址寄存器 Destination Index):与与ES段段寄寄存存器器联联用用,可可访访问问附附加加段段中中的的任任一一个个存储单元。存储单元。 SI、DI也常用于在字串操作中提供偏移地址,也常用于在字串操作中提供偏移地址,并具有地址并具有地址自动增量或减量自动增量或减量的功能。的功能。返回 IP(指令指针寄存器指令指针寄存器 Instruction Pointer): 存放代码段中指令的偏移地址。在程存
9、放代码段中指令的偏移地址。在程序执行过程中,始终自动给出下一条要取的序执行过程中,始终自动给出下一条要取的指令的偏移地址。指令的偏移地址。 IP与与CS段寄存器联用,可以确定下一条段寄存器联用,可以确定下一条要取的指令的物理地址,因此要取的指令的物理地址,因此IP是很重要的是很重要的控制寄存器,用于控制程序的执行流程。控制寄存器,用于控制程序的执行流程。 代码段CS:IP 访问访问 指令指令F(标志寄存器(标志寄存器 Flags): 用于存放反映处理器和运行程序执行结果状态的控制用于存放反映处理器和运行程序执行结果状态的控制标志和条件码标志。标志和条件码标志。F中共有中共有9个个标志位:标志位
10、:6个个条件码标志位,条件码标志位,3个个控制标志位。控制标志位。 CF 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PFAFZF SF TFIFDFOFF寄存器寄存器OF 溢出标志:计算结果溢出时,溢出标志:计算结果溢出时,OF=1,否则否则 OF=0。SF 符号标志:计算结果小于符号标志:计算结果小于0时,时,SF=1,否则否则 SF=0。ZF 零标志:计算结果等于零标志:计算结果等于0时,时,ZF=1,否则否则 ZF=0。CF 进位进位/借位标志:最高有效位有进位或借位时,借位标志:最高有效位有进位或借位时,CF=1,否则否则 CF=0。AF 辅助进位辅助
11、进位/借位标志,半字节进位借位标志,半字节进位/借位标志借位标志PF 奇偶标志奇偶标志DF 方向标志,控制串操作中的地址增减。方向标志,控制串操作中的地址增减。DF=0,地址增;,地址增;DF=1,地址减,地址减。IF 中断标志,中断标志,IF=1,开中断;开中断;IF=0,关中断关中断。TF 陷阱标志,陷阱标志,TF=1,CPU单步方式下执行程序,单步方式下执行程序,TF=0,CPU正常工作正常工作。3个控制标志位个控制标志位:6个条件码标志位个条件码标志位:0 0 0 0 0 0 1 1PF=10 0 0 0 1 0 1 1PF=07 6 5 4 3 2 1 0返回返回3.3 堆栈与存储器
12、结构堆栈与存储器结构(1) 堆栈堆栈 堆栈的固定端称为堆栈的固定端称为栈底栈底, 在存在存储器的高地址端,活动端称为储器的高地址端,活动端称为栈顶栈顶,数据的存取以数据的存取以先进后出先进后出原则在栈顶原则在栈顶进行。进行。SP栈顶指针寄存器始终保存栈顶指针寄存器始终保存栈顶地址,指向栈顶。栈顶地址,指向栈顶。 随着进栈数据的增多,堆栈从高地随着进栈数据的增多,堆栈从高地址向低地址方向扩展。址向低地址方向扩展。SP低地址低地址高地址高地址堆堆栈栈扩扩展展方方向向(SP)- -2新栈顶新栈顶堆栈数据的存取必须堆栈数据的存取必须以字为单位以字为单位PUSH BX(2) 存储器结构存储器结构 在存储
13、器中,最小的存储单位是在存储器中,最小的存储单位是字节字节,每个字节单元用一个,每个字节单元用一个无符号二无符号二进制数进制数编地址,从编地址,从0开始编址。书写存储单元地址时用开始编址。书写存储单元地址时用十六进制十六进制形式。形式。.栈顶栈顶栈底栈底堆栈段堆栈段BHBL栈顶栈顶.存储器存储器 64K存储器单元的存储器单元的编址方法如图所示。编址方法如图所示。0000H0001H0002H0003H0004H0005H0006HFFFEHFFFFH低字节低字节高字节高字节字单元字单元字节单元字节单元低地址字节单元低地址字节单元高地址字节单元高地址字节单元低字节存低地址单元,低字节存低地址单元
14、, 高字节存高地址单元。高字节存高地址单元。例:例: 将将3456H存入地址为存入地址为0005H的字单元中。的字单元中。5634一个存储器单元的物理地址由段地址和偏移地址形成。一个存储器单元的物理地址由段地址和偏移地址形成。问题:为什么要分问题:为什么要分段地址段地址和和偏移地址偏移地址呢?呢?16位寄存器位寄存器不能提供不能提供20位位的物理地址的物理地址解决问题的办法:解决问题的办法:存储器分段管理存储器分段管理 将存储器分段,每段最大不超过将存储器分段,每段最大不超过64KB,段内单元地址可用段内单元地址可用16位位表表示,称为示,称为偏移地址偏移地址。每段的起始地址称为。每段的起始地
15、址称为段地址段地址(也称为(也称为段基址段基址)。)。段地址如何表示?段地址如何表示?规定段地址必须能够被规定段地址必须能够被16整除,按整除,按20位位地址对地址对1M存储器编址如下:存储器编址如下: 0000 0H 00001H 00002H 0000EH 0000FH 0001 0H 00011H 00012H 0001EH 0001FH 0002 0H 00021H 00002H 0002EH 0002FH FFFF 0H FFFF1H FFFF2H FFFFEH FFFFFH20位物理地址的形成方法:位物理地址的形成方法:20位物理地址位物理地址=16位位段地址段地址左移左移4位(段
16、地址位(段地址16)+ 16位位偏移地址偏移地址 16位段地址位段地址015 16位偏移地址位偏移地址015+0 20位物理地址位物理地址19例:例:已知一个存储单元的段地址为已知一个存储单元的段地址为3200H,偏偏移地址为移地址为1210H,其物理地址是多少?其物理地址是多少?0011 0010 0000 0000 | 00000001 0010 000 1 0000+0011 0011 0010 0001 000032000H+ 1210H33210H000064K个个段内偏移量段内偏移量偏移地址偏移地址=段起始地址段起始地址64K段内地址段内地址0000H0001H0FFFH.FFFF
17、H64K段内地址段内地址0000H0001HFFFFH30000H段内偏移量段内偏移量偏移地址偏移地址=段起始地址段起始地址40000H存储器分段管理的地址概念图示存储器分段管理的地址概念图示: :30000H + 0FFFH =30FFFH 物理地址物理地址.存储器存储器0FFFH 可以对代码段、数据段、附加段和堆栈段各段按需要灵活地进行存储可以对代码段、数据段、附加段和堆栈段各段按需要灵活地进行存储区分配。区分配。(图图)存储器分段法的优点:存储器分段法的优点:(2) 将代码、数据存放在不同的内存区,便于程序重定位。将代码、数据存放在不同的内存区,便于程序重定位。(1) 使使16位寄存器最
18、终可以提供位寄存器最终可以提供20位物理地址;位物理地址;访问存储器单元时,寄存器的联用方式访问存储器单元时,寄存器的联用方式: (图图)next200FH返回返回寄存器与存储器的比较: 寄 存 器 存 储 器 在CPU内部在CPU外部访问速度快访问速度慢容量小,成本高容量大,成本低用名字表示用地址表示没有地址地址可用各种方式形成本章要求: (1) 了解CPU的功能结构,重点掌握寄存器的结构和各寄存器的一般用途和专门用途,寄存器的默认联用方式;(2)熟悉存储器的结构,理解编址方法和存储数据的方法,重点掌握段的划分和存储器单元物理地址的形成方法;(3)熟悉堆栈的结构,理解堆栈先进后出的存取方法,堆栈指针SP的作用。小小小小 结结结结