X86CPU的寄存器和主存储器.ppt_第1页
X86CPU的寄存器和主存储器.ppt_第2页
X86CPU的寄存器和主存储器.ppt_第3页
X86CPU的寄存器和主存储器.ppt_第4页
X86CPU的寄存器和主存储器.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

4 2 80X86CPU的寄存器和主存储器 4 2 180X86CPU的寄存器4 2 280X86CPU的主存储器 返回 4 2 180X86CPU的寄存器 1 80X86CPU的寄存器分类2 基本结构寄存器组 返回 1 80X86CPU的寄存器分类 返回 一般应用程序中只能访问 1 和 3 2 只能由系统程序访问 并且它的特权级必须为零级 1 基本结构寄存器组 2 系统级寄存器组 3 浮点寄存器组 1 基本结构寄存器组 返回 通用寄存器指令指针寄存器标志寄存器段寄存器 EAX EBX ECX EDX ESP EBP ESI EDI EIP EFLAGS FS GS 80X86CPU基本结构寄存器组 1 通用寄存器 8086 8088H80286 16位80386及后继机型 32位 8086 8088H80286 A 数据寄存器 AX BX CX DX用来保存操作数或运算结果等信息 AX 累加器 使用频度最高 用于算术 逻辑运算以及与外设传送信息等 BX 基址寄存器 常用于存放存储器地址 CX 计数器 一般作为循环或串操作等指令中的隐含计数器 DX 数据寄存器 常用来存放双字数据的高16位 或存放外设端口地址 B 地址寄存器 主要用于存放某个存储单元的偏移地址 SI 存放数据段中某源操作数所在存储单元相对段首址的偏移量 DI 存放数据段中某目的操作数所在存储单元相对段首址的偏移量 SP 用于存放当前堆栈段中栈顶单元的偏移地址 BP 用于存放堆栈段中某一存储单元的偏移地址 80386及后继机型 32位的通用寄存器 EAX EBX ECX EDX ESP EBP ESI EDI 可以用来存放不同宽度的数据 所有32位寄存器既可以存放数据 也可以存放地址 每个寄存器的专用特性与8086 8088的对应寄存器一致 2 系统级寄存器组包括 系统地址寄存器控制指针寄存器测试寄存器调试寄存器 返回 3 浮点寄存器组包括 数据寄存器标记指针寄存器指令和数据指针寄存器控制字寄存器 返回 2 指令指针寄存器和标志寄存器 指令指针IP 存放下一条指令的地址 在程序的执行过程中 每当从主存读取指令后 自动修改IP的值 使IP内容为下一条指令起始字节所在单元的偏移量 返回本节 指令队列 按先进先出的原则 存放从主存中读取的指令 当EU执行指令时 从指令队列中取最先进入队列的指令给以执行 8086 6个字节的指令队列 空出2个字节且无其它总线请求 8088 4个字节的指令队列 空出1个字节且无其它总线请求 标志寄存器 存放条件标志 控制标志 系统标志位 8086 8088H80286 16位80386及后继机型 32位1 条件标志2 控制标志3 系统标志位 1 条件标志 主要用于保存一条指令执行后 CPU所处状态信息及运算结果的特征 1 进位标志CF 2 零标志ZF 3 符号标志SF 4 溢出标志OF 5 奇偶标志PF 6 辅助进位标志AF 2 控制标志 1 方向标志DF 返回本节 3 系统标志 可以用于I O 可屏蔽中断 程序调试 任务切换和系统工作发生等的控制 返回本节 1 跟踪标志TF 2 中断允许标志IF 3 I O特权级标志 4 嵌套任务 5 恢复 6 虚拟8086模式位 7 对准检查方式位 8 虚拟中断 9 虚拟中断未决标志 10 标识标志 返回本节 D15 D0 OFDFIFTFSFZFAFPFCF 进借位标志 奇偶标志 半进借位标志 零标志 符号标志 单步中断 中断允许 方向标志 溢出标志 1 有进 借位0 无进 借位 1 低8位有偶数个10 低8位有奇数个1 1 低4位向高4位有进 借位0 低4位向高4位无进 借位 1 结果为00 结果不为0 3 段寄存器 段寄存器 用来确定该段在内存中的起始地址 CS DS ES SS FS GS 4 2 280X86的主存储器 返回 1 存储器的地址和内容2 实模式存储器寻址3 保护模式存储器寻址4 808X6CPU逻辑地址的来源 1 存储器的地址和内容 1 在存储器里以字节为单位存储信息 2 每一个字节单元给予一个唯一的编号 即存储单元地址 物理地址 地址从0开始编号 顺序地每次加1 机器里以无符号二进制整数表示 书写格式为16进制数 3 8086 8088的地址总线为20位 可寻址空间为00000H FFFFFH 80286的地址总线为24位 可寻址空间为000000H FFFFFFH 80386 80486和Pentium的地址总线为32位 可寻址空间为00000000H FFFFFFFFH PentiumPro和Pentium 的地址总线为36位 可寻址空间为000000000H FFFFFFFFFH 4 一个存储单元中存放的信息称为该存储单元的内容 0004H 78H5 一个字数据占用两个相邻的存储单元 采用 低对低 高对高 的原则 低字节所在存储单元的地址作为该字数据的单元地址 双字 4字单元的存放方法与此类似 主存 00000H 10002H 10001H 10000H 10003H 12H 34H 56H 78H 10001H 34H 10002H 56H 10000H 12H 10003H 78H 10000H 3412H 10001H 5634H 10002H 7856H 字节单元字单元 34560H 34H 34561H 12H 34560H 1234H 34561H 5612H 例 0004H 5678H 0004H 12345678H X Z 存储单元 主存由若干个存储单元组成 每个存储单元内存放8位二进制数 存储单元地址 8086系统中 为了标识和存取每一个存储单元 给每个存储单元规定一个编号 这就是存储单元地址 从0开始顺次编号 存储单元的内容 一个存储单元中存放的信息称为该存储单元的内容 2 实模式存储器寻址 1 存储器的分段 8086 8088只能在实模式下工作外 其他的CPU均可在实模式或保护模式下工作 实模式下允许的最大寻址空间为1MB 8086 8088的地址总线为20位 用20位无符号二进制数表示存储单元的地址 5位十六进制数表示 即00000H FFFFFH 十六进制地址 二进制地址 存储单元 00000H 00001H 00002H 00003H FFFFEH FFFFFH 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0003 0000 0000 0000 0000 0002 1111 1111 1111 1111 1110 1111 1111 1111 1111 1111 7 0 8086 8088主存储器 16位字长的机器里如何提供20位地址 将1MB主存分为若干段 3 16位的段寄存器中存放该段在内存中的起始地址的高16位 称为段基值 机器将段起始地址的最低四位设置为0 段基址为20位 2 每个段的长度不同 但不能超过64K字节 段内地址为16位 段内地址 偏移地址 一个主存单元与所在段的段基址之间的字节距离 计算得到或由IP提供 CPU访问某个主存单元内容时由段寄存器给出该单元所在段的段基值 并给出该单元在该段内的偏移量 段基值和段内的偏移量构成物理地址 8086 8088CPU中有一个地址加法器 它将段寄存器提供的段基值自动左移4位 然后与16位的偏移地址相加 形成 物理地址 段基值 16 偏移地址 段寄存器值 偏移量 物理地址 16位 4位 16位 20位 存储器物理地址的计算方法 每个段寄存器用来确定该段在内存中的起始地址 2 段寄存器 8086 80286 CS DS SS ES 80386及后继机型 CS DS SS ES FS GS 80X86中段寄存器与其对应存放偏移地址的寄存器之间有一种默认的组合关系 1 CS 存放代码段的段首址的高16位 代码段中用来存放程序的指令序列 2 DS 存放数据段的段首址的高16位 数据段中存放程序的有关数据 3 SS 存放堆栈段的段首址的高16位 堆栈段用于存放按后进先出顺序存取的信息 4 DS 存放数据段的段首址的高16位 附加段中常存放运算结果和辅助数据 8086存储器的段结构把1M字节的存储器分为任意个段 一个逻辑段是存储器中可独立寻址的一个逻辑单位 每个段的长度不超过64K字节 各段起始单元的物理地址 称为段基址 段首址 每个段基址为20位 低四位都为0 能被16整除 1 段的大小按实际需要确定 最大为64K 实际应用中可能小于64K 2 不同的段可以是相邻的 间隔的 或部分重叠的或完全重叠或交叉的 3 段的实体不能重叠 4 CPU可以通过四个段寄存器访问四个不同的当前段 注意事项 例 各独立段的分配情况示例 设CS B000H DS 1CDEH SS 4200H ES 0150H 它们分别为代码段 数据段 堆栈段和附加段的段基值 自每个段首址开始 各段均占64KB的范围 各段之间互不重叠 如图所示 例 各段相邻接情况示例 设CS 0200H DS 0400H SS 0480H 这样代码段 数据段和堆栈段的物理首地址分别为02000H 04000H和04800H 其中代码段占8KB地址空间 数据段占2KB 堆栈段占256B SP 0100H 如图1 6所示 图1 6各段邻接存储单元分配图 3 保护模式存储器寻址引入保护模式的原因 实模式下的寻址空间太小 它使微机系统能支持多任务处理 多任务处理 多个应用程序在一台计算机上同时运行 而且它们之间必须相互隔离 使应用程序中缺陷或故障不会破坏系统农业不会影响其它应用程序的运行 保护模式寻址支持虚拟存储器特性 实模式 逻辑地址 程序 物理地址 执行指令时计算 逻辑地址 段基值 偏移地址保护模式 逻辑地址 程序 物理地址 间接方法 逻辑地址 段选择器 偏移地址 2 段基值再和偏移地址相加 从而求得线性地址 1 段选择器存放在段寄存器中 它不能直接确定段基值 而由CPU通过一定的方法求得相应的段基值 3 线性地址再通过分页部件转换成物理地址 段选择器是通过描述符表取得描述符 从而得到段基址 2 描述符描述符有8个字节长 用来说明段的起始地址 大小 段在存储器中的位置及有关的控制和状态信息 Base B15 B0 Limit l15 l0 0 P DPL S TYPE A Base B23 B16 31 15 16 0 80286描述符 段基址 Base 用来指定段的起始地址 段界限 Limit 用来存放该段的段长度 访问权 AccessRights 附加字段 段基址 Base 用来指定段的起始地址 80286的段基址为24位 段可以从16MB存储器的任何地址开始 80386及以上处理器的段基址为32位 段可以从4GB存储器的任何地址开始 段界限 Limit 用来存放该段的段长度 80286的段界限为16位 段长可从1B到64KB 80386及以上处理器的段界限为20位 同时段描述符中又给出了一个粒度位G G 0时 段长的粒度单位为字节 段界限可从1B到1MB 步距为1B G 1时 段长的粒度单位为页 每页为4KB 段界限可从1 4KB到1M 4KB 即从4KB到4GB 步距为4KB 例 段起始于F00000H单元结束于F000FFH单元 80286的段基址为F00000H 界限为00FFH 80386及后继极型段基址为00F00000H 界限为000FFH G位为0 访问权 AccessRights 有8位 用来说明该段在系统中的功能 并给出访问该段的一些控制信息 P DPL S ED C W R A E 7 0 65 4 3 2 1 附加字段 80386及后继机型中存在 包括G D B 0和AVL共4位 如何根据段选择器找到描述符 3 段选择器和描述符表描述符表存放在存储器中 主要有4种描述符表 全局描述符表GDT 局部描述符表LDT 中断描述符表IDT 任务状态段TSS 描述符表都存放在存储器中 每个表分别构成一个64KB长的段 表中可存放8K个描述符 GDT中的描述符所指定的段可用于所有程序 LDT中的描述符所指定的段通常只用于一个用户程序 或称一个任务 在整个系统里只有一个GDT和一个IDT 二LDT可以有多个 他们分别对应于不同的任务 段选择器存放在段寄存器中 16位长 其格式如下 INDEX TI RPL 153 0 2 1 INDEX 索引值 即描述符表索引值 给出所选描述符在描述符表中的地址 共13位 可从表中8K个描述符中选取一个 为了提高保护模式存储器寻址的速度 CPU中设置了6个64位的描述符寄存器 用来存放对应段的描述符 1 从段寄存器中读取段选择器的值 2 硬件自动地根据段选择器的索引值 从系统描述符表中取出一个8字节的描述符 装入到相应的段描述符寄存器中 3 以后每当出现对该段的访问时 就直接使用相应的段描述符寄存器中段基值计算线性地址 而不需要在内存中查表得到段基值 段寄存器是程序可访问的 段描述符寄存器程序不可访问 保护模式和实模式的区别 偏移地址位16位 最大段长可从64KB扩大到4GB 4 80X86逻辑地址的来源实模式 段基值 偏移地址保护模式 段选择器 偏移地址在80X86CPU中 逻辑地址的两个分量之间存在一种默认组合关系 默认组合下 程序中不必专门指定其组合关系 但程序如果用到非默认的组合关系 必须用段跨越前缀说明 逻辑地址的来源 序号 操作类型 逻辑地址 段基值 偏移量 隐含来源 允许替代来源 1取指令CS无IP或EIP 2堆栈操作SS无SP或ESP 3取源串DSCS SS ES

温馨提示

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

评论

0/150

提交评论