您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第二章 微处理器的结构及存储器
第2章微处理器的结构及存储器组成第2章第2章微处理器的结构及存储器组成第2章教学要求与重点了解微机系统的基本软硬件组成掌握8086的寄存器组和存储器组织★重点1:工作寄存器组★重点2:存储器的特点和使用★重点3:存储器物理地址的形成★重点4:存储器的分段第2章简单解释一下几个名字术语字长:芯片内部一次传输数据的宽度。主频:芯片所用的主时钟频率。数据总线宽度:芯片内部数据传输的宽度。地址总线宽度:指专用于传送地址的总线宽度。地址总线宽度与寻址空间的关系:高速缓存(cache):微处理器的结构及存储器组成2.180×86微处理器第2章微处理器飞速发展8038680486奔腾奔腾2代奔腾4代802868086奔腾3代IA-64(安腾)4004不是我不明白,这世界变化太快。扎扎实实掌握知识,以不变应万变!第2章2.2基于微处理器的计算机系统构成硬件:中央处理机CPU总线控制逻辑接口接口存储器大容量存储器I/O设备I/O子系统系统总线......软件:系统软件用户软件运算器控制器工作寄存器2.2.1硬件第2章系统软件:DOS平台MS-DOS6.22Windows9.x的DOS实地址方式MS-DOS虚拟环境应用软件:开发汇编语言程序涉及文本编辑器汇编程序连接程序调试程序2.2.2软件微处理器的结构及存储器组成第2章2.3微处理器的结构微处理器是微机的硬件核心主要包含指令执行的运算和控制部件,还有多种寄存器对程序员来说,微处理器抽象为以名称存取的寄存器2.3.18086微处理器结构第2章8086内部结构有两个功能模块,完成一条指令的取指和执行功能模块之一:总线接口单元BIU,主要负责读取指令和操作数模块之二:执行单元EU,主要负责指令译码和执行微处理器的结构及存储器组成第2章8086内部结构内部暂存器IPESSSDSCS输入/输出控制电路外部总线执行部分控制电路123456∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列缓冲器执行部件(EU)总线接口部件(BIU)16位20位16位8位第2章8086的执行方式取指取指取指取指取指得到数据取指等待执行执行执行执行BIUEU……取指执行取指执行取指执行…时间第2章80486微处理器结构32位基址/变址总线桶形移位器寄存器组ALU分段部件描述符寄存器界限和属性PLA分页部件TLBCache部件8KB一体的Cache总线大小控制奇偶控制和产生地址驱动器写缓存(4)数据总线收发器总线控制请求序列发生器成组控制Cache控制预取部件32字节代码队列EP寄存器组FPU控制ROM控制和保护部件指令译码20位物理地址页属性32位系统地址32位写数据系统接口已译码的指令24位代码流整数部件32位读数据64位部件传送总线微指令总线32位位移总线32位线性地址总线32位数据总线32位数据总线第2章80486微处理器的特点一种高性能全32位的微处理器把构成80386微机系统的主处理器、数值协处理器和一个具有8KB的Cache存储器集成在一块集成电路芯片中沿用了指令流水线技术采用RISC思想设计第2章补充RISC:ReducedInstructionSetComputer精简指令集计算机技术CISC:ComplexInstructionSetComputer复杂指令集计算机技术计算机指令流水线技术第2章Pentium微处理器的结构指令Cache整数单元分支预测预取指令缓冲器整数单元寄存器组数据Cache64b总线接口流水线结构的浮点单元MULADDDIV32b32b32b64b64b64b256bUV第2章Pentium体系结构特点超标量流水线独立的指令Cache和数据Cache浮点操作分支预测第2章对汇编语言程序员来说,8086内部结构就是可编程的寄存器组8个通用寄存器1个指令指针寄存器1个标志寄存器4个段寄存器2.3.28086的寄存器组第2章8086的寄存器组AHALBHBLCHCLDHDLSPAXBXCXDXBPSIDIIPFLAGHFLAGLCSDSSSES(SP)(PC)(PSW)累加器基数计数数据堆栈指针基数指针源变址目的变址指令指针状态标志代码分段数据分段堆栈分段附加分段控制寄存器段寄存器数据寄存器指针寄存器变址寄存器通用寄存器ODITSZAPC15870(a)(b)(A)(HL)(BC)(DE)第2章1.8086的通用寄存器8086的16位通用寄存器是:AXBXCXDXSIDIBPSP其中前4个数据寄存器都还可以分成高8位和低8位两个独立的寄存器8086的8位通用寄存器是:AHBHCHDHALBLCLDL对其中某8位的操作,并不影响另外对应8位的数据第2章◆数据寄存器数据寄存器用来存放计算的结果和操作数,也可以存放地址每个寄存器又有它们各自的专用目的AX--累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;BX--基址寄存器,常用做存放存储器地址;CX--计数器,作为循环和串操作等指令中的隐含计数器;DX--数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。第2章◆变址寄存器变址寄存器常用于存储器寻址时提供地址SI是源变址寄存器DI是目的变址寄存器串操作类指令中,SI和DI具有特别的功能第2章2指针寄存器指针寄存器用于寻址内存堆栈内的数据SP为堆栈指针寄存器,指示栈顶的偏移地址SP不能再用于其他目的,具有专用目的BP为基址指针寄存器,表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址第2章◆堆栈(Stack)堆栈是主存中一个特殊的区域它采用先进后出FILO(FirstInLastOut)或后进先出LIFO(LastInFirstOut)的原则进行存取操作,而不是随机存取操作方式。堆栈通常由处理器自动维持。在8086中,由堆栈段寄存器SS和堆栈指针寄存器SP共同指示第2章◆指令指针IP指令指针寄存器IP,指示代码段中指令的偏移地址它与代码段寄存器CS联用,确定下一条指令的物理地址计算机通过CS:IP寄存器来控制指令序列的执行流程IP寄存器是一个专用寄存器第2章3标志寄存器标志(Flag)用于反映指令执行结果或控制指令执行形式8086处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器)OF111512DF10IF9TF8SF7ZF65AF43PF21CF0程序设计需要利用标志的状态第2章◆标志的分类状态标志--用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它CFZFSFPFOFAF控制标志--可由程序根据需要用指令设置,用于控制处理器执行指令的方式DFIFTF第2章◆进位标志CF(CarryFlag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0。3AH+7CH=B6H,没有进位:CF=0AAH+7CH=(1)26H,有进位:CF=1第2章◆零标志ZF(ZeroFlag)若运算结果为0,则ZF=1;否则ZF=03AH+7CH=B6H,结果不是零:ZF=084H+7CH=(1)00H,结果是零:ZF=1注意:ZF为1表示的结果是0第2章◆符号标志SF(SignFlag)运算结果最高位为1,则SF=1;否则SF=03AH+7CH=B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态第2章◆奇偶标志PF(ParityFlag)当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=03AH+7CH=B6H=10110110B结果中有5个1,是奇数:PF=0PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作第2章◆溢出标志OF(OverflowFlag)若算术运算的结果有溢出,则OF=1;否则OF=03AH+7CH=B6H,产生溢出:OF=1AAH+7CH=(1)26H,没有溢出:OF=0第2章◆溢出标志OF(OverflowFlag)问题什么是溢出?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?如何判断是否溢出?第2章◆什么是溢出处理器内部以补码表示有符号数8位表达的整数范围是:+127~-12816位表达的范围是:+32767~-32768如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确3AH+7CH=B6H,就是58+124=182,已经超出-128~+127范围,产生溢出,故OF=1;另一方面,补码B6H表达真值是-74,显然运算结果也不正确第2章◆溢出和进位溢出标志OF和进位标志CF是两个意义不同的标志进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。第2章◆溢出和进位的对比例1:3AH+7CH=B6H无符号数运算:58+124=182范围内,无进位有符号数运算:58+124=182范围外,有溢出例2:AAH+7CH=(1)26H无符号数运算:170+124=294范围外,有进位有符号数运算:-86+124=28范围内,无溢出第2章◆如何运用溢出和进位处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF。应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。第2章◆溢出的判断判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确其他情况下,则不会产生溢出第2章◆辅助进位标志AF(AuxiliaryCarryFlag)3AH+7CH=B6H,D3有进位:AF=1运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=0。这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心第2章◆方向标志DF(DirectionFlag)用于串操作指令中,控制地址的变化方向:设置DF=0,存储器地址自动增加;设置DF=1,存储器地址自动减少。CLD指令复位方向标志:DF=0STD指令置位方向标志:DF=1第2章◆中断允许标志IF(Interrupt-enableFlag)用于控制外部可屏蔽中断是否可以被处理器响应:设置IF=1,则允许中断;设置IF=0,则禁止中断。CLI指令复位中断标志:IF=0STI指令置位中断标志:IF=1第2章◆跟踪标志TF(TrapFlag)用于控制处理器进入单步操作方式:设置TF=0,处理器正常工作;设置TF=1,处理器单步执行指令。单步执行指令——处理器在每条指令执行结束时,便产生一个编号为1的内部中断这种内部中断称为单步中断所以TF也称为单步标志利用单步中断可对程序进行逐条指令的调试这种逐条指令调试程序的方法就是单步调试第2章8086有4个16位段寄存器CS(代码段)指明代码段的起始地址SS(堆栈段)指明堆栈段的起始地址DS(数据段)指明数据段的起始地址ES(附加段)指明附加段的起始地址4段寄存器每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途第2章寄存器是微处理器内部暂存数据的存储单元,以名称表示存储器则是微处理器外部存放程序及其数据的空间程序及其数据可以长久存放在外存,在程序需要时才进入主存主存需要利用地址区别2.4存储器第2章数据信息的表达单位计算机中信息的单位二进制位Bit:存储一位二进制数:0或1字节Byte:8个二进制位,D7~D0字Word:16位,2个字节,D15~D0双字DWord:32位,4个字节,D31
本文标题:第二章 微处理器的结构及存储器
链接地址:https://www.777doc.com/doc-3170446 .html