chap2-8 80X86计算机组织_第1页
chap2-8 80X86计算机组织_第2页
chap2-8 80X86计算机组织_第3页
chap2-8 80X86计算机组织_第4页
chap2-8 80X86计算机组织_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、2.1 80X862.1 80X86微处理器微处理器2.2 2.2 基于微处理器的计算机系统构成基于微处理器的计算机系统构成2.3 8086CPU2.3 8086CPU和寄存器组和寄存器组2.4 2.4 存储器存储器2.5 2.5 外部设备外部设备字长:字长:CPU一次能够处理的数据长度一次能够处理的数据长度主频:指芯片所用的主时钟频率,直接影响计算机的主频:指芯片所用的主时钟频率,直接影响计算机的速度。受到外频(主板提供的频率)和倍频(通过跳速度。受到外频(主板提供的频率)和倍频(通过跳线改变线改变1.5 2.0 2.5 3.0)影响)影响 主频主频=外频外频*倍频倍频数据总线数据总线 宽度

2、表示一次能处理的最大数据宽度表示一次能处理的最大数据地址总线地址总线 确定处理机最大可访问的存储单元的地址确定处理机最大可访问的存储单元的地址 20位地址线位地址线 220= 1M 210=1K=1024B 220= 1024K=1M 230= 1024M=1G。存储单元以字节为基本单位,存储单元以字节为基本单位,8位一字节位一字节 用符号用符号B表示表示高速缓存高速缓存 为了缓解内存与为了缓解内存与CPU的速度差异的速度差异美国Intel公司生产,表2-1概括计算计算机系机系统统硬件硬件软件软件CPU CPU 大脑大脑存储器存储器 记忆部件记忆部件输入输出子系统输入输出子系统通过通过总线总线

3、连接连接系统软件系统软件应用软件应用软件中央处中央处理器理器CPU总线控总线控制逻辑制逻辑 接口接口存储器存储器接口接口 大容量大容量存储器存储器I/O设备设备I/O子系统子系统计算机计算机的记忆的记忆部件部件或者称或者称作仓库作仓库计算机的大计算机的大脑指挥中心脑指挥中心系统总线系统总线系统软件的核心系统软件的核心操作系统操作系统,是系统程序的集,是系统程序的集合合翻译程序翻译程序 将其他语言写的程序翻译成目标程将其他语言写的程序翻译成目标程序的系统程序。序的系统程序。编译程序编译程序(整体翻译整体执行整体翻译整体执行)和和解释程序解释程序(边解释边执行边解释边执行)、 汇编程序汇编程序把汇

4、把汇编源程序翻译成目标程序的系统程序编源程序翻译成目标程序的系统程序连接程序连接程序 用来把要执行的程序与库文件或其用来把要执行的程序与库文件或其他已经翻译好的子程序连接在一起,形成能他已经翻译好的子程序连接在一起,形成能执行的程序。执行的程序。调试程序调试程序 汇编语言程序可以用汇编语言程序可以用DEBUG来调来调试试2.3 8086CPU和寄存器组和寄存器组 2.3.1 8086 CPU内部结构内部结构 2.3.2 8086 寄存器组寄存器组 2.3.3 标志寄存器标志寄存器2.3.1 8086CPU内部结构内部结构总线接口部件总线接口部件执行执行部件部件2.3.2 8086寄存器组寄存器

5、组1通用寄存器通用寄存器(1)数据寄存器数据寄存器 可以用作可以用作1616位和位和8 8位位共有共有4个寄存器个寄存器AX、BX、CX、DX,用来保存操作,用来保存操作数或运算结果等信息。数或运算结果等信息。 AX寄存器称为累加器。使用频度最高,用于算术、寄存器称为累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。乘除指令存放操作逻辑运算以及与外设传送信息等。乘除指令存放操作数。数。AH / ALBX寄存器称为基址寄存器。常用于存放存储器地址。寄存器称为基址寄存器。常用于存放存储器地址。CX寄存器称为计数器。一般作为循环或串操作等指寄存器称为计数器。一般作为循环或串操作等指令中的

6、隐含计数器。令中的隐含计数器。DX寄存器称为数据寄存器。常用来存放双字数据的寄存器称为数据寄存器。常用来存放双字数据的高高16位,或存放外设端口地址。位,或存放外设端口地址。访问低或高访问低或高8位时另外的位时另外的8位不受影响位不受影响变址和指针寄存器包括变址和指针寄存器包括SI、DI、SP、BP个个16位寄存器,主要用于存放某个存储单元的偏移地位寄存器,主要用于存放某个存储单元的偏移地址。也可以用来存放操作数。址。也可以用来存放操作数。只能用作只能用作1616位位SI是源变址寄存器,是源变址寄存器,DI是目的变址寄存器,在是目的变址寄存器,在字符串操作中,字符串操作中,SI和和DI都具有自

7、动增量或减量的都具有自动增量或减量的功能。串指令中,功能。串指令中,SI 和和DS联用,联用,DI和和 ES联用联用 SP为堆栈指针寄存器,用于存放当前堆栈段中为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址栈顶的偏移地址;BP为基址指针寄存器,用于为基址指针寄存器,用于存放存放堆栈段中某一存储单元堆栈段中某一存储单元的偏移地址。的偏移地址。 (2)变址和指针寄存器)变址和指针寄存器2段寄存器段寄存器 8086CPU的个的个16位的段寄存器分别称位的段寄存器分别称为为代码段寄存器代码段寄存器CS,数据段寄存器,数据段寄存器DS,堆栈段寄存器堆栈段寄存器SS,附加数据段寄存器附加数据段寄存器

8、ES。段寄存器用来确定该段在内存中的起始段寄存器用来确定该段在内存中的起始地址。地址。80386以后出现了两个以后出现了两个FS GS附加附加数据段寄存器数据段寄存器 代码段用来存放程序的指令序列。代码段用来存放程序的指令序列。CS存存放代码段的段首址,指令指针寄存器放代码段的段首址,指令指针寄存器IP指示代码段中指令的偏移地址。指示代码段中指令的偏移地址。3指令指针寄存器指令指针寄存器IP 它总是它总是保存下一个将要执行的指令的偏保存下一个将要执行的指令的偏移地址,移地址,偏移地址是指该指令到所在段偏移地址是指该指令到所在段段首址的字节距离。在目标程序运行时,段首址的字节距离。在目标程序运行

9、时,IP的内容由微处理器硬件自动设置,程的内容由微处理器硬件自动设置,程序不能直接访问序不能直接访问IP,但一些指令却可改,但一些指令却可改变变IP的值,如转移指令、子程序调用指的值,如转移指令、子程序调用指令等。令等。4 标志寄存器标志寄存器FLAGS 8086CPU中有一个很重要的中有一个很重要的16位标志寄位标志寄存器,它包含存器,它包含9个标志位,主要用于保存个标志位,主要用于保存一条指令执行后,一条指令执行后,CPU所处状态信息及所处状态信息及运算结果的特征。运算结果的特征。 1条件标志位条件标志位 6个个 2控制标志位控制标志位 3个个1 1条件标志条件标志 (1)进位标志进位标志

10、CF 有借位或进位有借位或进位 CF=1 否则否则CF=0(2)零标志零标志ZF 结果为零时结果为零时ZF=1 否则否则 ZF=0(3)符号标志符号标志SF 结果为负结果为负 SF=1 为正为正 SF=0(4)溢出标志溢出标志 OF 溢出溢出OF=1 否则否则OF=0(5)奇偶标志奇偶标志 PF 1的个数为偶数的个数为偶数PF=1为奇数为奇数PF=0(6)辅助进位标志辅助进位标志AF 半个字节有进位半个字节有进位 AF=1 否则否则AF=02状态控制标志状态控制标志 (1)方向标志)方向标志DF DF=1 SI或或DI自动减自动减通过命令设置通过命令设置 DF=0 SI或或DI自动加自动加 (

11、2)中断允许标志)中断允许标志IF IF=1 允许中断允许中断IF=0 禁止中断禁止中断 (3)陷阱标志)陷阱标志TF TF=1 一条指令执行完进入陷阱一条指令执行完进入陷阱TF=0无陷阱无陷阱标志名标志名标志位标志位1标志位标志位0OFDFIFSFZFAFPFCFOVDNEING ZRAC PECY NVUPDIPLNZNAPONC课内练习课内练习AX又称又称 。既可以用作。既可以用作16位位又可用作又可用作8位的寄存器有位的寄存器有 。SP是是 寄存器用在寄存器用在 段中。段中。当结果为零时,标志位当结果为零时,标志位 的值等于的值等于 。SI DI 的名称的名称 用途用途P33 习题习题

12、2.7 2.8 2.9 2.4.1 存储器存储器 2.4.2 存储器单元的地址和内容存储器单元的地址和内容 2.4.3 实模式存储器寻址实模式存储器寻址2.4.1 存储器存储器存储器是计算机的记忆部件,用来存放存储器是计算机的记忆部件,用来存放程程序和数据序和数据。按所在的位置,。按所在的位置,存储器可以分成存储器可以分成主存储器主存储器(内存内存)和辅助存储器。和辅助存储器。主存储器存放主存储器存放当前正在执行的程序和使用当前正在执行的程序和使用的数据的数据,CPU可以直接存取,它由半导体存可以直接存取,它由半导体存储器芯片构成,其储器芯片构成,其成本高,容量小,但速度成本高,容量小,但速度

13、快快。辅助存储器可用来长期保存大量程序和数辅助存储器可用来长期保存大量程序和数据据,CPU需要通过需要通过I/O接口访问,它由磁盘或接口访问,它由磁盘或光盘构成,其光盘构成,其成本低,容量大,但速度较慢成本低,容量大,但速度较慢。 2.4.2 存储器单元的地址和内容存储器单元的地址和内容 存储单元地址存储单元地址 :8086系统中,为了标系统中,为了标识和存取每一个存储单元,给每个存识和存取每一个存储单元,给每个存储单元规定一个编号,这就是存储单储单元规定一个编号,这就是存储单元地址。元地址。(门牌号门牌号) 存储单元的内容存储单元的内容 :一个存储单元中存:一个存储单元中存放的信息称为该存储

14、单元的内容。放的信息称为该存储单元的内容。(住户,(住户,每个住户的身份工作等不同每个住户的身份工作等不同) 每个存储单元都有唯一的每个存储单元都有唯一的20位位的存储地址称为的存储地址称为物理物理地址地址在存储器中以在存储器中以字节字节为单位存储信息。每为单位存储信息。每8位为一个字位为一个字节,节,16位为一个字,位为一个字,32位双字,位双字,64位称位称4字字地址从地址从0开始编号,按顺序每字节加开始编号,按顺序每字节加1地址都是地址都是2进制的,进制的,无符号数无符号数。一般书写以。一般书写以十六进制十六进制表示表示16位位2进制数可以表示多少个字节单元的地址?进制数可以表示多少个字

15、节单元的地址?20位位的地址线可以访问的最大地址单元是?的地址线可以访问的最大地址单元是?30?31?16位位 0000H FFFFH20位位 00000HFFFFFH30位位 0H3FFFFFFFH31位位 0H7FFFFFFFH计算方法:计算方法:N位地址线位地址线N/4=M.L有有M个个F和和L个个1组成的组成的31/4=730111FFFFFFFH 表示方式:(地址)表示方式:(地址)=内容内容 数据以字节为单位存取数据以字节为单位存取 地址为地址为1268H的一个字节单元中存放了的一个字节单元中存放了内容内容04H (1268H)=04H 数据以字为单位存取数据以字为单位存取 以连续

16、的两个字节以连续的两个字节单元中单元中低字节的地址作为字单元的地址。低字节的地址作为字单元的地址。高位放在高地址中,低位放在低地址中高位放在高地址中,低位放在低地址中 126AH的一个字单元中存放了内容的一个字单元中存放了内容1A2CH (126AH)=1A2CH 数据以双字为单位存取数据以双字为单位存取 同上同上 图表明了存储器图表明了存储器中部分存储单元中部分存储单元存放信息情况。存放信息情况。从图可看到从图可看到,地址地址为为34560H的的字节字节的存储单元中的的存储单元中的内容是内容是34H,而,而地址为地址为34560H的的字字存储单元中的存储单元中的内容是内容是1234H。低位低

17、位高位高位 X是某存储单元的地址是某存储单元的地址 Y是是X存放的内存放的内容,容, 同时同时Y又是一个存储单元的地址又是一个存储单元的地址,Z是是Y存放的内容存放的内容则则 (X)=Y (Y)=Z (X)=(Y)=Z 从存储单元中取出数据后,此单元的内从存储单元中取出数据后,此单元的内容保持不变,当向存储单元中写入数据容保持不变,当向存储单元中写入数据时,原有内容被覆盖时,原有内容被覆盖 Y . . ZX Y(X)=(Y)=Z注意地址也注意地址也是一种数据是一种数据8086CPU的的地址线是地址线是20位位的,这样最大可寻址空间的,这样最大可寻址空间应为应为220=1MB,其物理地址范围从,

18、其物理地址范围从00000HFFFFFH。而。而8086CPU寄存器都是寄存器都是16位的位的。那么,。那么,这这1MB空间如何用空间如何用16位寄存器表达呢?位寄存器表达呢?存储器地址的分段存储器地址的分段 每段最多可达每段最多可达64K (216) 也可以小于也可以小于64K从从0开始每开始每16个字节为一小段个字节为一小段00000 00001 000020000F00010 00011 000120001F第一列是小段的起始地址第一列是小段的起始地址段的起始地址不是任意的,必须是任意小段的首地段的起始地址不是任意的,必须是任意小段的首地址,段的首地址的最低位为址,段的首地址的最低位为0

19、H1616位二进制最大可位二进制最大可以表示的地址数以表示的地址数经过分段经过分段后,每个后,每个段的范围段的范围不超过不超过64K,相对相对与段首的与段首的距离可以距离可以用用16位二位二进制表示进制表示出来。出来。64K 64KXXXX0HYYYY0H12 1M的存储器中,每个存储单元都有一个唯的存储器中,每个存储单元都有一个唯一的一的20位的地址,称为物理地址位的地址,称为物理地址 20位物理地址位物理地址=16位段地址位段地址10H+16位偏位偏移地址移地址 段地址段地址:每一段的起始地址:每一段的起始地址 偏移地址偏移地址:该存储单元到段首地址的距离或:该存储单元到段首地址的距离或者

20、相对于段首地址的偏移量者相对于段首地址的偏移量 “段地址:偏移地址段地址:偏移地址” 表示是一个逻辑地表示是一个逻辑地址址 一个物理地址对应多个逻辑地址一个物理地址对应多个逻辑地址20位物理地址位物理地址02100H可对应逻辑地址可对应逻辑地址0200:0100 或或01F0:0200 段寄存器用来存放各段的段地址。段寄存器用来存放各段的段地址。 代码段存放正在运行的程序,其段地址在代码段存放正在运行的程序,其段地址在CS中中 数据段存放当前运行程序所用的数据,段数据段存放当前运行程序所用的数据,段地址放在地址放在DS中中 堆栈段定义了堆栈所在的区域,段地址放堆栈段定义了堆栈所在的区域,段地址

21、放在在SS中中 附加段用来存放数据,段地址放在附加段用来存放数据,段地址放在ES中中根据要求可把根据要求可把1M字节地址空间划成若干字节地址空间划成若干逻辑小段(一小段是逻辑小段(一小段是16个字节)。每个个字节)。每个逻辑段必须满足两个条件:一是逻辑段逻辑段必须满足两个条件:一是逻辑段的起始地址(简称段首址)必须是的起始地址(简称段首址)必须是16的的倍数倍数(逻辑小段的首地址逻辑小段的首地址);二是逻辑段;二是逻辑段的最大长度为的最大长度为64K。按照这两个条件,。按照这两个条件,1M字节地址空间最多可划分成字节地址空间最多可划分成64K个逻个逻辑小段辑小段(220/24),最少也要划分成

22、,最少也要划分成16个逻个逻辑段辑段(220/216)。逻辑段与逻辑段可以相连,也可以不连,逻辑段与逻辑段可以相连,也可以不连,还可以重叠。还可以重叠。【例例1】各独立段的分配情况示例。各独立段的分配情况示例。 设设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它们分别为代码段、数据段、它们分别为代码段、数据段、堆栈段和附加段的段地址。自每个段首堆栈段和附加段的段地址。自每个段首地址开始,各段均占地址开始,各段均占64KB的范围,各段的范围,各段之间互不重叠。如下图所示。之间互不重叠。如下图所示。CS物理地址物理地址00000H01500H11500H1CDE0H2C

23、DE0H42000H52000HB0000HC0000H【例例2】各段相互重叠情况示例。各段相互重叠情况示例。 设设CS=0200H、DS=0400H、SS=0480H,这样代码段、数据段和堆栈段的物理首这样代码段、数据段和堆栈段的物理首地址分别为地址分别为02000H、04000H和和04800H。其中代码段占其中代码段占8KB地址空间,数据段占地址空间,数据段占2KB,堆栈段占,堆栈段占256B,SP=0100H。如图。如图所示。所示。 00000H02000H04800H03FFFH11FFFH04000H?0480:00FF 由于由于80286之后,提供了更多的存储空间,之后,提供了更

24、多的存储空间,而实模式的寻址空间只能为而实模式的寻址空间只能为1M,为解决这个为解决这个寻址问题必须引入新的寻址方式。更重要寻址问题必须引入新的寻址方式。更重要的是引入保护模式使微机支持多任务处理的是引入保护模式使微机支持多任务处理 引入保护模式后,程序员仍可以只给出一引入保护模式后,程序员仍可以只给出一个逻辑地址,由机器以个逻辑地址,由机器以更复杂的方式更复杂的方式转换转换成相应的物理地址成相应的物理地址选择器选择器(段寄存器段寄存器)地址转换器地址转换器偏移地址偏移地址所选单所选单元元+段基地址段基地址段基地址段基地址最大最大可达可达4G31 015 02.5外部设备外部设备 两部分,大容

25、量的外部存储器和输入输两部分,大容量的外部存储器和输入输出设备出设备 外部设备是通过外设接口与外部设备是通过外设接口与CPU进行联进行联系的。每个外设接口包括一组寄存器系的。每个外设接口包括一组寄存器数据寄存器数据寄存器 存放外设和存放外设和CPU要传的数据要传的数据状态寄存器状态寄存器 存放外设的状态信息存放外设的状态信息 忙或闲忙或闲命令寄存器命令寄存器 存放存放CPU给外设的命令给外设的命令 读写命读写命令令 外设接口的地址独立编制外设接口的地址独立编制 重点掌握重点掌握 CPU 工作寄存器的用途工作寄存器的用途 AX,BX,CX,DX,SI,DI,SP,BP,IP今后常用今后常用标志寄

26、存器的标志寄存器的9个位表示的意义个位表示的意义 存储器部分存储器部分存储器的分段方法存储器的分段方法 物理地址和逻辑地物理地址和逻辑地段地址和偏移地址段地址和偏移地址 存储器中的内容的表存储器中的内容的表示示 段寄存器和段地址的关系段寄存器和段地址的关系 段地址和段段地址和段(的的)首地址首地址段段(的的)首地址首地址要求最低位为零(小段的首地要求最低位为零(小段的首地址)是址)是20位的位的段地址段地址 又称段基地址,是段的首地址的高又称段基地址,是段的首地址的高十六位十六位 段寄存器中存放段地址段寄存器中存放段地址注意段地址和段注意段地址和段(的的)首地址实际指的是一个首地址实际指的是一

27、个存储单元,经常混着使用。如果所给地址存储单元,经常混着使用。如果所给地址为为16位即指段地址,如果所给地址是位即指段地址,如果所给地址是20位位即段的首地址,如果给出段寄存器的值,即段的首地址,如果给出段寄存器的值,则也是给的段地址。则也是给的段地址。 字长字长 计算机一次最多能处理的位数计算机一次最多能处理的位数 一般都是一般都是8的倍数的倍数 8位位 16位位 32位位 64位位能表示的最大数能表示的最大数 有符号数和无符号数有符号数和无符号数 以以 十六进制表示十六进制表示 数据总线宽度数据总线宽度 芯片内部数据传送的宽度芯片内部数据传送的宽度 与字与字长没有直接联系,但基本上与字长相

28、符长没有直接联系,但基本上与字长相符 地址总线宽度地址总线宽度 确定处理器可以访问的存储确定处理器可以访问的存储器的最大范围器的最大范围能访问的最大地址数能访问的最大地址数 无符号数以十六进制表示无符号数以十六进制表示 求物理地址公式求物理地址公式 段地址段地址10H+偏移地址偏移地址 或者或者段地址段地址16D+偏移地址偏移地址 都是都是16位的位的 2.1 256个个00FFH表示的数的个数是表示的数的个数是256 表示的最大表示的最大十进制数是十进制数是255已知某段的长度已知某段的长度(64KB,256B等等)求末地址求末地址末地址末地址=起始地址起始地址+长度长度-1(以字节为单位)(以字节为单位)思考:如果是以字为单位?已知某段以字为思考:如果是以字为单位?已知某段以字为单位进行存取,长度为单位进行存取,长度为10D,起始地址为,起始地址为0200H,求末地址?求末地址? 2.2 字单元的地址字单元的地址 高位高地址高位高地址 ,低位低地低位低地址址习题习题2.12.93CH2AH1EHE5H000

温馨提示

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

评论

0/150

提交评论