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



