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

下载本文档

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

文档简介

1、汇编语言与接口技术,主讲教师 张玉琢,第二章 80 x86微处理器,教学目标及要求: 80 x86cpu的内部结构;存储器结构、存储地址,存储分段及物理地址的生成。,教学重点和难点: 熟练掌握80 x86/80 x88cpu各寄存器的作用 存储器分段及存储单元物理地址的计算,教学时数:2,2.1 Pentium微处理器的功能结构, 总线接口单元 实现微处理器与系统总线的连接,包括64位数据线,32位地址线和众多信号线,实现微处理器与外部的信息交换。 分段单元和分页单元 分段单元将程序提供的逻辑地址转换为线性地址,分页单元将线性地址转换为物理地址。 U流水线和V流水线 指令Cache与数据Cac

2、he 减少指令预取和数据存取操作之间发生的冲突,2.1.1 内部结构,指令预取单元、指令译码单元和控制ROM 指令预取单元从指令Cashe中预取两条指令;经指令译码单元译码后(若是复杂指令,转换为一条或多条微指令后),分别送到U和V流水线执行。 控制单元 控制U和V两条流水线、浮点处理单元的正常运行。 分支转移目标缓冲器 预测分支转移指令是否发生转移 浮点处理单元,2.1.1 内部结构,1、超标量流水线,2.1.2 Petium微处理器的先进技术,超标量:配置多个执行部件和指令译码电路,能同时执行 多条指令。,Pentium由三个执行单元组织而成,一个执行浮点指令,另两个执行整型指令(U流水线

3、和V流水线),这意味着Pentium同时可以执三条指令。,Pentium的整数运算流水线含5个流水线级,浮点运算流水线含8个流水线级。,2、分支转移的动态预测 可加速程序的执行。,3、独立的指令Cashe和数据Cashe,2.1.2 Petium微处理器的先进技术,能迅速地将指令或数据的线性地址转换为物理地址,4、重新设计的浮点单元,1. 寄存器结构,指令指针IP 段寄存器CS,DS,SS,ES,FS,GS 通用寄存器EAX,EBX,ECX,EDX 变址寄存器ESI,EDI 指针寄存器EBP,ESP 标志寄存器FLAGS 控制寄存器0(CR0),CR0的第0位叫保护允许位(PE), PE用于对

4、实模式和保护模式进行 切换,PE置0时选择实模式运行,2.2 pentium 的寄存器,通用寄存器共8个:AX,BX,CX,DX,SP,BP,SI,DI,均为16位。 AX,BX,CX,DX均可分成高8位和低8位,作为独立的8位寄存器使用:AH,AL,BH,BL,CH,CL,DH,DL AX累加器,BX基址寄存器 CX计数寄存器,DX数据寄存器 SP堆栈指示器,BP基址指示器 SI源变址寄存器,DI目的变址寄存器,1.通用寄存器参与算术与逻辑运算,EIP 硬件电路,能自动跟踪指令地址。 在开始执行程序时,赋给EIP第一条指令的地址,然后每取一条指令,EIP的值就自动指向下一条将要执行的指令的地

5、址。,2.指令指示器EIP(instruction point),EIP的低16位是IP,可单独使用,当微处理器工作在实地址方式下,EIP就是16位的IP,9个标志位,其中6个状态标志,3个控制标志,3.状态标志寄存器(status flags)(p28图1-13),进位标志位CF 加减运算执行后,最高位有进位或借位,CF=1;无进位或借位,CF=0 主要用于多字节加减运算 辅助进位标志位AF 最低4位D3D0位有进位或借位,AF=1;无进位或借位,AF=0 用于BCD数的算术运算(调整)指令,(1)状态标志,反映cpu执行算术或逻辑运算后的结果,溢出标志位OF 运算结果超出了机器数所能表示的

6、数的范围OF=1;反之,OF=0 该标志表示运算结果是否产生了溢出 符号标志位SF 结果为负数,SF=1;结果为正数,SF=0 零标志位ZF 结果为0,ZF=1;结果不为0,ZF=0 奇偶标志位PF 结果低八位中1的个数为偶数,PF=1;为奇数,PF=0。用于检查数据在传送过程中是否发生错误,方向标志位DF 控制数据串操作指令的步进方向 DF=1,地址增址;DF=0,地址减址 中断允许标志位IF 控制CPU是否开中断. IF=1, CPU开中断 IF=0, CPU关中断 追踪标志位TF(陷阱标志位) TF=1,CPU单步执行程序,常用于程序的调试 TF=0,CPU正常执行程序,(2)控制标志,

7、用于控制CPU的操作。,状态标志寄存器(status flags),汇编程序调试软件DEBUG中提供了测试标志位的方法,标志位0或1是用两个字母来表示的。,用来存放段地址 存储器分段管理,段的起始地址的高16位称该段的段地址,偏离段首址的字节数为偏移地址(16位). CS-代码段寄存器-存放代码段的段地址 SS-堆栈段寄存器-存放堆栈段的段地址 DS-数据段寄存器-存放数据段的段地址 ES-附加数据段寄存器-存放附加数据段的段地址,4.段寄存器段地址和偏移地址,存储器段的划分如图所示: 8086/8088可寻址220=1M字节,分为216=64K个段,每一段最多可寻址216=64K个单元 存储

8、器的分段并不是惟一的 每个段地址的低4位全为0,实地址下存储器分段和物理地址的生成 实地址下存储器分段,存储单元地址的两种表示形式: 物理地址-用唯一的20位二进制数表示.CPU访问时用物理地址 逻辑地址-段地址:偏移地址 程序中使用逻辑地址 物理地址的形成: 段地址左移4位(*10H)+16位偏移地址 例: 0001H:0010H对应的 物理地址为00010H+0010H=00020H,实地址下物理地址的生成,主要用于存放程序和数据,存储单元 单元地址,存储器(memory),【补充】 存储器编址,8086/8088系统中的存储器是以8位(一个字节)为一个存储单元编址的。每一个存储单元用唯一的一个地址码来表示。一个字即16位的数据占据连续的两个单元。这两个单元都有各自的地址,处于低地址的字节的地址为这个字的地址。在存储器中,任何连续存放的两个字节都可以称为一个字。将偶数地址的字称为规则字,奇数地址的字称为非规则字。高地址的字节为高位字节,低地址的字节为低位字节。,【补充】 存储器编址,如:00000H地址中存放一个字2301H,则00000H单元中存放01H,00001H单元中存放23H 字

温馨提示

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

评论

0/150

提交评论