3_微型计算机的结构(CPU和内存)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章微型计算机的结构本章要点8086/8088CPU内部结构8086/8088寄存器和标志堆栈与存储器结构寻址方式和指令系统8086是16位字长的微处理器,8088的内部结构为16位,外部数据总线8位,是准16位字长的微处理器,二者指令系统相同,均具有20位地址线,寻址能力达到1MB空间。3.18086/8088的功能结构next总线接口单元BIU(BusInterfaceUnit)执行单元EU(ExecutionUnit)协同完成执行内存中存放的指令序列。Go8086/8088微处理器由总线接口单元和执行单元组成。BIU和EU相互独立,可并行操作,构成指令流水线结构。T1……取指令取指令取指令等待执行执行……执行BIUEUT2T3返回3.28086/8088的寄存器结构14个16位寄存器,分为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代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器SPBPSIDI堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器FIP指令指针寄存器标志寄存器nextAX(累加器Accumulator):主要的算术运算寄存器,专用于:乘、除法运算、十进制调整及I/O操作等操作。返回DXAX3116150BX(基址寄存器Base):常用于存放存储区的起始地址。CX(计数寄存器Count):常用作循环操作和字串处理的计数控制。DX(数据寄存器Data):常与AX联用,做双字乘、除法时,DX存放高位字,AX存放低位字。此外在I/O操作时提供外部设备接口的端口地址。CS(代码段地址寄存器CodeSegment):存放代码段的起始地址。代码段存放当前正在运行的程序返回DS(数据段地址寄存器DataSegment):存放数据段的起始地址。数据段存放当前正运行的程序所用的数据。SS(堆栈段地址寄存器StackSegment):存放堆栈段的起始地址。堆栈段是定义堆栈的存储区。ES(附加段地址寄存器ExtraSegment):存放附加段的起始地址。附加段是附加的数据段,作为辅助数据区存放当前正运行程序所用的数据。SP(栈顶指针寄存器StackPointer):提供堆栈栈顶单元的偏移地址。与SS段寄存器联用,控制数据进栈和出栈。堆栈段SS:SP访问栈顶堆栈段SS:BP访问栈内数据段DS:SI访问数据附加段ES:DI访问数据BP(基址指针寄存器BasePointer):常用于提供堆栈内某个单元的偏移地址。与SS段寄存器联用,访问堆栈中的任一个存储单元。SI(源变址寄存器SourceIndex):与DS段寄存器联用,可以访问数据段中的任一个存储单元。DI(目的变址寄存器DestinationIndex):与ES段寄存器联用,可访问附加段中的任一个存储单元。SI、DI也常用于在字串操作中提供偏移地址,并具有地址自动增量或减量的功能。返回IP(指令指针寄存器InstructionPointer):存放代码段中指令的偏移地址。在程序执行过程中,始终自动给出下一条要取的指令的偏移地址。IP与CS段寄存器联用,可以确定下一条要取的指令的物理地址,因此IP是很重要的控制寄存器,用于控制程序的执行流程。代码段CS:IP访问指令F(标志寄存器Flags):用于存放反映处理器和运行程序执行结果状态的控制标志和条件码标志。F中共有9个标志位:6个条件码标志位,3个控制标志位。CF1514131211109876543210PFAFZFSFTFIFDFOFF寄存器OF—溢出标志:计算结果溢出时,OF=1,否则OF=0。SF—符号标志:计算结果小于0时,SF=1,否则SF=0。ZF—零标志:计算结果等于0时,ZF=1,否则ZF=0。CF—进位/借位标志:最高有效位有进位或借位时,CF=1,否则CF=0。AF—辅助进位/借位标志,半字节进位/借位标志PF—奇偶标志DF—方向标志,控制串操作中的地址增减。DF=0,地址增;DF=1,地址减。IF—中断标志,IF=1,开中断;IF=0,关中断。TF—陷阱标志,TF=1,CPU单步方式下执行程序,TF=0,CPU正常工作。3个控制标志位:6个条件码标志位:00000011PF=100001011PF=076543210返回3.3堆栈与存储器结构(1)堆栈堆栈的固定端称为栈底,在存储器的高地址端,活动端称为栈顶,数据的存取以先进后出原则在栈顶进行。SP栈顶指针寄存器始终保存栈顶地址,指向栈顶。随着进栈数据的增多,堆栈从高地址向低地址方向扩展。SP低地址高地址堆栈扩展方向(SP)-2新栈顶堆栈数据的存取必须以字为单位PUSHBX(2)存储器结构在存储器中,最小的存储单位是字节,每个字节单元用一个无符号二进制数编地址,从0开始编址。书写存储单元地址时用十六进制形式。...栈顶栈底堆栈段BHBL栈顶...存储器64K存储器单元的编址方法如图所示。0000H0001H0002H0003H0004H0005H0006HFFFEHFFFFH低字节高字节字单元字节单元低地址字节单元高地址字节单元低字节存低地址单元,高字节存高地址单元。例:将3456H存入地址为0005H的字单元中。5634一个存储器单元的物理地址由段地址和偏移地址形成。问题:为什么要分段地址和偏移地址呢?16位寄存器不能提供20位的物理地址解决问题的办法:存储器分段管理将存储器分段,每段最大不超过64KB,段内单元地址可用16位表示,称为偏移地址。每段的起始地址称为段地址(也称为段基址)。段地址如何表示?规定段地址必须能够被16整除,按20位地址对1M存储器编址如下:00000H00001H00002H……0000EH0000FH00010H00011H00012H……0001EH0001FH00020H00021H00002H……0002EH0002FH…………………FFFF0HFFFF1HFFFF2H……FFFFEHFFFFFH20位物理地址的形成方法:20位物理地址=16位段地址左移4位(段地址×16)+16位偏移地址16位段地址01516位偏移地址015+020位物理地址19例:已知一个存储单元的段地址为3200H,偏移地址为1210H,其物理地址是多少?0011001000000000|00000001001000010000+0011001100100001000032000H+1210H33210H000064K个段内偏移量偏移地址=段起始地址64K段内地址0000H0001H……0FFFH…….FFFFH64K段内地址0000H0001H……FFFFH30000H段内偏移量偏移地址=段起始地址40000H存储器分段管理的地址概念图示:30000H+0FFFH=30FFFH物理地址......存储器0FFFH可以对代码段、数据段、附加段和堆栈段各段按需要灵活地进行存储区分配。(图)存储器分段法的优点:(2)将代码、数据存放在不同的内存区,便于程序重定位。(1)使16位寄存器最终可以提供20位物理地址;访问存储器单元时,寄存器的联用方式:(图)next200FH返回返回寄存器与存储器的比较:寄存器存储器在CPU内部在CPU外部访问速度快访问速度慢容量小,成本高容量大,成本低用名字表示用地址表示没有地址地址可用各种方式形成本章要求:(1)了解CPU的功能结构,重点掌握寄存器的结构和各寄存器的一般用途和专门用途,寄存器的默认联用方式;(2)熟悉存储器的结构,理解编址方法和存储数据的方法,重点掌握段的划分和存储器单元物理地址的形成方法;(3)熟悉堆栈的结构,理解堆栈先进后出的存取方法,堆栈指针SP的作用。小结

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功