第2章微型计算机结构 教学目的掌握 INTEL80X86微处理器概况以及基于微处理器的计算机系统构成, 为汇编语言编程奠定基础 2.教学要求: ①了解 INTEL80X86微处理器概况 ②理解基于微处理器的计算机系统构成 ③熟练掌握汇编语言编程所需的¢門∪功能结构、微机存储器(MEM)组织和微 机接口组织等基础知识 3.教学重点 ①微处理器的功能结构 ②微存储器组织 4.掌握难点 ①微处理器的寄存器组 ②存储器寻址 5.教学进程安排:P20~40 6.教学方法 ①般叙述 INTEL80X86微处理器概况以及基于微处理器的计算机系统构成 ②重点讲授微处理器的功能结构和微存储器组织 7.教学内容摘要 2.180X86微处理器概述 2.1.1微处理器发展简介 1. Intel8086微处理器 2.Inte80386微处理器 3.Inte80486微处理器 4. Intel奔腾( Pentium)处理器 5. Intel奔腾Ⅱ处理器 6. Intel奔腾Ⅲ处理器 7. Intel奔腾Ⅳ处理器 2.1.2与微处理器相关的概念 1.芯片集成度 2.微处理器主频 3.系统总线,系统总线一般分三类 (1)数据总线( DATA BUS,DB)
第 2 章 微型计算机结构 1.教学目的:掌握 INTEL80X86 微处理器概况以及基于微处理器的计算机系统构成, 为汇编语言编程奠定基础。 2.教学要求: ①了解 INTEL80X86 微处理器概况 ②理解基于微处理器的计算机系统构成 ③熟练掌握汇编语言编程所需的 CPU 功能结构、微机存储器(MEM)组织和微 机接口组织等基础知识 3.教学重点: ①微处理器的功能结构 ②微存储器组织 4.掌握难点: ①微处理器的寄存器组 ②存储器寻址 5.教学进程安排:P20~40 6.教学方法: ①一般叙述 INTEL80X86 微处理器概况以及基于微处理器的计算机系统构成 ②重点讲授微处理器的功能结构和微存储器组织 7.教学内容摘要: 2.1 80X86 微处理器概述 2.1.1 微处理器发展简介 1.Intel 8086 微处理器 2.Intel 80386 微处理器 3.Intel 80486 微处理器 4.Intel 奔腾(Pentium)处理器 5.Intel 奔腾Ⅱ处理器 6.Intel 奔腾Ⅲ处理器 7.Intel 奔腾Ⅳ处理器 2.1.2 与微处理器相关的概念 1. 芯片集成度 2. 微处理器主频 3. 系统总线, 系统总线一般分三类: (1)数据总线(DATA BUS,DB)
(2)地址总线( ADDRESS BUS,AB) 3)控制总线( CONTROL BUS,CB) 4.程序存储及存储器组织 5.处理器运算速度 2.2基于微处理器的计算机系统构成 微型计算机系统包括硬件和软件两部分 2.2.1硬件系统 图2.1给出了微型计算机组成框图。 1.运算器 2.控制器 3.存储器 (1)“读操作”:是指CPU将存储器中存储的某一部分信息取出来进行处理的操作。 (2)“写操作”:是指CPU用新的信息刷新存储器原来存储的某一部分内容的操作。 (3)注意:存储器的读/写操作是以字节为单位按存储器存储单元地址进行的。 4.输入/输出设备 存储器 运算器 中央处理器 主板 输入输出芯片 图2.1微型计算机硬件系统组成 把运算器、控制器、主存储器和输入/输出接口称为组成计算机硬件系统的五大部件。计算 机硬件的五大部件是通过总线连接起来的,构成了计算机的基本硬件系统。 2.2.2软件系统 计算机软件是计算机系统的重要组成部分,它可以分成系统软件和应用软件两大类。图2.2 表示了计算机软件的层次 单用户操作系统 多用户操作系统 操作系统 网络操作系统 汇编程序 系统软件<语言处理程序解释程序 编译程序 数据库管理系统 诊断与维护程序 调试程序 工具软件<编辑程序 装配链接程序
(2)地址总线(ADDRESS BUS,AB) (3)控制总线(CONTROL BUS,CB) 4. 程序存储及存储器组织 5. 处理器运算速度 2.2 基于微处理器的计算机系统构成 微型计算机系统包括硬件和软件两部分。 2.2.1 硬件系统 图 2.1 给出了微型计算机组成框图。 1.运算器 2.控制器 3.存储器, (1)“读操作”:是指 CPU 将存储器中存储的某一部分信息取出来进行处理的操作。 (2)“写操作”:是指 CPU 用新的信息刷新存储器原来存储的某一部分内容的操作。 (3)注意:存储器的读/写操作是以字节为单位按存储器存储单元地址进行的。 4.输入/输出设备 图 2.1 微型计算机硬件系统组成 把运算器、控制器、主存储器和输入/输出接口称为组成计算机硬件系统的五大部件。计算 机硬件的五大部件是通过总线连接起来的,构成了计算机的基本硬件系统。 2.2.2 软件系统 计算机软件是计算机系统的重要组成部分,它可以分成系统软件和应用软件两大类。图 2.2 表示了计算机软件的层次。 系统软件 软件 数据库管理系统 工具软件 诊断与维护程序 调试程序 编辑程序 装配链接程序 语言处理程序 汇编程序 解释程序 编译程序 操作系统 单用户操作系统 多用户操作系统 网络操作系统 …… 输 入 设 备 输 出 设 备 接 口 口 微处理器 CPU 中央处理器 主板 输入/输出芯片 存 储 器 运 算 器 控 制 器 接 口 口
图2.2软件系统的层次 2.3微处理器 2.3.1微处理器的结构 1.微处理器的概念 (1)算术逻辑部件( ARITHMETIC LOGIC UNIT,ALU (2)控制逻辑 (3)工作寄存器 2. INTEL8086/8088微处理器结构 8086CPU内部结构如图2.3所示。按功能可分为两部分:总线接口单元BIU( BUS INTERFACE UNIT)和执行单元EU( EXECUTION UNIT)。 重匚AH_ALAx1 「20位地址总 6位内部总能 内部暂存器 运算暂存器 控制 指令预取队列 电路8086 标志寄存器 执行单元 总线接口单元 BIU 图2.38086cP内部结构 (1)总线接口单元BIU ①地址加法器和段寄存器 ②16位指令指针IP( INSTRUCTION POINTER) ③指令队列缓冲器 ④总线控制逻辑电路 (2)执行单元EU ①算术逻辑运算单元(ALU) ②标志寄存器( FLAGS) ③数据暂存寄存器
图 2.2 软件系统的层次 2.3 微处理器 2.3.1 微处理器的结构 1. 微处理器的概念 ⑴算术逻辑部件(ARITHMETIC LOGIC UNIT,ALU) ⑵控制逻辑 ⑶工作寄存器 2. INTEL 8086/8088 微处理器结构 8086 CPU 内部结构如图 2.3 所示。按功能可分为两部分:总线接口单元 BIU(BUS INTERFACE UNIT)和执行单元 EU(EXECUTION UNIT)。 图 2.3 8086CPU 内部结构 ⑴总线接口单元 BIU ①地址加法器和段寄存器 ②16 位指令指针 IP(INSTRUCTION POINTER) ③指令队列缓冲器 ④总线控制逻辑电路 ⑵执行单元 EU ①算术逻辑运算单元(ALU) ②标志寄存器(FLAGS) ③数据暂存寄存器
④通用寄存器组 ⑤EU控制电路 (3)8086与8088CPU的主要区别 ①8086CPU的指令预取队列为6个字节,而8088CPU只有4个字节 ②8086CPU的AD15~AD0为地址、数据双向分时复用的;而8088CPU只有AD7~AD0为 地址、数据双向分时复用的,A15~A8仅用于输出地址信号。在进行16位数据操作时,8086只 需一个总线周期就可完成,而8088则需要两个总线周期来完成,因此8088的速度较8086要慢 ③8086CPU上的BH信号在8088CPU上变为SSO ④8086的引脚28为M/1O,即CPU访问内存时该引脚输出高电平,访问接口时则输出低 电平。对于8088而言,该引脚的状态正好相反,变为I0/M 8086/808后继机型也包括有准32位和标准32位机,如80836的SX和DX类型。 2.3.280X86寄存器组 32位名称 16位名称 通用名称 AH AL JAX(累加器) EBX BL基址变址 数 栈指针 基址指针 DI 目的变址 源变址 32位 6位 令指针 EFLAGS FLAGS 注:1.对于8086/88或80286CPU,图 中阴影区寄存器是不存在的 数据 2.FS和GS寄存器无专用名称
④通用寄存器组 ⑤EU 控制电路 ⑶8086 与 8088 CPU 的主要区别 ①8086CPU 的指令预取队列为 6 个字节,而 8088 CPU 只有 4 个字节。 ②8086CPU 的 AD15~AD0 为地址、数据双向分时复用的;而 8088 CPU 只有 AD7~AD0 为 地址、数据双向分时复用的,A15~A8 仅用于输出地址信号。在进行 16 位数据操作时,8086 只 需一个总线周期就可完成,而 8088 则需要两个总线周期来完成,因此 8088 的速度较 8086 要慢 些。 ③8086CPU 上的 BHE 信号在 8088CPU 上变为 SSO 。 ④8086 的引脚 28 为 M/ IO ,即 CPU 访问内存时该引脚输出高电平,访问接口时则输出低 电平。对于 8088 而言,该引脚的状态正好相反,变为 IO/ M 。 8086/8088 后继机型也包括有准 32 位和标准 32 位机,如 80836 的 SX 和 DX 类型。 2.3.2 80X86 寄存器组 AH AL BH BL CH CL DH DL SP BP DI SI IP FLAGS CS DS ES SS FS GS 32 位 16 位 32 位名称 16 位名称 通用名称 AX(累加器) 基址变址 计数 堆栈指针 数据 基址指针 目的变址 源变址 指令指针 标志 代码 数据 附加 堆栈 EAX EBX ECX EDX ESP EBP EDI ESI EIP EFLAGS 注:1. 对于 8086/88 或 80286CPU,图 中阴影区寄存器是不存在的; 2. FS 和 GS 寄存器无专用名称
图2.480X86的程序寄存器组 1.通用寄存器 2.专用寄存器 3.段寄存器 缓小级o中四s图rmn 3 151413121109876543210位编号 图2.580X86的标志寄存器 表22标志位的符号表示 标志名 标志为0 OF溢出(是/否) DF方向(减量/增量 DN IF中断(允许/关闭) 符号(负/正) ZF零(是/否 ZR AF辅助进位(是/否) PF奇偶(偶/奇) PE 2.4存储器 2.4.1存储单元的地址和内容 地址 (a)字节 高位字节低位字节 b)字 高位字
图 2.4 80X86 的程序寄存器组 1. 通用寄存器 2. 专用寄存器 3. 段寄存器 图 2.5 80X86 的标志寄存器 表 2-2 标志位的符号表示 标 志 名 标志为 1 标志为 0 OF 溢出(是/否) DF 方向(减量/增量 IF 中断(允许/关闭) SF 符号(负/正) ZF 零(是/否) AF 辅助进位(是/否) PF 奇偶(偶/奇) CF 进位(是/否) OV DN EI NG ZR AC PE CY NV UP DI PL NZ NA PO NC 2.4 存储器 2.4.1 存储单元的地址和内容 76543210 N 地址 (a) 字节 高位字 低位字 高位字节 低位字节 (b) 字 N+1 N 地址 15 8 7 0 31 16 15 0
图2.6数据类型 在存储器里以字节为单位存储信息。为了正确地存放或取得信息,每一个字节单元给以 个惟一的存储器地址,称为物理地址。地址从0开始编号,顺序地每次加1,因此存储器的物 理地址空间是呈线性增长的。在机器里,地址也是用二进制数来表示的,当然它是无符号整数, 书写格式使用十六进制数形式 存储器有这样的特性:它的内容是取之不尽的。也就是说,从某个单元取出其内容后,该 单元仍然保存着原来的内容不变,可以重复取出,只有存入新的信息后,原来保存的内容就自 动丢失了。 2.4.2实模式存储器寻址 1.存储器地址的分段 (1)实模式下允许的最大寻址空间为IMB (2)要解决在16位字长的机器里怎么提供20位地址的问题,而解决的办法是采用存储器地 址分段的方法 (3)物理地址的形成 物理地址=段地址×16D+偏移地址 (4)实模式存储器寻址 逻辑地址偏移地址 段寄存器000段地址 16位段地址 16位偏移地址 20位物理地址 20位物理地址 (A)物理地址形成过程 (B)物理地址计算方法 图2.8实模式存储器寻址时物理地址的形成与计算过程 存储器 段地址 0000 段基地址 偏移地址
图 2.6 数据类型 在存储器里以字节为单位存储信息。为了正确地存放或取得信息,每一个字节单元给以一 个惟一的存储器地址,称为物理地址。地址从 0 开始编号,顺序地每次加 1,因此存储器的物 理地址空间是呈线性增长的。在机器里,地址也是用二进制数来表示的,当然它是无符号整数, 书写格式使用十六进制数形式。 存储器有这样的特性:它的内容是取之不尽的。也就是说,从某个单元取出其内容后,该 单元仍然保存着原来的内容不变,可以重复取出,只有存入新的信息后,原来保存的内容就自 动丢失了。 2.4.2 实模式存储器寻址 1. 存储器地址的分段 (1)实模式下允许的最大寻址空间为 1MB。 (2)要解决在 16 位字长的机器里怎么提供 20 位地址的问题,而解决的办法是采用存储器地 址分段的方法。 (3)物理地址的形成 物理地址=段地址×16D+偏移地址 (4)实模式存储器寻址 (A) 物理地址形成过程 (B) 物理地址计算方法 图 2.8 实模式存储器寻址时物理地址的形成与计算过程 段地址 0000 偏移地址 15 15 0 0 存储器 所选存储单元 段基地址 所选段 最大 64KB ╋ 段地址 加法器 19 0 15 0 逻辑地址 偏移地址 段寄存器 0000 20 位物理地址 15 0 16 位段地址 16 位偏移地址 20 位物理地址 15 15 19 0 0000 + 0 0
图2.9实棋式存储器寻址 2.段寄存器 (1)代码段CS:存放当前正在运行的程序; (2)数据段DS、数据段存放当前运行程序所用的数据,如果程序中使用了串处理指令,则其 源操作数也存放在数据段中 (3)堆栈段SS堆栈段定义了堆栈的所在区域 (4)附加段ES附加段是附加的数据段,它是一个辅助的数据区,也是串处理指令的目的操作 数存放区 在80386及其后继的80X86中新增段寄存器 (1)FS (2)GS 在80X86中,段寄存器和与其对应存放偏移地址的寄存器之间有一种默认组合关系,如表2-3 和表2-4所示 有时候程序需要改变段寄存器和偏移地址的缺省组合,具体改变方法在指令中说明 在这种默认组合下,程序中不必专门指定其组合关系,但程序如用到非默认的组合关系, 则必须用段跨越前缀加以说明。这一点将在第3章中说明。 表2-38086/8088,80286缺省16位段地址和寄存器偏移地址寻址认组合 偏移 SP或BP 堆栈寻址 BX、D,SI或一个16位数数据寻址 DI(用于串指令) 2-480386及其后继机型缺省32位段地址和寄存器偏移地址寻址默认组合 主要用途 EIP 指令寻址 ESP或EBP 堆栈寻址 EAX、EBX、ECX、EDX、EDI数据寻址 ESI一个8位数或一个32位数 EDI(用于串指令) 串指令寻址 无默认 一般寻址 【例2-2】寻址示例。 Mov AX, ES: [BX] ES作段寄存器,BX做间址寄存器寻址的单元内容送入AX寄存器中 MOV BX,ES:[SI]:ES作段寄存器,SI做间址寄存器寻址的单元内容送入BX寄存器中 MOV EAX,DS:[BP]:Ds作段寄存器,BP做间址寄存器寻址的单元内容送入EAX寄存器中
图 2.9 实模式存储器寻址 2. 段寄存器 (1)代码段 CS:存放当前正在运行的程序;、 (2)数据段 DS、数据段存放当前运行程序所用的数据,如果程序中使用了串处理指令,则其 源操作数也存放在数据段中 (3)堆栈段 SS 堆栈段定义了堆栈的所在区域 (4)附加段 ES 附加段是附加的数据段,它是一个辅助的数据区,也是串处理指令的目的操作 数存放区 在 80386 及其后继的 80X86 中新增段寄存器 (1)FS (2)GS, 在 80X86 中,段寄存器和与其对应存放偏移地址的寄存器之间有一种默认组合关系,如表 2-3 和表 2-4 所示: 有时候程序需要改变段寄存器和偏移地址的缺省组合,具体改变方法在指令中说明。 在这种默认组合下,程序中不必专门指定其组合关系,但程序如用到非默认的组合关系, 则必须用段跨越前缀加以说明。这一点将在第 3 章中说明。 表 2-3 8086/8088,80286 缺省 16 位段地址和寄存器偏移地址寻址默认组合 段 偏移 主要用途 CS SS DS ES IP SP 或 BP BX、DI,SI 或一个 1 6 位数 DI(用于串指令) 指令寻址 堆栈寻址 数据寻址 串寻址 表 2-4 80386 及其后继机型缺省 32 位段地址和寄存器偏移地址寻址默认组合 段 偏移 主要用途 CS SS DS ES FS GS EIP ESP 或 EBP EAX、EBX、ECX、EDX、EDI ESI 一个 8 位数或一个 32 位数 EDI(用于串指令) 无默认 无默认 指令寻址 堆栈寻址 数据寻址 串指令寻址 一般寻址 一般寻址 【例 2-2】寻址示例。 MOV AX,ES:[BX] ;ES 作段寄存器,BX 做间址寄存器寻址的单元内容送入 AX 寄存器中 MOV BX,ES:[SI] ;ES 作段寄存器,SI 做间址寄存器寻址的单元内容送入 BX 寄存器中 MOV EAX,DS:[BP] ;DS 作段寄存器,BP 做间址寄存器寻址的单元内容送入 EAX 寄存器中
2.4.3保护模式存储器寻址 1.逻辑地址 (1)选择器和 (2)偏移地址 描述符 (1)基地址BASE)部分用来指定段的起始地址 (2)界限① LIMIT)部分存放着该段的段长度 (3)访问权( ACCESS RIGHTS)部分用来说明该段在系统中的功能,并给出访问该段的一些 控制信息 (4)附加字段部分在386及其后继机型中存在,它用来表示该段的一些属性。 系统按选择器的内容,根据指定的途径可以找到所选段对应的描述符,从而可以根据其给 出的基地址和界限值,确定所要找的存储单元所在的段,再加上逻辑地址中指定的偏移地址, 就可以找到相应的存储单元 存储器 选择器 偏移地址 段基地址 所选存储单元 所选段 最大64GB 图2.12保护模式存储器寻址示意图 8.参考资料:《IBM-PC汇编语言程序设计》沈美明 9.作业:P40习题2 10.课后总结 本部分位汇编语言的基础,必须理解和熟悉,这样才可以编岀髙质量的汇编程序
2.4.3 保护模式存储器寻址 1. 逻辑地址 (1)选择器和 (2)偏移地址 2. 描述符 (1)基地址(BASE)部分用来指定段的起始地址; (2)界限(LIMIT)部分存放着该段的段长度; (3)访问权(ACCESS RIGHTS)部分用来说明该段在系统中的功能,并给出访问该段的一些 控制信息; (4)附加字段部分在 386 及其后继机型中存在,它用来表示该段的一些属性。 系统按选择器的内容,根据指定的途径可以找到所选段对应的描述符,从而可以根据其给 出的基地址和界限值,确定所要找的存储单元所在的段,再加上逻辑地址中指定的偏移地址, 就可以找到相应的存储单元。 图 2.12 保护模式存储器寻址示意图 8.参考资料:《IBM-PC 汇编语言程序设计》沈美明 9.作业: P40 习题 2 10.课后总结: 本部分位汇编语言的基础,必须理解和熟悉,这样才可以编出高质量的汇编程序 选择器 偏移地址 地址转换 所选存储单元 存储器 段基地址 所选段 最大 64GB + 15 0 31 0 段基地址