X微处理器.pptx
《X微处理器.pptx》由会员分享,可在线阅读,更多相关《X微处理器.pptx(178页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/5/11第第2 2章章 80X8680X86微处理器微处理器2.1 8086/8088微处理的编程结构一、8086和8088差别:相同点:16位CPU,AB宽度为20位 差 别:1、指令预取队列:8088 4字节,8086 6字节 2、数据总线引脚:8088 8根,8086 16根 8088为准16位CPU,内部DB为16位,但外部为8为,即16位数据要分两次传送。本课程主要介绍8086取指令取指令指令译码指令译码取操作数取操作数执行指令执行指令存放结果存放结果第1页/共178页2023/5/12串行工作方式:串行工作方式:80868086以前的CPUCPU采用串行工作方式:取指令1
2、执行1取操作数2执行2CPUBUS忙碌忙碌忙碌忙碌存结果1取指令21 1)CPUCPU执行指令时总线空闲执行指令时总线空闲2 2)CPUCPU访问存储器时要等待总线操作的完成访问存储器时要等待总线操作的完成 (存取数据或指令存取数据或指令)缺点:缺点:CPUCPU无法全速运行无法全速运行解决:总线空闲预取解决:总线空闲预取,CPU,CPU需要立刻得到需要立刻得到第2页/共178页2023/5/13并行工作方式:并行工作方式:8086CPU采用并行工作方式取指令2 取操作数BIU存结果取指令3 取操作数 取指令4执行1执行2执行3 EUBUS忙碌忙碌忙碌忙碌忙碌忙碌结论结论:指令预取队列的存在使
3、EU和BIU两个部分可同时进行工作,提高CPU的效率;降低对存储器速度要求第3页/共178页2023/5/148086的流水线操作8086 CPU包括两大部分:EU和BIUBIU不断地从存储器取指令送入指令队列寄存器IPQ,EU不断地从IPQ取出指令执行EU和BIU构成了一个简单的2工位流水线指令预取队列IPQ是实现流水线操作的关键(类似于工厂流水线的传送带)新型CPU将一条指令划分成更多的阶段,以便可以同时执行更多的指令例如,PIII为14个阶段,P4为20个阶段(超级流水线)第4页/共178页2023/5/158088/8086 CPU的特点的特点采用并行流水线工作方式对内存空间实行分段管
4、理:每段大小为16B16B64KB64KB用段地址和段内偏移实现对1MB1MB空间的寻址设置地址段寄存器指示段的首地址支持多处理器系统;片内没有浮点运算部件,浮点运算由数学协处理器8087支持(也可用软件模拟)注:80486DX以后的CPU均将数学协处理器作为标准部件集成到CPU内部第5页/共178页2023/5/17一一 执行单元执行单元EU(一)功能:执行指令 从指令队列中取指令代码 译码在ALU中完成数据的运算运算结果 的特征保存在标志寄存器FLAGS中。算术逻辑单元(运算器)8个通用寄存器1个标志寄存器EU部分控制电路(二)执行单元包括第7页/共178页2023/5/19二二 总线接口
5、单元总线接口单元BIU(一)功能:从内存中取指令送入指令预取队列负责与内存或输入/输出接口之间的数据传送在执行转移程序时,BIU使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。第9页/共178页2023/5/1111、四个段地址寄存器四个段地址寄存器CS 16位代码段寄存器DS 16位数据段寄存器ES 16位附加段寄存器SS 16位堆栈段寄存器2、IP 16位指令指针寄存器位指令指针寄存器 指向下一条要取出的指令。(二)BIU的组成4、六字节的指令队列、六字节的指令队列3、20位地址加法器位地址加法器例:指令的物理地址例:指令的物理地址 =CS=CS 16+IP 16+IP1
6、6位内部寄存器提供的信息经地址加法器地址加法器产生20位地址取指令与执行指令并行工作在一条指令的执行中,可取下一条或多条指令,在指令在一条指令的执行中,可取下一条或多条指令,在指令队列中排队。队列中排队。第11页/共178页2023/5/112三、三、8086/8088的内部寄存器的内部寄存器数据寄存器AX BX CX DX地址指针寄存器(SP,BP)变址寄存器(SI,DI)含14个16位寄存器,按功能可分为三类CS代码段寄存器DS数据段寄存器ES附加段寄存器SS堆栈段寄存器IP指令指针寄存器FLAGS标志寄存器 4个段寄存器2个控制寄存器 8个通用寄存器第12页/共178页2023/5/11
7、3数据寄存器数据寄存器8086含4个16位数据寄存器,可分为8个8位寄存器8 AHAHALAL8 AXAX(Accumulator)累加器8 BHBHBLBL8 BXBX8 CHCHCLCL8 CXCX8 DHDHDLDL8 DXDX(Base)基址寄存器(Count)计数寄存器(Data)数据寄存器常用来存放参与运算的操作数或运算结果多用于存中间运算结果。所有I/O指令必须都通过AX与接口传送信息;在间接寻址中用于存放基地址;用于在循环或串操作存放循环次数或重复次数;在32位乘除法运算时,存放高16位数;在间接寻址的I/O指令中存放I/O端口地址。第13页/共178页2023/5/114作为
8、通用寄存器,二者均可用于存放数据;作为通用寄存器,二者均可用于存放数据;作为基址寄存器,作为基址寄存器,BXBX常用于寻址数据段;一般与常用于寻址数据段;一般与DSDS或或ESES搭配搭配BPBP则通常用于寻址堆栈段。则通常用于寻址堆栈段。地址指针寄存器地址指针寄存器BX与BP在应用上的区别SP:(Stack Pointer)堆栈指针寄存器BP:(Base Pointer)基址指针寄存器其内容为栈顶的偏移地址;常用在访问内存时放内存单元的偏移地址。第14页/共178页2023/5/115变址寄存器变址寄存器SI:源变址寄存器(Sourse Index)DI:目标变址寄存器(destinatio
9、n Index)变址寄存器常用于指令的间接寻址或变址寻址。在串操作中,DI存放目标操作数的偏移地址。在串操作中,用SI存放源操作数的偏移地址第15页/共178页2023/5/116(二)(二)段寄存器段寄存器用于存放逻辑段的段基地址(逻辑段的概念后面将要介绍)CS:代码段寄存器(Code Segment)代码段用于存放指令代码 DS:数据段寄存器(Data Segment)用来存放操作数 ES:附加段寄存器(Extra Segment)用来存放操作数 SS:堆栈段寄存器(Stack Segment)用于存放返回地址 保存寄存器内容,传递参数第16页/共178页2023/5/117(三)(三)控
10、制寄存器控制寄存器IP:指令指针寄存器(Instructiong Pointer)内容为下一条要执行的指令的偏移地址FLAGS:标志寄存器状态标志:存放运算结果的特征 6个状态标志位(CF,SF,AF,PF,OF,ZF)控制标志:控制某些特殊操作 3个控制标志位(IF,TF,DF)第17页/共178页2023/5/118状态标志位:CFCF:进位标志:进位标志(Carry flag)(Carry flag)CF=1 CF=1表示最高位向前有进位或借位,否则,表示最高位向前有进位或借位,否则,CF=0CF=0PFPF:奇偶标志(:奇偶标志(Parity Flag)Parity Flag)运算结果
11、低位中为偶数个时运算结果低位中为偶数个时PF=1,PF=1,否则否则PF=0PF=0AFAF:辅助进位标志:辅助进位标志(Auxiliary Flag)(Auxiliary Flag)AF=1 AF=1表示表示8 8位运算低位运算低4 4位向高位向高4 4位的进借位,否则位的进借位,否则AF=0AF=0ZFZF:零标志:零标志(Zero Flag)(Zero Flag)算数逻辑运算结果为算数逻辑运算结果为0 0,则,则ZF=1ZF=1SFSF:符号标志:符号标志(Sign Flag)(Sign Flag)操作运算的最高位操作运算的最高位OFOF:溢出标志:溢出标志(Overflow Flag)
12、(Overflow Flag)OF=1 OF=1溢出,否则溢出,否则OF=0OF=0,OF=COF=C最高位最高位次高位OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0第18页/共178页2023/5/1191011 1111 0001 11111011 1000 1000 1001OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF01115 12DF10IF9TF8765432101 011110000011110+00010101111011101010101第19页/共178页2023/5/120控制标志位:DFDF:方向标志(:方向标志(
13、Direction Flag)Direction Flag)用于控制串操作变址寄存器中地址的增减用于控制串操作变址寄存器中地址的增减 1 1增,增,0 0减减IFIF:可屏蔽中断允许标志(:可屏蔽中断允许标志(Interrupt Flag)Interrupt Flag)1 1开,开,0 0关关TFTF:跟踪标志(:跟踪标志(Trap Flag)Trap Flag)用于单步调试,开,关用于单步调试,开,关OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0第20页/共178页2023/5/121表表 8086 CPU 8086 CPU 标志位情况标志位情况名名 称称符符 号
14、号符号标志符号标志SFSF功能功能与运算结果的最高位相同,当数据用补码表示时,负数的最高位与运算结果的最高位相同,当数据用补码表示时,负数的最高位为为1 1,所以符号标志表示运算执行后的结果是正还是负,所以符号标志表示运算执行后的结果是正还是负零标志零标志ZFZF当前的运算结果为零,当前的运算结果为非零当前的运算结果为零,当前的运算结果为非零奇偶标志奇偶标志PFPF运算结果所含的运算结果所含的1 1的个数为偶数的个数为偶数进位标志进位标志CFCF当执行一个加法运算使最高位产生进位时,或者执行一个减法运算当执行一个加法运算使最高位产生进位时,或者执行一个减法运算引起最高位产生借位时,此外,循环指
15、令也影响这一标志引起最高位产生借位时,此外,循环指令也影响这一标志辅助辅助进位标志进位标志A AF F加法运算时,如果第加法运算时,如果第3 3位往第位往第4 4位有进位;减法运算时,如果第位有进位;减法运算时,如果第3 3位位往第往第4 4位有借位。辅助进位标志一般在位有借位。辅助进位标志一般在BCDBCD码运算中作为是否进行码运算中作为是否进行十进制调整的判断依据十进制调整的判断依据溢出标志溢出标志OFOF运算过程中产生溢出时,所谓溢出,是指当字节运算的结果超出了运算过程中产生溢出时,所谓溢出,是指当字节运算的结果超出了范围范围 128+127128+127,或者当字运算的结果超出了范围,
16、或者当字运算的结果超出了范围 32768+3276732768+32767时称为溢出时称为溢出方向标志方向标志DFDF控制串操作指令用的标志。控制串操作指令用的标志。DF=0,DF=0,串操作过程中的地址会不断增串操作过程中的地址会不断增值;值;DF=1,DF=1,串操作过程中的地址会不断减值串操作过程中的地址会不断减值中断标志中断标志IFIF控制可屏蔽中断的标志。控制可屏蔽中断的标志。IF=0,CPUIF=0,CPU不能对可屏蔽中断请求作出不能对可屏蔽中断请求作出响应;响应;IF=1,CPUIF=1,CPU可以接受可屏蔽中断请求可以接受可屏蔽中断请求跟踪标志跟踪标志TFTFCPUCPU按跟踪
17、方式执行指令按跟踪方式执行指令第21页/共178页2023/5/122存储器的管理:存储器编址存储器分段和物理地址生成堆栈和栈操作指令2.4 8086/8088存储器的组织与管理第22页/共178页2023/5/124一、存储器编址8位为一个单元编址地址唯一小地址模式低地址存低字节高地址存高字节规则字低字节存于偶地址的字非规则字低字节存于奇地址的字例:字0505B0H的地址为00000H,为规则字 字0405的地址为0001H,为非规则字存储器00000H00001H00002H00003H00004H地址地址译码器读写控制电路1011 00000000 01010000 01000000 1
18、0001111 01000000 01010000 01000000 10001111 0100双向三态数据缓冲2020位位ABABA19A19 A0A0D7D7 D0D0WRWRRDRDDBDBCBCB第24页/共178页2023/5/125二、存储器分段和物理地址的生二、存储器分段和物理地址的生成成地址加法器地址加法器1011 00000000 01010000 01000000 10001111 01000000 01010000 01000000 10001111 01001011 00000000 01010000 01000000 10001111 010000000H00001H
19、00002H00003H00004H5FFFFH60000H60001H60002H物理地址220(1MB)段地址 偏移地址6000H0002H6000H*10H+0002H物理地址=段地址10H+偏移地址0000HFFFFH64kB60002H:逻辑地址:第25页/共178页2023/5/127 段寄存器使用时的一些基本约定 第27页/共178页2023/5/128内存地址的一般情况内存地址的一般情况内存地址的一般情况内存地址的一般情况1.指令地址:指令地址:CS16+IP2.堆栈操作地址:堆栈操作地址:SS16+SP3.操作数地址:操作数地址:DS(ES)16+偏移地址(其中的偏移地址取决
20、于指令的寻址方式)第28页/共178页2023/5/129已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,DS段有一操作数,其偏移地址=0204H,1)画出各段在内存中的分布 2)指出各段首地址 3)该操作数的物理地址=?10550H250A0H2EF00H8FF00HCSSS CSDSES解:各段分布及段首址见右图所示。操作数的物理地址为:250AH10H+0204H=252A4H 例例:第29页/共178页2023/5/130三、堆栈及堆栈段的使用三、堆栈及堆栈段的使用内存中按LIFO方式操作的特殊区域每次压栈和退栈均以WORD为单位SS堆栈段地址,SP段内偏移
21、 SS:SP为堆栈指针堆栈用于存放返回地址、过程参数或需要保护的数据常用于响应中断或子程序调用第30页/共178页2023/5/131若已知SS=0200H,SP=0008H,CX=12FAH,操作示意图如图5.2所示0200000812FA2000SS段首地址新栈顶FA12原栈顶200620072008+2SSSPCX12FAH图5.2 PUSH CX 的 操作过程入栈指令入栈指令 PUSHPUSH CX第31页/共178页2023/5/132操作示意图如图5.3所示0200000612FA2000SS段首地址原栈顶FA12新栈顶200620072008+2SSSPCX12FAH图5.3 P
22、OP CX的操作过程16出栈指令出栈指令POPPOP CX第32页/共178页2023/5/133SS低高SP12HPUSH AXPOP BX12HF0HAXBXF0H12HF0H第33页/共178页2023/5/134堆栈操作对标志位的影响状态标志寄存器进栈指令PUSHF 出栈指令POPF 追踪标志TF只有通过PUSHF将整个标志寄存器进栈,然后改变栈顶存储单元的D8位,再用POPF指令出栈。第34页/共178页2023/5/135第35页/共178页2023/5/1362.2 80862.2 8086的引脚信号和工作模式的引脚信号和工作模式一、8086的引脚信号特点 8086芯片共有40个
23、引脚,双列直插式芯片。部分引脚具有双重定义和功能。减少引脚线:地址/数据线分时复用分时复用;AD0AD15 地址/状态分时复用高4位地址 A16/S3、A17/S4、A18/S5、A19/S6 实现不同工作模式:最大、最小模式下2431引脚8个引脚不同。第36页/共178页2023/5/13780868086的引脚信号的引脚信号学习引脚信号时请特别关注以下几个方面:引脚的功能 信号的流向 有效电平 三态能力指引脚信号的定义、作用;通常采用英文单词或其缩写表示信号从芯片向外输出,还是从外部输入芯片,或者是双向的起作用的逻辑电平高、低电平有效上升、下降边沿有效输出正常的低电平、高电平外,还可以输出
24、高阻的第三态第37页/共178页2023/5/1388086GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND VCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND VCCA15A16
25、/S3A17/S4A18/S5A19/S6SS0(HIGH)MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086/80888086/8088的引脚功能的引脚功能(带括号的引脚功能为最大模式下的功能带括号的引脚功能为最大模式下的功能)第38页/共178页2023/5/139AD0AD0AD15AD15CLKCLKRESETREADYCLKCLKRESETREADY8284RESETREADYX1X2GNDVCC+5VA16/S3A16/S3A19/S6A1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微处理器
限制150内