您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 微机原理chapter2_微处理器体系与结构
12.1微处理器的发展2.2Intel8086/8088微处理器的结构2.2.1执行单元与总线接口单元2.2.28086/8088的寄存器结构2.2.38086/8088的存储器组织2.3Intel80386微处理器的结构2.3.180386微处理器的体系结构2.3.280386的工作方式2.3.3存储器管理第二章微处理器体系与结构2微型计算机的发展是以微处理器的发展来表征的微处理器的集成度每隔18个月就会翻一番,芯片的性能也随之提高一倍------摩尔定律GordonE.Moore,Intel公司的创始人之一2.1Intel微处理器的概要历史3代发表年份型号19711972484004800850100.20.310.0519748808060.52-40.51978198216322.913.44.77-108-1611-219851989321-227.512016-3325-666-1220-40199332Pentium0.6-0.833060-200100-2001996199719971999200032P/ProP/MMXPIIPIII0.60.60.35.25-.13.18-.135504507508501000133-200166-233233-450450-12001300-24003002001?64Itanium0.13CPU:2.5KCache:30K800(20条指令/时钟周期)3000微处理器的发展一二三四五六七8086/8088802868048680386PIV微型计算机的常用术语和指标时钟频率(MHz)线宽(m)速度(MIPS)字长(bits)晶体管数(万个)14•8086---芯片时钟频率为4.77MHz---内部数据总线和外部数据总线是16位---地址总线为20位,可最大寻址1MB的存储空间•80386---80x86家族的第一个32位处理器---内部和外部数据总线都是32位---地址总线也是32位,可寻址高达4GB内存---具有实模式和保护模式外,还增加了一种叫虚拟86的工作方式,可以通过同时模拟多个8086处理器来提供多任务能力home152.2Intel8086/8088微处理器的结构注:8086CPU数据总线16位,指令队列为6个字节;8088CPU数据总线8位,指令队列为4个字节。执行单元与总线接口单元物理地址home19总线接口部件BIU(BusInterfaceUnit)形成物理地址:(1)16位段寄存器:CS,DS,ES,SS(2)16位指令指针IP(3)20位地址加法器指令地址——代码段寄存器*16+IP操作数地址——数据段寄存器*16+偏移地址例2-1:(CS)=2000H(IP)=0066H(CS)*1620000H+(IP)0066H指令地址20066H200DS2018偏移地址总线控制电路12018H存储器12018HAL000011010000110100001101RD1000通过BIU读写操作数例2-2:MOVAL,(2018H)已知DS=100021流水线工作方式8086/8088取指部分与执行部分是分开的。–在一条指令的执行过程中可以取出下一条(或多条)指令,指令在指令队列中排队;–在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。8086/8088微处理器:–BIU和EU分开,取指和执行可以重迭,–大大减少了等待取指所需的时间,提高CPU的利用率。早期工作方式238086/8088的寄存器结构AHALBHBLCHCLDHDLSPBPSIDIIPFLAGSCSDSSSES通用寄存器组累加器基址寄存器计数寄存器数据寄存器堆栈指针基址指针源变址寄存器目的变址寄存器指令指针标志寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器数据寄存器地址指针、变址寄存器控制寄存器段寄存器15870AXBXCXDXhome24通用数据寄存器通用寄存器AX:(Accumulator)作为累加器。•算术运算的主要寄存器,所有I/O指令都使用这一寄存器与外部设备交换数据。BX:Base用作基址寄存器使用。•在计算内存储器地址时,经常用来存放基址。CX:Count可以作计数寄存器使用。•在循环LOOP指令和串处理指令中用作隐含计数器。DX:Data可以作为数据寄存器使用。•一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;•对某些I/O操作DX可用来存放I/O的端口地址(口地址256)。25SP、BP、SI、DI四个16位寄存器。以字为单位在运算过程中存放操作数,常用于提供偏移量地址。指针与变址寄存器•SP——堆栈指针,存放栈顶的偏移地址,必须与SS段寄存器联合使用确定实际地址。•BP——基址指针,存放堆栈段中一个数据区基地址的偏移地址SP、BP--指针寄存器,用于访问堆栈段中的数据SI、DI--变址寄存器,用于访问数据段和附加段中的数据•SI——源变址,存放源操作数的偏移地址•DI——目的变址,存放目的操作数的偏移地址26段寄存器CS(CodeSegmentRegister):代码段,程序一般放在代码段DS(DataSegmentRegister):数据段SS(StackSegmentRegister):堆栈段ES(ExtraSegmentRegister):附加段段寄存器:4个16位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。27控制寄存器(IP、PSW)•用来存储代码段中的偏移地址,控制CPU的指令执行顺序•程序运行过程中IP始终指向下一次要取出的指令偏移地址。IP要与CS寄存器相配合才能形成真正的物理地址。•IP由控制程序分支的指令、中断以及异常等隐含控制,用户程序不能直接控制IP。•读IP唯一的方法是执行CALL指令,从过程堆栈读指令指针的返回值。指令指针寄存器IP(InstructionPointer)288086/8088标志寄存器有9个标志位:6个状态标志位,3个控制标志位状态标志位反映算术或逻辑运算后结果的状态:CF——进位标志,运算结果最高位产生进位或借位,CF=1PF——奇偶标志,结果低8位中1的个数为偶数,PF=1AF——辅助进位标志,低3位产生进位置1,用于十进制数运算调整ZF——零标志,结果为0置1SF——符号标志,与运算结果的最高位相同OF——溢出标志,可以用来判断有符号整数补码运算结果的正确性OFDFIFTFSFZFAFPFCFFLAGS015PSW—(ProcessorStatesWordProgram)29(5394H)+(-777FH)[5394H]补0101001110010100+[-777FH]补1000100010000001--------------------------------------------------------[-23EBH]补1101110000010101例2-3FLAGS11109876543210OFDFIFTFSFZFAFPFCFCF=0AF=0SF=1ZF=0PF=0OF=0例2-4条件转移指令31条件转移指令JCCF=1有进位转移JNCCF=0无进位转移JZ/JEZF=1结果为零/相等转移JNZ/JNEZF=0不为零/不相等转移JSSF=1符号为负转移JNSSF=0符号为正转移JOOF=1溢出转移JNOOF=0无溢出转移JP/JPEPF=1奇偶位为1/为偶转移JNP/JPOPF=0奇偶位为0/为奇转移指令助记符测试条件指令功能next33控制标志用于控制CPU的操作,由程序设置或清除:DF——方向标志,控制数据串操作指令的步进方向STD指令将DF置1,使串操作过程中地址自动递减CLD指令将DF清0,使串操作过程中地址自动递增IF——中断允许标志,控制可屏蔽中断STI指令将IF置1,允许CPU接受可屏蔽中断请求CLI指令将IF清0,禁止CPU接受可屏蔽中断请求TF——陷阱标志,为调试程序而设将TF置1,CPU处于单步工作方式将TF清0,CPU正常执行程序FLAGS015OFDFIFTFSFZFAFPFCF控制标志34•存储器结构•存储器的分段结构和物理地址的形成•信息分段存储与段寄存器8086/8088的存储器组织home35存储器结构存储单元的地址和内容存储器位编号:8086/8088字长16位,由二个字节组成,位编号如下:高位字节MSB(8~15位)低位字节LSB(0~7位)8086/8088内部的ALU能进行16位运算。有关地址寄存器如SP、IP、BP、SI、DI等都是16位的。368086/8088微处理器的内存空间为220=1MB,地址由00000-FFFFF(H)编码,按字节存储•允许进行字节操作、字和双字操作•数据总是存放在相邻的存储器单元。•高字节高地址,低字节在地址•以低地址作为字地址同一个地址既可以看作字节单元地址,又可看作字单元地址,需要根据使用情况确定。存储器结构37例2-5字单元:(0004H)=1234H字节单元:(0004H)=34H思考题:字23AB如何存储在地址为02102的存储单元中?双字A00055FF如何存储在地址为02102的存储单元中?存放数据的起始地址可以任意,但是字数据存放在偶数地址单元,双字数据存放在能被4整除的地址单元,可以改善程序性能。—8086处理器对内存的访问只需一个总线周期388086/8088系统的存储体结构8086系统的存储体结构8088系统的存储体结构39仅A0为低电平时,CPU使用AD7-AD0-----偶地址字节操作仅BHE为低电平时,CPU使用AD15-AD8-----奇地址字节操作若BHE、A0同时为低电平,CPU对AD15-AD0操作---从偶地址单元读写一个字---字操作8086CPU有16根数据线可以同时传送16位数据(字操作,使用AD15-AD0)也可以只传送8位数据(字节操作,使用AD15-AD8或AD7-AD0)8086系统的存储体结构40•如果字地址为奇地址,需要两次访问存储器AD15---AD8(低字节)AD7---AD0(高字节)从奇地址开始读/写一个字0110AD15---AD0AD15---AD8AD7---AD0从偶地址开始读/写一个字从奇地址开始读/写一个字节从偶地址开始读/写一个字节000110总线使用情况操作BHEA0BHEA0编码含义例2-641D15…D8D7…D0512K*8位偶地址存储体(A0=0)512K*8位奇地址存储体(BHE=0)(A0=1)始的一个字HL从奇地址开000000000200004FFFFE始的一个字LH从偶地址开000010000300005FFFFF0000000001000020000300004LHLH例2-6next438086/8088有20条地址总线,直接寻址能力为220=1M字节。用16进制数表示1M字节的地址范围应为00000H~FFFFFH。存储器的分段结构和物理地址的形成8086/8088存储器分段结构逻辑地址与物理地址44存储器分段结构8086/8088地址总线是20位的,CPU中的寄存器是16位的,20位地址无法用16位寄存器表示,必须分段。程序员在编制程序时把存储器划分成段。段是可独立寻址的内存单位,每个段的起始地址由一个基址设定,它是一个段最低的地址。段内地址16位,每个段的长度最大可达64KB;实际可以根据需要来确定段大小,它可以是64K范围内的任意字节数。IBMPC机对段的起始地址有限制,即段必须从任一小段(paragraph)的首地址开始。45逻辑地址和物理地址逻辑地址:由段基址和偏移量两部分组成。段基址:段寄存器给出的段起始地址,即段起始地址高16位值。偏移量:存储单元在段内相对于段起始地址的距离,也称偏移地址。编写程序时只能使用逻辑地址。段基址和偏移量都为16位的无符号二进制数。逻辑地址的表示形式
本文标题:微机原理chapter2_微处理器体系与结构
链接地址:https://www.777doc.com/doc-3562708 .html