汇编语言与接口技术(第二章)_第1页
汇编语言与接口技术(第二章)_第2页
汇编语言与接口技术(第二章)_第3页
汇编语言与接口技术(第二章)_第4页
汇编语言与接口技术(第二章)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1汇编语言与接口技术汇编语言与接口技术 主讲教师主讲教师张玉琢张玉琢2教学目标及要求教学目标及要求:80 x86cpu的内部结构;存储器结构、存储地址,存储分段及物理地址的生成。教学重点和难点:教学重点和难点:熟练掌握80 x86/80 x88cpu各寄存器的作用存储器分段及存储单元物理地址的计算教学时数:教学时数:23预取缓冲存储器指令译码256控制ROM控制部件地址生成(U流水线)地址生成(U流水线)整数寄存器组ALU(U流水线)ALU(U流水线)筒型移位器8KB数据Cache浮点部件控制寄存器组加法器除法器乘法器80808KB代码Cache分支目标缓冲器预取地址指令指针转移校验和目标地址

2、分页部件323232323232总线部件6464位读总线64位数据总线36位地址总线控制TLBTLB32位地址总线2.1 Pentium2.1 Pentium微处理器的功能结构微处理器的功能结构 4 总线接口单元总线接口单元 实现微处理器与系统总线的连接,包括实现微处理器与系统总线的连接,包括6464位数据位数据线,线,3232位地址线和众多信号线,实现微处理器与外位地址线和众多信号线,实现微处理器与外部的信息交换。部的信息交换。分段单元和分页单元分段单元和分页单元 分段单元将程序提供的逻辑地址转换为线性地址,分段单元将程序提供的逻辑地址转换为线性地址,分页单元将线性地址转换为物理地址。分页单

3、元将线性地址转换为物理地址。U U流水线和流水线和V V流水线流水线指令指令CacheCache与数据与数据CacheCache减少指令预取和数据存取操作之间发生的冲突减少指令预取和数据存取操作之间发生的冲突 2.1.1 2.1.1 内部结构内部结构5指令预取单元、指令译码单元和控制指令预取单元、指令译码单元和控制ROMROM 指令预取单元从指令指令预取单元从指令CasheCashe中预取两条指令;经指令中预取两条指令;经指令译码单元译码后(若是复杂指令,转换为一条或多条译码单元译码后(若是复杂指令,转换为一条或多条微指令后微指令后) ),分别送到,分别送到U U和和V V流水线执行。流水线执

4、行。控制单元控制单元 控制控制U U和和V V两条流水线、浮点处理单元的正常运行。两条流水线、浮点处理单元的正常运行。分支转移目标缓冲器分支转移目标缓冲器预测分支转移指令是否发生转移预测分支转移指令是否发生转移浮点处理单元浮点处理单元 2.1.1 2.1.1 内部结构内部结构61 1、超标量流水线、超标量流水线 2.1.2 2.1.2 PetiumPetium微处理器的先进技术微处理器的先进技术超标量:配置多个执行部件和指令译码电路,能同时执行超标量:配置多个执行部件和指令译码电路,能同时执行 多条指令。多条指令。PentiumPentium由三个执行单元组织而成,一个执行浮点指由三个执行单元

5、组织而成,一个执行浮点指令,另两个执行整型指令(令,另两个执行整型指令(U U流水线和流水线和V V流水线流水线),),这意味着这意味着PentiumPentium同时可以执三条指令。同时可以执三条指令。PentiumPentium的的整数运算流水线含整数运算流水线含5 5个流水线级,浮点运个流水线级,浮点运算流水线含算流水线含8 8个流水线级。个流水线级。2 2、分支转移的动态预测、分支转移的动态预测 可加速程序的执行。可加速程序的执行。73 3、独立的指令、独立的指令CasheCashe和数据和数据CasheCashe 2.1.2 2.1.2 PetiumPetium微处理器的先进技术微处

6、理器的先进技术能迅速地将指令或数据的线性地址转换为物理地址能迅速地将指令或数据的线性地址转换为物理地址4 4、重新设计的浮点单元、重新设计的浮点单元 81. 寄存器结构寄存器结构0151631015015163178ALBLCLDLAXBXCXDXAHBHCHDHEAXEBXECXEDXIPCSDSSSESFSGSSPBPSIDIESPEBPESIEDIFLAGSCR0指令指针指令指针IP段寄存器段寄存器CS,DS,SS,ES,FS,GS通用通用寄存器寄存器EAX,EBX,ECX,EDX变址寄存器变址寄存器ESI,EDI指针寄存器指针寄存器EBP,ESP标志寄存器标志寄存器FLAGS控制寄存器

7、控制寄存器0(CR0)CR0的第的第0位叫保护允许位位叫保护允许位(PE),PE用于对实模式和保护模式进行用于对实模式和保护模式进行切换,切换,PE置置0时选择实模式运行时选择实模式运行2.2 2.2 pentiumpentium 的寄存器的寄存器9l通用寄存器共通用寄存器共8 8个:个:AX,BX,CX,DX,SP,BP,SI,DIAX,BX,CX,DX,SP,BP,SI,DI,均,均为为1616位。位。lAX,BX,CX,DXAX,BX,CX,DX均可分成高均可分成高8 8位和低位和低8 8位,作为独立的位,作为独立的8 8位寄存器使用:位寄存器使用:AH,AL,BH,BL,CH,CL,D

8、H,DLAH,AL,BH,BL,CH,CL,DH,DLlAXAX累加器,累加器,BXBX基址寄存器基址寄存器 CX CX计数寄存器,计数寄存器,DXDX数据寄存器数据寄存器 SP SP堆栈指示器,堆栈指示器,BPBP基址指示器基址指示器 SI SI源变址寄存器,源变址寄存器,DIDI目的变址寄存器目的变址寄存器 1. 1.通用寄存器通用寄存器参与算术与逻辑运算参与算术与逻辑运算10EIP EIP 硬件电路,能自动跟踪指令地址。硬件电路,能自动跟踪指令地址。 在开始执行程序时在开始执行程序时, ,赋给赋给EIPEIP第一条指令的地址第一条指令的地址, ,然然后每取一条指令后每取一条指令,EIP,

9、EIP的值就自动指向下一条将要的值就自动指向下一条将要执行的指令的地址执行的指令的地址。2. 2.指令指示器指令指示器EIP(instructionEIP(instruction point) point)EIPEIP的低的低1616位是位是IPIP,可单独使用,可单独使用当微处理器工作在实地址方式下,当微处理器工作在实地址方式下,EIPEIP就是就是1616位的位的IPIP119 9个个标志位,其中标志位,其中6 6个状态标志,个状态标志,3 3个控制标志个控制标志3. 3.状态标志寄存器状态标志寄存器(status flags)(status flags)(p28p28图图1-131-13

10、)12l进位标志位进位标志位CF CF 加减运算执行后,加减运算执行后,最高位最高位有进位或借位,有进位或借位,CF=1CF=1;无进位或借位,无进位或借位,CF=0CF=0 主要用于多字节加减运算主要用于多字节加减运算l辅助进位标志位辅助进位标志位AF AF 最低最低4 4位位D3D3D0D0位位有进位或借位,有进位或借位,AF=1AF=1;无进位;无进位或借位,或借位,AF=0AF=0 用于用于BCDBCD数的算术运算数的算术运算( (调整调整) )指令指令 (1 1)状态标志)状态标志反映反映cpucpu执行算术或逻辑运算后的结果执行算术或逻辑运算后的结果13l溢出标志位溢出标志位OF

11、OF 运算结果超出了机器数所能表示的数的范围运算结果超出了机器数所能表示的数的范围OF=1OF=1;反之,;反之,OF=0OF=0 该标志表示运算结果是否产生了溢出该标志表示运算结果是否产生了溢出 l符号标志位符号标志位SF SF 结果为负数,结果为负数,SF=1SF=1;结果为正数,;结果为正数,SF=0SF=0l零标志位零标志位ZFZF 结果为结果为0 0,ZF=1ZF=1;结果不为;结果不为0 0,ZF=0 ZF=0 l奇偶标志位奇偶标志位PFPF 结果低八位中结果低八位中1 1的个数为偶数,的个数为偶数,PF=1PF=1;为奇数,;为奇数,PF=0PF=0。用于检查数据在传送过程中是否

12、发生错误。用于检查数据在传送过程中是否发生错误 14l方向标志位方向标志位DFDF 控制数据串操作指令的步进方向控制数据串操作指令的步进方向 DF=1,DF=1,地址增址地址增址;DF=0,;DF=0,地址减址地址减址l中断允许标志位中断允许标志位IF IF 控制控制CPUCPU是否开中断是否开中断. IF=1,. IF=1, CPUCPU开中断开中断 IF=0, IF=0, CPUCPU关中断关中断l追踪标志位追踪标志位TFTF(陷阱标志位)(陷阱标志位) TF=1 TF=1,CPUCPU单步执行程序,常用于程序的调试单步执行程序,常用于程序的调试 TF=0 TF=0,CPUCPU正常执行程

13、序正常执行程序 (2 2)控制标志)控制标志用于控制用于控制CPUCPU的操作。的操作。 15状态标志寄存器状态标志寄存器(status flags)(status flags) 汇编程序调试软件汇编程序调试软件DEBUGDEBUG中提供了测试标中提供了测试标志位的方法,标志位志位的方法,标志位0 0或或1 1是用两个字母来是用两个字母来表示的。表示的。标志位标志位OFDFIFSFZFAFPFCF1/0OV/NVDN/UPEI/DING/PLZR/NZAC/NAPE/POCY/NC16用来存放段地址用来存放段地址 存储器分段管理,段的起始地址的高存储器分段管理,段的起始地址的高1616位称该段

14、的位称该段的段地址段地址, ,偏离段首址的字节数为偏离段首址的字节数为偏移地址偏移地址( (1616位位).).lCS-CS-代码段寄存器代码段寄存器-存放代码段的段地址存放代码段的段地址lSS-SS-堆栈段寄存器堆栈段寄存器-存放堆栈段的段地址存放堆栈段的段地址lDS-DS-数据段寄存器数据段寄存器-存放数据段的段地址存放数据段的段地址lES-ES-附加数据段寄存器附加数据段寄存器-存放附加数据段的段存放附加数据段的段地址地址 4. 4.段寄存器段寄存器段地址和偏移地址段地址和偏移地址17l存储器段的划分如图所示:存储器段的划分如图所示: 8086/8088 8086/8088可寻址可寻址2

15、 22020=1M=1M字字节,分为节,分为2 21616=64K=64K个段,每个段,每一段最多可寻址一段最多可寻址2 21616=64K=64K个个单元单元存储器的分段并不是惟一的存储器的分段并不是惟一的每个段地址的低每个段地址的低4 4位全为位全为0 0 实地址下存储器分段和物理地址的生成实地址下存储器分段和物理地址的生成实地址下存储器分段实地址下存储器分段18l存储单元地址的两种表示形式存储单元地址的两种表示形式: : 物理地址物理地址-用用唯一唯一的的2020位二进制数表示位二进制数表示.CPU.CPU访访问时用物理地址问时用物理地址 逻辑地址逻辑地址-段地址段地址: :偏移地址偏移

16、地址 程序中使用逻辑地址程序中使用逻辑地址l物理地址的形成物理地址的形成:段地址左移段地址左移4 4位位( (* *10H)+1610H)+16位偏移地址位偏移地址例:例:0001H0001H:0010H0010H对应的对应的物理地址为物理地址为00010H+0010H=00020H00010H+0010H=00020H实地址下物理地址的生成实地址下物理地址的生成19主要用于存放程序和数据主要用于存放程序和数据l存储单元存储单元 l单元地址单元地址存储器存储器(memory)(memory)【补充补充】 存储器编址存储器编址 20 8086/8088 8086/8088系统中的存储器是以系统中

17、的存储器是以8 8位位( (一个字一个字节节) )为一个存储单元编址的。每一个存储单元用唯为一个存储单元编址的。每一个存储单元用唯一的一个地址码来表示。一个字即一的一个地址码来表示。一个字即1616位的数据占位的数据占据连续的两个单元。这两个单元都有各自的地址,据连续的两个单元。这两个单元都有各自的地址,处于低地址的字节的地址为这个处于低地址的字节的地址为这个字的地址字的地址。在存。在存储器中,任何连续存放的两个字节都可以称为一储器中,任何连续存放的两个字节都可以称为一个个字字。将偶数地址的字称为。将偶数地址的字称为规则字规则字,奇数地址的,奇数地址的字称为字称为非规则字非规则字。高地址的字节为高位字节,低。高地址的字节为高位字节,低地址的字节为低位字节。地址的字节为低位字节。【补充补充】 存储器编址存储器编址 21如:如:00000H00000H地址中存放一个字地址中存放一个字2301H2301H,则则00000H00000H单元中存放单元中存放01H01H,00001H00001H单元中存放单元中存放23H2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论