《CPU资源和存储器》PPT课件.ppt_第1页
《CPU资源和存储器》PPT课件.ppt_第2页
《CPU资源和存储器》PPT课件.ppt_第3页
《CPU资源和存储器》PPT课件.ppt_第4页
《CPU资源和存储器》PPT课件.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第二章 CPU资源和存储器 2.1 寄存器组 2.2 存储器的管理模式 微机系统组成结构图 I/O 接 口 主存储器 系统总线 辅助存储器 输入设备 输出设备 CPU 寄存器 控制器 运算器 时钟 8086 CPU的内部结构 8086内部结构有两个功能模块: 1.执行单元(Execution Unit,EU): 负责指令的译码和执行 2.总线接口单元(Bus Inference Unit, BIU ) 主要负责读取指令和操作数 *3 内部暂存器 IP ES SS DS CS 输入/输出 控制电路 外部总线 执行部分 控制电路 1 2 3 4 5 6 ALU 标志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用寄存器 地址加法器 指令队列缓冲器 执行部件 (EU) 总线接口部件 (BIU) 16位 20位 16位 8位 2.1 寄存器组 CPU中为什么要使用寄存器 寄存器比存储器存取速度快 使用灵活(如暂存运算的中间数据)、控制方便(如IP) 寄存器的分类 通用寄存器:传送和暂存数据;参与算术逻辑运算并保存运 算结果; 段寄存器:保存段地址,用于寻址时构成物理地址; 专用寄存器:CPU运行的辅助工具。 *5 通 用 寄 存 器 *6 类别32位16位8位名称作用 数据寄 存器 EAXAXAH、AL累加器常作隐含操作数,可通用 EBXBXBH、BL基地址寄存器常作地址指针,可通用 ECXCXCH、CL计数器常存放计数值,可通用 EDXDXDH、DL数据寄存器常与累加器配合,可通用 变址寄 存器 ESISI无源变址寄存器保存源操作数地址 EDIDI无目的变址寄存器保存目的操作数地址 ESPSP无栈顶指针只能保存堆栈栈顶地址 EBPBP无堆栈指针可保存堆栈任意位置地址 堆栈指 针寄存 器 数据寄存器AX、BX、CX和DX 16位寄存器 高低8位可分为两个独立寄存器使用; 主要用于暂存指令执行过程中的数据; 特殊用途 AX:累加器,ALU运算核心部件、某些指令的默认寄存器; BX:基址寄存器,存放存储单元的有效地址; CX:计数器,串操作指令和循环指令中的默认计数器; DX:与AX合用保存32位数据;I/O指令中存放端口地址。 *7 累加器AX 16位寄存器可以存储2个字节的数据; 例如,数值2008H存放于AX累加器中。 AX可分做两个8位的寄存器使用,分别为AH和AL。 (AX)=2008H,则(AH)=20H,(AL)=08H; BX、CX、DX类似。 *8 AX 0123456789101112131415 无符号数范围为065535 有符号数范围为-32768+32767 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 AHAL 变址寄存器SI、DI 16位寄存器; 常作为指针,存放存储单元有效地址,也可暂存数据; 特殊用法: SI、DI中保存的地址信息可以随着指令的执行而自动改变; SI:源变址寄存器,串操作中存放源串地址,默认DS段; DI:目的变址寄存器,串操作中存放目的串地址,默认ES段; 该特殊用法只在字符串操作中有效,其它场合下作一般的指 针寄存器使用; *9 堆栈指针寄存器SP、BP 堆栈是一个先进后出的数据结构,栈底位 置不变; 栈顶指针SP 其中始终存放栈顶单元的有效地址; 其值是由出入栈指令自动更改的,一 般不允许随意对该寄存器赋值; 堆栈指针BP 其中数据一般作为地址进行访存; 默认对应于SS段,可寻址堆栈中的任 何单元。 *10 堆栈 栈底 1 2 3 1 2 3 3 2 1 栈顶 段 寄 存 器 类别16位8位名称作用 段寄存器无代码段段寄存器存放代码段段地址 无数据段段寄存器存放数据段段地址 无附加段段寄存器存放附加段段地址 无堆栈段段寄存器存放堆栈段段地址 一段汇编语言程序至少有一个逻辑段代码段,用于存放 代码; 一段汇编语言程序最多有4个逻辑段1个代码段,3个数据 段,分别用于存放代码和数据; *11 CS DS ES SS CS (Code Segment) 代码段 用来存放要执行的指令序列; 段首地址用代码段寄存器CS来保存; 指令指针寄存器IP指示本段中的地址; n将要执行的下条指令的有效地址; CPU利用CS:IP形成存储单元的物理地址,以获取下条 要执行指令的代码。 *12 DS (Data Segment) 数据段 用来存放程序运行所需要的数据; 段首地址用数据段寄存器DS来保存; CPU利用DS:EA形成存储单元的物理地址,以获取数 据段中的数据; nEA的形成方式详见第3章寻址方式的介绍。 *13 ES (Extra Segment) 附加段 即附加的数据段,保存程序运行所需要的数据; 段首地址用附加段寄存器ES来保存; CPU利用ES:EA形成存储单元的物理地址,以获取附加 段中的数据; 串操作指令常将附加段ES作为目的操作数的存放区域。 *14 SS (Stack Segment) 堆栈 用于存储程序运行中需要临时保护的数据; 段首地址用堆栈段寄存器SS来保存; 堆栈指针寄存器SP保存堆栈栈顶的有效地址; CPU利用SS:SP对堆栈栈顶单元进行操作; 利用SS:BP对堆栈中的任一单元进行操作。 *15 专 用 寄 存 器 指令指针IP 保存将要执行指令的有效地址; 该寄存器的内容是不允许人为更改的,通过指令的执行而自 动改变。 标志寄存器FLAG 该寄存器是利用其中的每一位来反映当前CPU执行指令的 结果或控制指令执行形式。 *16 类别16位8位名称作用 专用 寄存器 IP无指令指针寄存器 保存将要取出的指令有效地址 FLAG 无标志寄存器 保存CPU当前的状态标志信息 16位标志寄存器 仅用到其中9位,且按位使用; 6位状态标志位:反映ALU的执行状态; n按照ALU指令执行的结果设置各状态标志位; 3位控制标志位:控制CPU的某些功能; *17 1514131211109876543210 OFDFIFTFSFZFAFPFCF 进位标志 零标志 符号标志 溢出标志 方向标志 中断允许标志 陷阱标志 奇偶标志 辅助进位标志 常用的状态标志位 进位标志位CF 运算结果有进位或借位时,CF=1,否则CF=0; 溢出标志位OF 运算结果超出了数据表示范围时,OF=1,否则OF=0; 符号标志位SF 运算结果为负数时,SF=1,否则SF=0; 零标志位ZF 运算结果为0时,ZF=1,否则ZF=0; *18 标志位设置 例1:3AH + 7CH例2:0AAH + 7CH *19 3A H = 0011 1010 B +) 7C H = 0111 1100 B 1011 0110 B = 0B6H CF = SF = ZF = OF = 1 0 10 AA H = 1010 1010 B +) 7C H = 0111 1100 B 1 0010 0110 B = (1)26H CF = SF = ZF = OF = 0 1 00 问题: 什么是溢出? 溢出和进位有何区别? 如何判断溢出? *20 什么是溢出? 微机中常用补码来表示有符号数; 8位表达的范围是:-128 +127 16位表达的有符号数范围是:-32768 +32767 如果运算结果超出这个范围,就产生了溢出,则表示该运 算结果不正确! 注意:只有加减法运算中才会出现溢出现象,在其他运算 中无溢出! *21 溢出和进位的区别 溢出标志OF和进位标志CF是两个意义不同的标志位; 进位标志CF 其设置完全根据二进制数据的计算情况设置; 表示无符号数的运算结果是否溢出; 无论CF为何值,无符号数的运算结果均正确。 溢出标志OF 其设置是把数据看作有符号数来判断的; 表示有符号数运算结果是否溢出; 当OF=1时,有符号数的运算结果不正确。 *22 前面例子的结果 例1:3AH + 7CHB6H 作为无符号数:58124182 ,范围内,无进位 作为有符号数:58124182 ,范围外,有溢出 例2:AAH + 7CH(1) 26H 作为无符号数:170124294, 范围外,有进位 作为有符号数:8612438 ,范围内,无溢出 *23 如何判断溢出? 判断运算结果是否溢出的规则:运算前后数据的符号 将减法运算转换成加法运算; x y补 x补 + y补 (mod 2n+1) 当正数+正数=负数,或者负数+负数=正数时,产生溢出。 其他判断方法: 直接判别法:不容易判断; 进位判别法:最高位和次高位的进位位相异或。 *24 判断标志位状态 例:计算(-56)+(-67)=? ,并给出6个状态标志位的状态。 *25 1100 1000 1011 1101 (1)1000 0101 CF= , ZF= ,SF= ,OF= = -123D 1010 (-56)补1100 1000 (-67)补1011 1101 2.2 存储器的管理模式 主存储器用于存放系统运行所需要的所有的程序和数据; 开机后自动从BIOS和辅存中调入数据,掉电后丢失; 存储器的基本单位是存储单元; 每个存储单元的大小可以是一个字节,或一个字; n8086 CPU的主存是以字节进行组织的; 每个存储单元都有一个唯一的编号,称为物理地址,用于 CPU访问; 存储器容量单位 bit、Byte、KB、MB、GB *26 物理地址(Physical Address,PA) 将整个存储器从第一单元到最后一个单元 按顺序编号所得到的地址称为物理地址; 物理地址可以唯一地标识每一个存储单元 ; CPU访问主存时,必须通过地址总线输出 所要访问存储单元的的物理地址。 系统的最大主存容量取决于地址总线的位 数; *27 主存储器 000B 001B 010B 111B CPU对主存储器的访问过程 1.CPU通过控制总线,发出访存信号,通知主存准备数据读写; 2.CPU通过地址总线,发出存储单元的地址; 主存储器接收到地址后,译码,寻址正确的存储单元; 3.CPU通过控制总线,发出读写的命令; 主存储器将准备执行读写操作; 4.CPU通过数据总线,读出或写入的数据; *28 CPU 主存 数据总线 地址总线 读写控制线 访存控制线 8086需要4个时钟周期, 80486只需要1个时钟周期 。 1 PA 1100 0110 1 1100 0110 存储单元中数据的存取方法 基本原则:高高低低原则 即低地址单元存放低位数据, 高地址单元存放高位数据。 例如,存储器如右图所示 12341H单元的字节数据为34H; 12341H单元的字数据为5634H。 *29 12 34 56 78 90 12340H 12341H 12342H 12343H 12344H 存储器分段管理的原因 16位系统中 地址总线20根 可寻址主存空间为220=1MB 地址区间00FFFFFH 机器字长16位 运算的最大位数、指针等只有16位 可直接寻址的空间为216=64KB 地址区间00FFFFH 因此,采用分段方式管理和访问内存。 *30 物理地址 存储器的分段管理 分段的思想: 用两个16位地址合成的方法形成一个20位的物理地址 关于分段的规定 段的起始:每个逻辑段的起始地址必须是16的倍数。 即:xxxx xxxx xxxx xxxx 0000B 或:xxxx0H 段的容量:每个逻辑段的最大容量可以达到64KB。 注意:各逻辑段之间是可以重叠的。 *31 主存实际上并没有从物 理上分段,段的划分只 是来自于CPU的管理! 存储器的分段管理模式 *32 物理地址 00000H 12340H 12341H 22000H 2233FH 0FFFFFH 主存储器 段起始单元 逻辑段1 段地址为:1234H 保存于段寄存器中 偏移地址 0000H 0001H 0002H 0FFFFH 段起始单元 逻辑段2 段地址为:2200H 保存于段寄存器中 偏移地址 0000H 0001H 0002H 0FFFFH 关于分段 1MB空间最多能分成多少个段? 逻辑段最密集的划分方式 每隔16个存储单元开始一个新段,各段都是重叠的; 所以,1MB最多可以有2201621664K 个段 1MB空间最少能分成多少个段? 逻辑段最松散的划分方式 每隔 64K 个存储单元开始一个新段,各段不重叠; 所以,1MB最少可以有 22021616 个段 *33 物理地址的形成 任意一个物理地址均可以用段地址和偏移地址两部分形成; 逻辑地址:段地址 + 偏移地址 分段的不同,可导致同一个物理地址对应多个不同的逻辑地 址。 物理地址(PA)=段地址16 + 偏移地址 段地址:段起始单元物理地址的高16位,其值由段寄存器( CS、DS、ES、SS)保存; 偏移地址:也叫有效地址(EA) ,指实际单元和段起始单元 之间的距离。 *34 即将段地址左移4个二进制位 分段模式下主存储器的地址类型 物理地址 每个存储单元在整个存储器中的唯一标识; 段地址 逻辑段首单元的物理地址的高16位; 有效地址EA(段内偏移地址) 该存储单元相对于段首单元的偏移量; 该单元物理地址 = 有效地址 + 段首单元的物理地址; 逻辑地址 由段地址和有效地址表示的存储单元地址形式; *35 某单元A的物理地址为23000H 若段起始地址为20000H,即段地址为2000H 则A的有效地址为3000H 该段中,A的逻辑地址可表示为2000H:3000H 段寄存器的引用 段寄存器要与指针寄存器一起使用来访问主存; 代码段段寄存器CS指针寄存器为IP。 数据段段寄存器DS指针寄存器一般用BX、SI、DI。 附加段段寄存器ES指针寄存器一般用DI(字符串操作)。 堆栈段段寄存器SS指针寄存

温馨提示

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

评论

0/150

提交评论