《第2章80x86计算机组织》由会员分享,可在线阅读,更多相关《第2章80x86计算机组织(8页珍藏版)》请在金锄头文库上搜索。
1、第第 2 2 章章 80x86 计算机组织计算机组织1教学目的:掌握 INTEL80X86 微处理器的结构及内存单元地址与内容的含义和 关系,了解计算机接口的构成,为汇编语言编程奠定基础。 2教学要求: 熟练掌握 INTEL80X86 微处理器的结构 掌握内存单元地址与内容的含义和关系 了解计算机接口的构成 3教学重点: 微处理器的功能结构 微存储器组织 4掌握难点:微处理器的寄存器组 存储器寻址 5教学进程安排:P1932 6教学方法:重点讲授微处理器的功能结构和微存储器组织 一般叙述计算机接口的构成 7教学内容摘要:2.12.1 80x8680x86 微处理器微处理器80x86 微处理器是
2、美国 Intel 公司生产的微处理器系列。该公司成立于 1968 年,1969 设计了 4 位的 4004 芯片,1973 年开发了 8 位的 8080 芯片,1978 推出了 16 位的 8086 芯片, 由此开始了 Intel 公司 80x86 微处理器系列的历史。2.1.12.1.1 微处理器概况微处理器概况晶体管数:芯片中包含的晶体管数目,说明器件的集成度;主频:芯片中所用的主时钟频率,反映计算机的运算速度;数据总线:负责计算机中数据在各组成部分之间的传送;数据总线宽度:芯片内部数据传送的宽度;外部数据总线宽度:芯片内和芯片外数据交换的宽度;地址总线宽度:传送地址的总线宽度,根据这一数
3、值可以确定处理机可以访问的存 储器的最大范围。例:20 位地址总线可以访问 220=1048576 个存储单元。存储容量的换算:1K=210B=1024B; 1M=210K=1024K;1G=210M=1024M;高速缓存:存储速度比较快的存储器,现在有很多都做在芯片中2.22.2 基于微处理器的计算机系统构成基于微处理器的计算机系统构成微型计算机系统包括硬件和软件两部分。2.2.12.2.1 硬件系统硬件系统图 2.1 给出了微型计算机组成框图。图图 2.12.1 微型计算机硬件系统组成微型计算机硬件系统组成把运算器、控制器、主存储器和输入/输出接口称为组成计算机硬件系统的五大部件。 计算机
4、硬件的五大部件是通过总线连接起来的,构成了计算机的基本硬件系统。各部分的 主要功能如下: 输入设备:用于输入原始信息和处理信息的程序。如键盘、鼠标器和扫描仪等。 输出设备:用来输出计算机的处理结果及程序清单。如显示器和打印机。 存储器:用来存放程序和数据。在控制器的控制下,可与输入设备、输出设备、 运算器、控制器交换信息,是计算机中各种信息存储和交流的中心。 运算器:用来对信息及数据进行处理和计算。也称为算术逻辑部件 ALU(Arithmetic and Logic Unit) 。 控制器:是整个计算机的指挥中心,用来指挥计算机各部件的操作,使其协调一 致地工作。2.2.22.2.2 软件系统
5、软件系统计算机软件是计算机系统的重要组成部分,它可以分成系统软件和应用软件两大类。 图 2.2 表示了计算机软件的层次。图图 2.22.2 软件系统的层次软件系统的层次系统软件软件数据库管理系统工具软件诊断与维护程序 调试程序 编辑程序 装配链接程序语言处理程序汇编程序 解释程序 编译程序操作系统单用户操作系统 多用户操作系统 网络操作系统 应用软件软件包用户程序输入设备输出设备接 口口微处理器 CPU 中央处理器主板输入/输出芯片存 储 器运 算 器控 制 器接 口口2.32.3 中央处理机中央处理机2.3.12.3.1 中央处理机中央处理机 CPUCPU 的组成的组成算术逻辑部件:进行算术
6、和逻辑运算;控制逻辑部件:负责对全机的控制工作;工作寄存器:存放计算过程中所需要的或所得到的各种信息。2.3.22.3.2 80X8680X86 寄存器组寄存器组图图 2.32.3 80X8680X86 的程序寄存器组的程序寄存器组程序不可见的寄存器:一般应用程序不使用而由系统所用的寄存器; 程序可见的寄存器:汇编语言程序设计中用到的寄存器,分为:通用寄存器、专用寄存器、 段寄存器。 1、通用寄存器 (1)数据寄存器(AX、BX、CX、DX):用来暂时存放计算过程中所用到的操作数、结 果或其它信息,可以以字(16 位)也可以以字节(8 位)的形式访问。 AX: 累加器; 乘、除等指令中用来存放
7、操作数; 传递 I/O 指令与外设的信息。BX: 通用寄存器; 基址寄存器。 CX:通用寄存器; 保存计数值,如在移位指令、循环指令(loop) 、串处理指令 中用作隐含的计数器。 DX:通用寄存器;双字长运算时,和 AX 组合在一起存放双字长数,DX 存放高位 字; 在某些 I/O 操作中,存放端口地址; (2)指针(或变址)寄存器(SP、BP、SI、DI): 运算过程中存放操作数,只能AH ALBH BLCH CLDH DLSPBPDISIIPFLAGSCSDSESSSFSGS32 位16 位32 位名称16 位名称通用名称AX(累加器)基址变址计数堆栈指针数据基址指针目的变址源变址指令指
8、针标志代码数据附加堆栈EAXEBXECXEDXESPEBPEDIESIEIPEFLAGS注:1. 对于 8086/88 或 80286CPU,图 中阴影区寄存器是不存在的;2. FS 和 GS 寄存器无专用名称。以字(16 位)为单位使用; 存储器寻址时,提供偏移地址。 SP(堆栈指针寄存器):用来指示段顶的偏移地址; BP(基址指针寄存器):可作为堆栈区中的某一个基地址,与堆栈段寄存器 SS 联用来 确定堆栈段中的某一存储单元的地址; SI(源变址寄存器)和 DI(目的变址寄存器): 一般与数据段寄存器 DS 联用,用 来确定数据段中某一存储单元的地址。 具有自动增量和自动减量的功能。在串处
9、理指 令中,SI 和 DI 作为隐含的源变址和目的变址寄存器,SI 和 DS 联用实现在数据段中寻址, DI 和附加段寄存器 ES 联用实现在附加段中寻址。 2、专用寄存器(IP、SP、FLAGS) IP(指令指针寄存器):存放代码段 CS 中的偏移地址。在程序运行的过程中,始终 指向下一条指令的首地址,与代码段 CS 联用来确定下一条指令的物理地址。 SP(堆栈指针寄存器):与堆栈段寄存器 SS 联用来确定堆栈段中栈顶的地址,即存放 栈顶的偏移地址。 FLAGS(标志寄存器/程序状态寄存器 PSW):存放条件码标志、控制标志、系统标志, 可按位操作。图图 2.42.4 80X8680X86
10、的标志寄存器的标志寄存器(1)条件码标志位:记录程序中运行结果的状态信息,根据有关指令的运行结果由 CPU 自动设置,用作后续条件转移指令的转移控制条件。 溢出标志(OF):在运算过程中,如操作数超出了机器能表示的范围称为溢出。此 时 OF 置 1,否则置 0。 符号标志(SF):记录运算结果的符号,负时置 1,否则置 0。 零标志(ZF):运算结果为 0 时置 1,否则置 0。 进位标志(CF):最高有效位有进位时置 1,否则置 0。 辅助进位标志(AF):记录运算时第 3 位产生的进位值,有进位时置 1,否则置 0。 奇偶标志(PF):用来为机器中传送信息时可能产生的代码出错情况提供检验条
11、件。 当结果操作数中 1 的个数为偶数时置 1,否则置 0。 控制标志位(DF):在串处理指令中控制处理信息的方向。 当 DF 为 1 时,每次操作后使变址寄存器 SI 和 DI 减小,串处理从高地址向低地址方向 处理。 当 DF 为 0 时,每次操作后使变址寄存器 SI 和 DI 增大,串处理从低地址向高地址方向 处理。 (2) 系统标志位:用于 I/O、中断屏蔽、程序调试、任务切换和系统工作方式等的 控制。一般应用程序不必关心这些位,只有系统程序员或需要编制低层 I/O 设备控制等程 序时才需要。 陷阱标志(TF):用于调试时的单步方式操作。TF 为 1 时,每条指令执行完后产生 陷阱,由
12、系统控制计算机;TF 为 0 时,CPU 正常工作,不产生陷阱。 中断标志(IF):当 IF 为 1 时,允许 CPU 响应可屏蔽中断请求,否则关闭中断。 (第八章) I/O 特权级(IOPL):在保护模式下,用于控制对 I/O 地址空间的访问。 (第八章)标志位的符号表示表表 2-1 标志位的符号表示标志位的符号表示 标标 志志 名名标志为标志为 1标志为标志为 0 OF 溢出(是否) DF 方向(减量增量 IF 中断(允许关闭) SF 符号(负正) ZF 零(是否) AF 辅助进位(是否) PF 奇偶(偶奇) CF 进位(是否)OV DN EI NG ZR AC PE CYNV UP DI
13、 PL NZ NA PO NC2.42.4 存储器存储器2.4.12.4.1 内存地址范围内存地址范围物理地址物理地址:在存储器里以字节为单位存储信息,每一个字节单元给以一个唯一的存储 器地址,称为物理地址。地址从 0 开始编号,顺序地每次加 1。 考虑地址总线分别为 20 位、24 位、32 位、36 位时,可访问的单元地址范围。2.4.22.4.2 内存单元的地址和内容内存单元的地址和内容在存储器里以字节为单位存储信息。为了正确地存放或取得信息,每一个字节单元给 以一个惟一的存储器地址,称为物理地址。地址从 0 开始编号,顺序地每次加 1,因此存 储器的物理地址空间是呈线性增长的。在机器里
14、,地址也是用二进制数来表示的,当然它 是无符号整数,书写格式使用十六进制数形式。 存储器有这样的特性:它的内容是取之不尽的。也就是说,从某个单元取出其内容后, 该单元仍然保存着原来的内容不变,可以重复取出,只有存入新的信息后,原来保存的内 容就自动丢失了。 地址及其内容地址及其内容:(地址)=内容表表 2-2 内存单元得地址及内容内存单元得地址及内容 例:(0002H)=78H 字的存放字的存放:低位字节存入低地址,高位字节存入高地址。 字的地址采用它的低地址来表示(双字的存放与此类似) 。 如:2 号字单元的内容 (0002H)=5678H 如:2 号双字单元的内容 (0002H)=1234
15、5678H 注注:同一个地址既可看作字节单元的地址,又可看作字、 双字、4 字单元的地址。 例:(0004H)45A6H2.4.32.4.3 实模式存储器寻址实模式存储器寻址1. 存储器地址的分段 (1)实模式下允许的最大寻址空间为 1MB。 (2)要解决在 16 位字长的机器里怎么提供 20 位地址的问题,而解决的办法是采用存储 器地址分段的方法。0000H0001H78H0002H56H0003H34H0004H12H0005HA6H1234H45H1235H(3)物理地址的形成 物理地址=段地址16D+偏移地址 (4)实模式存储器寻址(A)物理地址形成过程物理地址形成过程 (B B) 物理地址计算方法物理地址计算方法图图 2.52.5 实模式存储器寻址时物理地址的形成与计算过程实模式存储器寻址时物理地址的形成与计算过程图图 2.62.6 实模式存储器寻址实模式存储器寻址2. 段寄存器 (1)代码段 CS:存放当前正在运行的程序;、 (2)数据段 DS、数据段存放当前运行程序所用的数据,如果程序中使用了串处理指令, 则其源操作数也存放在数据段中 (3)堆栈段 SS 堆栈段定义了堆栈的所在区域 (4)附加段 ES 附加段是附加的数据段,它是一个辅助的数据区,也是串处理指令的目的 操作数存放区 在 80386 及其