CPU资源和存储器.ppt

上传人:小飞机 文档编号:5423885 上传时间:2023-07-05 格式:PPT 页数:41 大小:570KB
返回 下载 相关 举报
CPU资源和存储器.ppt_第1页
第1页 / 共41页
CPU资源和存储器.ppt_第2页
第2页 / 共41页
CPU资源和存储器.ppt_第3页
第3页 / 共41页
CPU资源和存储器.ppt_第4页
第4页 / 共41页
CPU资源和存储器.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《CPU资源和存储器.ppt》由会员分享,可在线阅读,更多相关《CPU资源和存储器.ppt(41页珍藏版)》请在三一办公上搜索。

1、第二章 CPU资源和存储器,2.1 寄存器组2.2 存储器的管理模式,微机系统组成结构图,8086 CPU的内部结构,8086内部结构有两个功能模块:执行单元(Execution Unit,EU):负责指令的译码和执行总线接口单元(Bus Inference Unit,BIU)主要负责读取指令和操作数,2023年7月5日星期三,3,2.1 寄存器组,CPU中为什么要使用寄存器寄存器比存储器存取速度快使用灵活(如暂存运算的中间数据)、控制方便(如IP)寄存器的分类通用寄存器:传送和暂存数据;参与算术逻辑运算并保存运算结果;段寄存器:保存段地址,用于寻址时构成物理地址;专用寄存器:CPU运行的辅助

2、工具。,2023年7月5日星期三,5,通 用 寄 存 器,2023年7月5日星期三,6,堆栈指针寄存器,数据寄存器AX、BX、CX和DX,16位寄存器高低8位可分为两个独立寄存器使用;主要用于暂存指令执行过程中的数据;特殊用途AX:累加器,ALU运算核心部件、某些指令的默认寄存器;BX:基址寄存器,存放存储单元的有效地址;CX:计数器,串操作指令和循环指令中的默认计数器;DX:与AX合用保存32位数据;I/O指令中存放端口地址。,2023年7月5日星期三,7,累加器AX,16位寄存器可以存储2个字节的数据;例如,数值2008H存放于AX累加器中。AX可分做两个8位的寄存器使用,分别为AH和AL

3、。(AX)=2008H,则(AH)=20H,(AL)=08H;BX、CX、DX类似。,2023年7月5日星期三,8,无符号数范围为065535有符号数范围为-32768+32767,0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0,变址寄存器SI、DI,16位寄存器;常作为指针,存放存储单元有效地址,也可暂存数据;特殊用法:SI、DI中保存的地址信息可以随着指令的执行而自动改变;SI:源变址寄存器,串操作中存放源串地址,默认DS段;DI:目的变址寄存器,串操作中存放目的串地址,默认ES段;该特殊用法只在字符串操作中有效,其它场合下作一般的指针寄存器使用;,2023年7月5日星期三

4、,9,堆栈指针寄存器SP、BP,堆栈是一个先进后出的数据结构,栈底位置不变;栈顶指针SP其中始终存放栈顶单元的有效地址;其值是由出入栈指令自动更改的,一般不允许随意对该寄存器赋值;堆栈指针BP其中数据一般作为地址进行访存;默认对应于SS段,可寻址堆栈中的任何单元。,2023年7月5日星期三,10,堆栈,栈底,1,2,3,1,2,3,3,2,1,栈顶,段 寄 存 器,一段汇编语言程序至少有一个逻辑段代码段,用于存放代码;一段汇编语言程序最多有4个逻辑段1个代码段,3个数据段,分别用于存放代码和数据;,2023年7月5日星期三,11,CS,DS,ES,SS,CS(Code Segment),代码段

5、用来存放要执行的指令序列;段首地址用代码段寄存器CS来保存;指令指针寄存器IP指示本段中的地址;将要执行的下条指令的有效地址;CPU利用CS:IP形成存储单元的物理地址,以获取下条要执行指令的代码。,2023年7月5日星期三,12,DS(Data Segment),数据段用来存放程序运行所需要的数据;段首地址用数据段寄存器DS来保存;CPU利用DS:EA形成存储单元的物理地址,以获取数据段中的数据;EA的形成方式详见第3章寻址方式的介绍。,2023年7月5日星期三,13,ES(Extra Segment),附加段即附加的数据段,保存程序运行所需要的数据;段首地址用附加段寄存器ES来保存;CPU

6、利用ES:EA形成存储单元的物理地址,以获取附加段中的数据;串操作指令常将附加段ES作为目的操作数的存放区域。,2023年7月5日星期三,14,SS(Stack Segment),堆栈用于存储程序运行中需要临时保护的数据;段首地址用堆栈段寄存器SS来保存;堆栈指针寄存器SP保存堆栈栈顶的有效地址;CPU利用SS:SP对堆栈栈顶单元进行操作;利用SS:BP对堆栈中的任一单元进行操作。,2023年7月5日星期三,15,专 用 寄 存 器,指令指针IP保存将要执行指令的有效地址;该寄存器的内容是不允许人为更改的,通过指令的执行而自动改变。标志寄存器FLAG该寄存器是利用其中的每一位来反映当前CPU执

7、行指令的结果或控制指令执行形式。,2023年7月5日星期三,16,16位标志寄存器,仅用到其中9位,且按位使用;6位状态标志位:反映ALU的执行状态;按照ALU指令执行的结果设置各状态标志位;3位控制标志位:控制CPU的某些功能;,2023年7月5日星期三,17,进位标志,零标志,符号标志,溢出标志,方向标志,中断允许标志,陷阱标志,奇偶标志,辅助进位标志,常用的状态标志位,进位标志位CF运算结果有进位或借位时,CF=1,否则CF=0;溢出标志位OF运算结果超出了数据表示范围时,OF=1,否则OF=0;符号标志位SF运算结果为负数时,SF=1,否则SF=0;零标志位ZF运算结果为0时,ZF=1

8、,否则ZF=0;,2023年7月5日星期三,18,标志位设置,例1:3AH+7CH,例2:0AAH+7CH,2023年7月5日星期三,19,3A H=0011 1010 B,+)7C H=0111 1100 B,1011 0110 B=0B6H,CF=SF=ZF=OF=,1,0,1,0,AA H=1010 1010 B,+)7C H=0111 1100 B,1 0010 0110 B=(1)26H,CF=SF=ZF=OF=,0,1,0,0,问题:什么是溢出?溢出和进位有何区别?如何判断溢出?,2023年7月5日星期三,20,什么是溢出?,微机中常用补码来表示有符号数;8位表达的范围是:-128

9、+12716位表达的有符号数范围是:-32768+32767如果运算结果超出这个范围,就产生了溢出,则表示该运算结果不正确!注意:只有加减法运算中才会出现溢出现象,在其他运算中无溢出!,2023年7月5日星期三,21,溢出和进位的区别,溢出标志OF和进位标志CF是两个意义不同的标志位;进位标志CF其设置完全根据二进制数据的计算情况设置;表示无符号数的运算结果是否溢出;无论CF为何值,无符号数的运算结果均正确。溢出标志OF其设置是把数据看作有符号数来判断的;表示有符号数运算结果是否溢出;当OF=1时,有符号数的运算结果不正确。,2023年7月5日星期三,22,前面例子的结果,例1:3AH+7CH

10、B6H作为无符号数:58124182,范围内,无进位作为有符号数:58124182,范围外,有溢出例2:AAH+7CH(1)26H作为无符号数:170124294,范围外,有进位作为有符号数:8612438,范围内,无溢出,2023年7月5日星期三,23,如何判断溢出?,判断运算结果是否溢出的规则:运算前后数据的符号将减法运算转换成加法运算;x y补 x补+y补(mod 2n+1)当正数+正数=负数,或者负数+负数=正数时,产生溢出。其他判断方法:直接判别法:不容易判断;进位判别法:最高位和次高位的进位位相异或。,2023年7月5日星期三,24,判断标志位状态,例:计算(-56)+(-67)=

11、?,并给出6个状态标志位的状态。,2023年7月5日星期三,25,1100 1000 1011 1101(1)1000 0101,CF=,ZF=,SF=,OF=,=-123D,1,0,1,0,(-56)补1100 1000(-67)补1011 1101,2.2 存储器的管理模式,主存储器用于存放系统运行所需要的所有的程序和数据;开机后自动从BIOS和辅存中调入数据,掉电后丢失;存储器的基本单位是存储单元;每个存储单元的大小可以是一个字节,或一个字;8086 CPU的主存是以字节进行组织的;每个存储单元都有一个唯一的编号,称为物理地址,用于CPU访问;存储器容量单位bit、Byte、KB、MB、

12、GB,2023年7月5日星期三,26,物理地址(Physical Address,PA),将整个存储器从第一单元到最后一个单元按顺序编号所得到的地址称为物理地址;物理地址可以唯一地标识每一个存储单元;CPU访问主存时,必须通过地址总线输出所要访问存储单元的的物理地址。系统的最大主存容量取决于地址总线的位数;,2023年7月5日星期三,27,主存储器,CPU对主存储器的访问过程,CPU通过控制总线,发出访存信号,通知主存准备数据读写;CPU通过地址总线,发出存储单元的地址;主存储器接收到地址后,译码,寻址正确的存储单元;CPU通过控制总线,发出读写的命令;主存储器将准备执行读写操作;CPU通过数

13、据总线,读出或写入的数据;,2023年7月5日星期三,28,8086需要4个时钟周期,80486只需要1个时钟周期。,1,PA,1100 0110,1,1100 0110,存储单元中数据的存取方法,基本原则:高高低低原则即低地址单元存放低位数据,高地址单元存放高位数据。例如,存储器如右图所示12341H单元的字节数据为34H;12341H单元的字数据为5634H。,2023年7月5日星期三,29,12340H12341H12342H12343H12344H,存储器分段管理的原因,16位系统中地址总线20根可寻址主存空间为220=1MB 地址区间00FFFFFH机器字长16位运算的最大位数、指针

14、等只有16位可直接寻址的空间为216=64KB 地址区间00FFFFH因此,采用分段方式管理和访问内存。,2023年7月5日星期三,30,物理地址,存储器的分段管理,分段的思想:用两个16位地址合成的方法形成一个20位的物理地址关于分段的规定段的起始:每个逻辑段的起始地址必须是16的倍数。即:xxxx xxxx xxxx xxxx 0000B 或:xxxx0H段的容量:每个逻辑段的最大容量可以达到64KB。注意:各逻辑段之间是可以重叠的。,2023年7月5日星期三,31,主存实际上并没有从物理上分段,段的划分只是来自于CPU的管理!,存储器的分段管理模式,2023年7月5日星期三,32,物理地

15、址00000H12340H12341H 22000H2233FH0FFFFFH,主存储器,段起始单元,逻辑段1,段地址为:1234H保存于段寄存器中,偏移地址0000H0001H0002H 0FFFFH,段起始单元,逻辑段2,段地址为:2200H保存于段寄存器中,偏移地址0000H0001H0002H 0FFFFH,关于分段,1MB空间最多能分成多少个段?逻辑段最密集的划分方式每隔16个存储单元开始一个新段,各段都是重叠的;所以,1MB最多可以有2201621664K 个段1MB空间最少能分成多少个段?逻辑段最松散的划分方式每隔 64K 个存储单元开始一个新段,各段不重叠;所以,1MB最少可以

16、有 22021616 个段,2023年7月5日星期三,33,物理地址的形成,任意一个物理地址均可以用段地址和偏移地址两部分形成;逻辑地址:段地址+偏移地址分段的不同,可导致同一个物理地址对应多个不同的逻辑地址。物理地址(PA)=段地址16+偏移地址段地址:段起始单元物理地址的高16位,其值由段寄存器(CS、DS、ES、SS)保存;偏移地址:也叫有效地址(EA),指实际单元和段起始单元之间的距离。,2023年7月5日星期三,34,即将段地址左移4个二进制位,分段模式下主存储器的地址类型,物理地址每个存储单元在整个存储器中的唯一标识;段地址逻辑段首单元的物理地址的高16位;有效地址EA(段内偏移地

17、址)该存储单元相对于段首单元的偏移量;该单元物理地址=有效地址+段首单元的物理地址;逻辑地址由段地址和有效地址表示的存储单元地址形式;,2023年7月5日星期三,35,某单元A的物理地址为23000H,若段起始地址为20000H,即段地址为2000H,则A的有效地址为3000H,该段中,A的逻辑地址可表示为2000H:3000H,段寄存器的引用,段寄存器要与指针寄存器一起使用来访问主存;代码段段寄存器CS指针寄存器为IP。数据段段寄存器DS指针寄存器一般用BX、SI、DI。附加段段寄存器ES指针寄存器一般用DI(字符串操作)。堆栈段段寄存器SS指针寄存器SP指向栈顶,指针寄存器BP指向栈内任意

18、位置。,2023年7月5日星期三,36,物理地址的形成,2023年7月5日星期三,37,习题2.8 填空,16位CPU在取指令时,需要用到的寄存器有和;访问堆栈段栈顶单元要由段寄存器和寄存器组合来寻址,访问堆栈段中的单元要由段寄存器和寄存器组合来寻址;访问数据段中的单元要由 段寄存器和 寄存器组合来寻址;在16位微机系统中,一个程序最多能同时使用个数据段。,2023年7月5日星期三,39,CS,IP,SS,SP,SS,BP,DS,BX、SI、DI,3,DS、ES、SS,本章小结,熟悉CPU内部寄存器的功能和用法,能够在以后的汇编语言程序设计中熟练应用;理解8086系统中的存储器分段管理模式;理解分段管理模式下的物理地址形成;熟悉分段管理模式下的逻辑地址表示;了解分段管理模式下地址与寄存器之间的关系;,2023年7月5日星期三,40,第2章 作业,P21 1、3、9、12补充作业:1、为什么实模式下的每个段不能超过64KB?2、设有一个包含8个字的数据区,起始地址为2100:2A10H,请给出该数据区首末字单元的物理地址。,2023年7月5日星期三,41,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号