您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理与接口技术第二章
钱晓捷,微机原理与接口技术·第4版——基于IA-32处理器和32位汇编语言第2章处理器结构2.1处理器功能结构2.2寄存器2.3存储器组织2.4汇编语言基础2.5数据寻址方式微机原理与接口技术·第4版机械工业出版社2.1处理器的功能结构2.1.1处理器基本结构1.算术逻辑单元2.寄存器3.指令处理单元内部数据总线控制总线数据总线地址总线暂存器累加器ALU标志寄存器指令寄存指令译码时序和控制逻辑通用寄存器组地址寄存器组地址总线控制数据总线控制微机原理与接口技术·第4版机械工业出版社1.算术逻辑单元ALU计算机的运算器,负责处理器所能进行的各种运算,主要就是算术运算和逻辑运算累加器结构的处理器累加器(Accumulator)提供一个操作数保存运算结果标志(Flag)寄存器反映运算结果的辅助信息例如:有无进借位、是否为零、是否为负等也称为程序状态字(PSW)微机原理与接口技术·第4版机械工业出版社2.寄存器(Register)处理器内部需要高速存储单元,用于暂时存放程序执行过程中的代码和数据透明寄存器对应用人员不可见、不能直接控制的寄存器可编程(Programmable)寄存器具有引用名称、供编程使用通用寄存器数量较多、使用频度较高,具有多种用途专用寄存器只用于特定目的微机原理与接口技术·第4版机械工业出版社3.指令处理单元处理器的控制单元,它控制指令的执行和信息的传输指令执行的过程取指:指令处理单元将指令从主存取出,并通过总线传输到处理器内部的指令寄存器译码:指令处理单元通过指令译码电路获得该指令的功能执行:指令处理单元的时序和控制逻辑按一定的时间顺序发出和接收相应信号,完成指令所要求的操作取指译码执行2.1.28086的功能结构123456内部寄存器IPESSSDSCS输入/输出控制电路外部总线执行部分控制电路ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列执行单元(EU)总线接口单元(BIU)16位20位16位微机原理与接口技术·第4版机械工业出版社1.总线接口单元和执行单元总线接口单元指令队列、指令指针、段寄存器、地址加法器和总线控制逻辑管理与系统总线的接口,负责对存储器和外设访问执行单元ALU、通用寄存器、标志寄存器和控制电路负责指令译码、数据运算和指令执行指令执行的两个主要阶段:取指和执行取指:从主存取出指令代码进入指令队列执行:译码指令、并发出有关控制信号实现指令功能取指译码执行微机原理与接口技术·第4版机械工业出版社2.指令预取(Prefetch)8086处理器的指令读取,实际上是指令预取8086处理器维护着长度为6个字节的指令队列EU单元译码、执行指令,同时BIU单元读取后续指令BIU和EU两个单元相互独立,可以并行操作最简单的指令流水线技术节省许多取指时间,提高了工作效率程序转移将使预取指令作废,降低了效率微机原理与接口技术·第4版机械工业出版社2.1.380386的功能结构总线接口单元:为处理器提供同外部的接口指令预取单元:先行读取指令指令译码单元:从预取队列中取来指令,译码成微指令代码执行单元:ALU、乘法器、除法器和移位器等分段单元:逻辑地址变换成线性地址分页单元:将线性地址变换成物理地址各功能部件可以并行工作,进行流水线处理示意图微机原理与接口技术·第4版机械工业出版社2.1.4Pentium的功能结构1.超标量流水线:2条指令流水线2.分离Cache:指令Cache和数据Cache3.动态分支预测:预测程序执行顺序4.其他性能增强的浮点处理单元FPU常用指令固化改进复杂指令的微代码算法节能特性电源电压:3.3V微机原理与接口技术·第4版机械工业出版社2.2寄存器寄存器就是暂时存放数据的地方通过编写程序、由执行指令控制寄存器IA-32处理器基本执行环境:8个32位通用寄存器6个16位段寄存器32位标志寄存器32位指令指针对应用人员(程序员)来说,处理器被抽象为可编程寄存器示意图微机原理与接口技术·第4版机械工业出版社2.2.1通用寄存器处理器最常使用的整数通用寄存器可用于保存整数数据、地址等8个32位通用寄存器EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP8个16位通用寄存器AX,BX,CX,DX,SI,DI,BP,SP8个8位通用寄存器AH,AL,BH,BL,CH,CL,DH,DL存取16位寄存器,高16位不受影响存取8位寄存器,16/32位寄存器其他位不受影响示意图微机原理与接口技术·第4版机械工业出版社通用寄存器的名称EAX:累加器(Accumulator)EBX:基址寄存器(Base)ECX:计数器(Counter)EDX:数据寄存器(Data)ESI:源变址寄存器(SourceIndex)EDI:目的变址寄存器(DestinationIndex)EBP:基址指针(BasePointer)ESP:堆栈指针(StackPointer)示意图微机原理与接口技术·第4版机械工业出版社2.2.2标志寄存器标志(Flag)反映指令执行结果或控制指令执行形式用一个或多个二进制位表示一种标志0或1的不同组合表达标志的不同状态8086支持16位标志寄存器FLAGSIA-32处理器形成32位EFLAGS标志寄存器状态标志:记录指令执行结果的辅助信息控制标志:方向标志DF,仅用于串操作指令系统标志:控制操作系统或核心管理程序的操作方式示意图微机原理与接口技术·第4版机械工业出版社1.状态标志最基本的标志,有6个用来记录指令执行结果的辅助信息加减运算和逻辑运算指令是主要设置它们其他有些指令的执行也会相应地设置它们处理器主要使用其中5个构成各种条件,分支指令判断这些条件实现程序分支OF11DF10IF9TF8SF7ZF605AF403PF211CF0微机原理与接口技术·第4版机械工业出版社进位标志CF(CarryFlag)当加减运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0针对无符号整数,判断加减结果是否超出表达范围N个二进制位表达无符号整数的范围:0~2N-18位:0~+25516位:0~+6553532位:0~+232-1微机原理与接口技术·第4版机械工业出版社进位标志CF:举例8位二进制数相加:00111010+01111100=10110110十六进制表达:3A+7C=B6转换成十进制数:58+124=182没有产生进位:CF=08位二进制数相加:10101010+01111100=[1]00100110十六进制表达:AA+7C=[1]B6转换成十进制数:170+124=294=256+38产生进位:CF=10<182<255进位1表达256微机原理与接口技术·第4版机械工业出版社溢出标志OF(OverflowFlag)有符号数加减结果有溢出,则OF=1;否则OF=0针对有符号整数,判断加减结果是否超出表达范围N个二进制位表达有符号整数的范围:-2N-1~2N-1-18位:-128~+12716位:-32768~+3276732位:-231~+231-1微机原理与接口技术·第4版机械工业出版社溢出标志OF:举例8位二进制数相加:00111010+01111100=10110110十六进制表达:3A+7C=B6转换成十进制数:58+124=182超出范围:OF=18位二进制数相加:10101010+01111100=[1]00100110十六进制表达:AA+7C=[1]B6转换成十进制数:-86+124=38没有超出范围:OF=0182>127补码AAH表达-86微机原理与接口技术·第4版机械工业出版社进位和溢出的区别进位标志反映无符号整数运算结果是否超出范围有进位,加上进位或借位后运算结果仍然正确溢出标志反映有符号整数运算结果是否超出范围有溢出,运算结果已经不正确处理器按照无符号整数求得结果设置进位标志CF设置溢出标志OF程序员决定操作数是无符号数,关心进位操作数是有符号数,注意溢出微机原理与接口技术·第4版机械工业出版社溢出标志的判断处理器硬件判断规则最高位和次高位同时有进位或同时无进位,无溢出;最高位和次高位进位状态不同,有溢出人工判断的简单规则只有当两个相同符号数相加(含两个不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;其他情况下,不会产生溢出00111010+0111110010110110正数正数负数最高位次高位微机原理与接口技术·第4版机械工业出版社零标志ZF(ZeroFlag)运算结果为0,则ZF=1,否则ZF=0结果是0,ZF标志不是0!举例8位二进制数相加:00111010+01111100=10110110结果不是0,ZF=08位二进制数相加:10000100+01111100=[1]00000000结果是0,ZF=1结果进位微机原理与接口技术·第4版机械工业出版社符号标志SF(SignFlag)运算结果最高位为1,则SF=1;否则SF=0举例8位二进制数相加:00111010+01111100=10110110最高位=1:SF=18位二进制数相加:10000100+01111100=[1]00000000最高位=0:SF=0结果进位最高位=符号位=SF微机原理与接口技术·第4版机械工业出版社奇偶标志PF(ParityFlag)当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=0举例8位二进制数相加:00111010+01111100=10110110“1”的个数为5个:PF=08位二进制数相加:10000100+01111100=[1]00000000“1”的个数为0个:PF=1结果进位仅最低8位“1”的个数微机原理与接口技术·第4版机械工业出版社2.控制标志方向标志DF(DirectionFlag)仅用于串操作指令,控制地址的变化方向设置DF=0,每次串操作后的存储器地址就自动增加,即从低地址向高地址处理数据串设置DF=1,每次串操作后的存储器地址就自动减少,即从高地址向低地址处理数据串执行CLD指令设置DF=0执行STD指令设置DF=1微机原理与接口技术·第4版机械工业出版社3.系统标志中断允许标志IF(Interrupt-enableFlag)陷阱标志TF(TrapFlag),单步标志I/O特权层标志IOPL(I/OPrivilegeLevel)任务嵌套标志NT虚拟8086方式标志VM恢复标志RF对齐检测标志ACCPU识别标志ID(IdentificationFlag)虚拟中断标志VIF虚拟中断挂起标志VIP微机原理与接口技术·第4版机械工业出版社2.2.3专用寄存器专用寄存器往往只用于特定指令或场合1.指令指针寄存器EIP保存将要执行的指令在主存的地址2.段寄存器段是安排相关代码或数据的主存区域段寄存器表明段在主存中的位置6个16位段寄存器:CSDSSSESFSGS3.其他寄存器浮点寄存器、多媒体寄存器系统专用寄存器微机原理与接口技术·第4版机械工业出版社2.3存储器组织物理存储器以字节为基本存储单位每个存储单元被分配一个唯一的地址这个地址就是物理地址物理地址空间从0开始顺序编排,直到处理器支持的最大存储单元8086处理器支持1MB存储器:00000H~FFFFFHIA-32处理器支持4GB存储器:00000000H~FFFFFFFFH操作系统利用存储管理单元进行存储管理,程序并不直接寻址物理存储器IA-32处理器提供3种存储模型,用于程序访问存储器微机原理与接口技术·第4版机械工业出版社2.3.1存储模型1.平展存储模型(Flatmemorymodel)存储器是一个连续的地址空间(线性地址空间)组成IA-32处理器支持4GB容量线性地址空间2.段式存储模型存储器由一组独立的地址空间--段(Segment)每个段都可以达到4GB容量
本文标题:微机原理与接口技术第二章
链接地址:https://www.777doc.com/doc-3156062 .html