1 微机原理及应用 主讲:谢维成 http://xweicheng.ys168.com scxweicheng@yahoo.com.cn 2 第 第 2章 章 IA-32 结构微处理器 结构微处理器 1、IA-32结构微处理器的概要历史 2、IA-32结构微处理器的功能结构 3、IA-32结构微处理器的执行环境 3 2.1 IA-32结构微处理器的概要历史 IBM PC机的发展简史 名称 推出年代 采用 CPU 特点 IBM PC 1981 8088 准 16 位微机 内存寻址 1MB DOS 操作系 统 IBM PC/XT 1983 8088 比 IBM PC 多一 个 10MB 硬盘 IBM PC/AT 1984 80286 内存寻址增 至 16MB 具有虚拟存 储器 功能 Windows 操作 系统 386 机 486 机 Pentium Pentium II Pentium III 1986 1990 1993 1997 1999 80386 80486 Pentium Pentium II PentiumIII 内存容量更 大 32MB、 64MB 支持虚拟 8086 模式 可执行多任 务 支持多媒体 、网 络技术 4 2.2 IA-32 微处理器的功能结构 微处理器的功能结构 2.2.1 Intel 8086 CPU的功能结构 2.2.2 Intel 80386、 486CPU的结构 5 2.2.1 Intel 8086 CPU的功能结构 (3版P36;4版P43) 8086(8088)CPU从功能上分成两大部分: 1、总线接口单元BIU(Bus Interface Unit) BIU负责与存储器接口,BIU负责从内存的 指定部分取出指令,送至指令流队列中排队 (8086指令队列6字节,8088的指令队列4字 节);在执行指令时所需要的操作数 2、执行单元EU(Execution Unit) EU负责指令的执行 6 7 Internal Microprocessor Architecture SI DI BP SP DH (DX) DL CH (CX) CL BH (BX) BL AH (AX) AL EAX Accumulator EBX Base index DR ECX Count EDX Data ESP Stack pointer PR EBP Base pointer Destination index EDI IR ESI Source index 8 Internal Microprocessor Architecture FLAGS IP EIP EFLAGS Instruction pointer Flags标志寄存器 GS FS SS ES DS CS Code代码段 Data数据段 Special purpose registers Extra 附加段 Stack堆栈段 Segment registers 9 指令指针 控制 ROM 控制部件 地址生成 (U流水线 ) 地址生成 (V流水线 ) ALU (U流水线 ) ALU (V流水线 ) 整数寄存器组 桶形移位器 8K字节数据 高速缓存 TLB 浮点部件 控制 寄存器组 加法 除法 乘法 总 线 部 件 页 面 部 件 预取缓冲器 指令译码器 8K字节代码 高速缓存 TLB分支目标 缓冲器 分支检验 与目标地址 预取 地址 控制 64位 数据总线 32位 地址总线 32位地址总线 64位数据总线 256 32 32 32 32 32 32 Pentium内部结构 10 2.3 IA-32 CPU的执行环境 的执行环境 ? 2.3.1 操作模式 ? (1)保护模式 ? (2)实地址模式 ? (3)系统管理模式(SSM) ? 2.3.2 基本执行环境概要 ? (1)地址空间 ? (2)寄存器组 11 2.3.3 8086/8088的存储器组织 (P50-51) 1.存储单元的地址和内容 存储器以 字节 为单位存储信息,每个 存储(字节)单元有一个地址,地址用 16进制格式表示,如:0000H , 0001H … 000AH … 000FH … , 16位二进制数 可表示的地址范围为0~65535。 用 16进 制表示为:0000H ~ FFFFH。计算机中讨 论存储器容量以2 =1024为基本单位, 称为 1K字节。 10 12 ? 内存: 内 存 是 存 储 程序和数据的部件, 由地址译码器、内存单 元等构成 。 ?内存单元: 存储信息的基本单元。 每 片内存芯片有若干个内存 单元。 每个单元可存储 1位或多位 (2 N 位 )等二进制数 。 n根 C P U 地址线 AB 数据线 DB 控制线 CB 地 址 译 码 器 11001100 00110011 10101010 11110000 10001000 地址 00...0000 地址 00...0001 地址 00...0010 地址 00...0011 地址 11…1111 内存结构示意图 13 z内存单元的地址: 为区分各内存单元,每个内存单元对应有一个地址。 地址线上的数据经译码后 只有唯一的内存单元被选中 。 z内存单元的内容: 每个内存单元所存储的二进制数据。 n根 C P U 地址线 AB 数据线 DB 控制线 CB 地 址 译 码 器 11001100 00110011 10101010 11110000 10001000 地址 00...0000 地址 00...0001 地址 00...0010 地址 00...0011 地址 11…1111 14 z对内存的读 /写操作 ? CPU发出地址信号,选中相应的内存单元。 ?若是 读操作 , CPU发出内存读控制信号, 被选中的内存单元将其内容经数据总线送入 CPU。 若是 写操作 , CPU发出内存写控制信号, CPU将欲写的内容经数据总线,写入被选中的内存单元。 n根 C P U 地址线 AB 控制线 CB 地 址 译 码 器 11001100 00110011 10101010 11110000 10001000 地址 00...0000 地址 00...0001 地址 00...0010 地址 00...0011 地址 11…1111 数据线 DB 15 78H 1AH 译 码 器 6FH 3BH 存储单元的地址和内容 A 15 ~A 0 … 0000H 0001H 0002H 0003H 1A78H 1A79H 1A7AH 1A7BH 图2-3 16 设2号单元中存放的内容为 78H, 表 示为: (0002H)= 78H 如果数据以 字 为单位,则占用连续的两个 字节单元,且用低地址表示: (0002H)= 1A78H 若 0002单元的内容为 一个地址 ,而 (1A78H)=3B6FH,则可记为((0002H))= 3B6FH 17 2.存储器地址的分段: 存储器地址的分段: 8086/8088有20条地址线,其寻址范围 为:2 20 =1048576=1024KB=1M(字节),地 址从00000~FFFFFH 但8086/8088中有关地址的寄存器都是 16位的,寻址范围最多为64K B。那么16位 字长的机器里用什么办法提供2 0位地址? 采用存储器地址分段的办法解决。 我们编程时可把存储器划分成段,每段 最大可寻址64K B,这样段内地址可用16位 表示。 18 例我们可这样分段: 00000~0FFFFH 第1段 10000~1FFFFH 第2段 20000~2FFFFH 第3段 ┆ E0000~EFFFFH 第15段 F0000~FFFFFH 第16段 每段64KB,共16段 19 其实不一定这样划分,每段大小可任 意,段的起始地址亦可任意。 在1M B的存储器中,每一个存储单元 都有一个唯一的20位地址,称为该存储 单元的 物理地址 (又叫实际地址). 另一种叫 逻辑地址 ,由两部分组成: 段基址 和 偏移量 。程序中不能使用20位 的物理地址,而使用16位逻辑地址。20 位物理地址由16位段地址和16位偏移地 址组成。 20 计算方法如下: 10H×段地址+偏移地址=物理地址 一个物理地址可对应多个逻辑地址 例: 10145H可对应 10100+45 也可对应 10140+05 对应前面提到的四个段寄存器CS、DS、SS 和ES,有各自的用途: 取指令码时用 CS+IP 堆栈操作时用 SS+SP 地址:1010H:0045H = 10145H 段地址 偏移地址 物理地址 计算方法:段地址左移4位+偏移地址=物理地址 10100H +0045H = 10145H 0001 0000 0001 0000 0000 0000 0000 0100 0101 0001 0000 0001 0100 0101 21 涉及一个操作数时用 DS+16位偏移量 ES+16位偏移量 各段在存储器中的分配一般由操作 系统负责,也允许编程人 员指定所占的 内存区。 CPU内物理地址计算过程及在存储器中 的寻址过程 (4版 P50-51 ; 3版 P37) 22 * 8086/8088中的 中的 I/O端口 端口 MCS与外设的连接都是通过I/O芯片, 每个芯片有一个或一个以上的端口 ,每个 端口分配一个地址(与存储器地址不是一 码事),8086/8088允许有256个端口或最 多65536个端口(8位),两个相邻的8位 端口可组成一个16位端口。 23 2.3.4 8086/8088中的寄存器组 中的寄存器组 DS ES SS CS IP 数据暂存 器 执行部件 控制电路 指令译码器 总线 接口 控制 电路 A X BX C X D X AH BH CH DH SI DI BP SP AL BL CL DL 寄存器 组 BIU A B D B C B 地 址 加 法 器 指 令 队 列 PSW 标志寄存 器EU 运 算 器 器 寄存器组 AB DB CB 地 址 加 法 器 指 令 队 列 PSW 标志寄存 器 运 算 器 Intel 886/8088 编程结构 8086/8088的寄存器组 共有 14个 16位寄存器 , AX,BX,CX,DX, SI,DI,SP,BP,DS,ES,SS,CS,PSW,IP. 其中: AX、 BX、 CX、 DX 又可分成两个 8 位寄存器 (AH,AL;BH,BL;CH,CL;DH,DL.) 其它 10个只能作 为 16位寄存器。 (3版P36;4版P43) 24 Destination Index 目的变 址寄存 器 SI DI BP SP AX 累加器 Accumulator BX 基数寄存 器 Base CX 计数寄存 器 Count DX 数据寄存 器 Data AH BH CH DH AL BL CL DL IP PSW DS ES SS CS 数据段寄存 器 Data Segment 附加段寄存 器 Extra Segment 堆栈段寄存 器 Stack Segment 代码段寄存 器 Code Segment Processor Status Word 状态标 志寄存 器 Instruction Pointer 指令指针寄 存 器 变 址 寄存器 段寄存器 控制寄存 器 通 用 寄 存 器 Source Index 源变址 寄 存器 Base Point 基址指 针 寄存 器 Stack Point 堆栈指 针寄存 器 指 针 寄存器 数 据 寄存器 (3版P35; 4版P53) 25 ** 8086/8088的标志寄存器 的标志寄存器 **标志寄存器为一个16位寄存器,如下示: 14 D 12 D 10 D 8 D 6 D 4 D 2 D 0 D OF DF IF TF SF ZF AF PF CF 这9个标志位分为两类: 状态标志: CF、PF、AF、ZF、SF、OF 控制标志:TF、IF、DF 26 六个 状态标志 含义如下 : 1.进位标志CF 最高位产生进位或借位时,则 CF=1, 否 则CF=0 2.奇偶标志PF 运算结果低8位中1的个数为偶,则P F=1, 否则PF=0 3.辅助进位标志AF 当D 3 向D 4 有进位或有借位时,则A F=1, 否则AF=0 27 4.零标志ZF 运算的结果为零,则ZF=1,否则ZF=0 5.符号标志SF 运算的结果最高位为1,则SF=1,否则SF=0 6.溢出标志OF 算术运算中, 补码运算结果超出了带符 号数的表示范围 ,即: 对 字节 运算,结果超出 -128~+127 对 字 运算,结果超出 -32768~+32767 则OF=1,否则OF=0 28 微机中一般用如下办法判断: 加法 运算根据 进位 判断,示意如下:(其 中 ≤ 表示有进位; × 表示无进位。) 67 DD ←← 67 DD ←← 1415 DD ←← 1415 DD ←← 或 ≤ ≤ ≤ ≤ × × × × 对字节 则 OF=1 对字 否则OF=0 对 减法 ,根据 借位 判断。 29 下面举两个例子: 例1: MOV AL,4FH 0100 1111 ADD AL,31H + 0011 0001 1000 0000 对标志影响则为: CF=0,PF=0,AF=1,ZF=0,SF=1,OF=1 CF: D 7 未产生进位; PF: 1的个数为奇; AF: D 3 有进位; ZF: 结果非零; SF: 最高位为1; OF: 结果为128 30 例2 :MOV AL,4BH OR AL,31H 其运算为: 0100 1011 ∨ 0011 0001 0111 1011 参阅P438中 (4)逻辑运算 OR OF CF AF SF ZF PF 0 0 × ↑↑↑ 置0 不定 有影响 故SF=0,ZF=0,PF=1,而OF=CF=0 31 控制标志有三个,它们是: 7.跟踪标志TF 若 TF=1, 则 CPU按 单步方式执行指令,以便于调试. 8.中断允许标志IF 如 果 IF=1, 允 许 CPU接收外部的可屏蔽中断请求。 若IF=0,则不允许接收. 9.方向标志DF 如果D F=1, 使串操作指令按自动减 量修 改地 址 。 若DF=0,则按自动增量修改地址. 在DEBUG调试程序中提供了除TF以外,测试各 个标志位的手段.请见P29表1-5 32 ** PC系列微机指令执行过程 系列微机指令执行过程 **微机系统的主要性能指标 1.字长 指计算机一次可处理的二进制数的位 数。它取决于ALU和通用寄存器 的 位 数 。 字 长越长,所能表示的数据精度就越高,其 硬件成本也高。 33 2.运算速度 一般用每秒所能执行的指令条数来代表。 不同类型机器的指令执行时间不同,故运算 速度的计算方法也不同。 (1)平均运算速度。方法是按照不同类型指令 出 现 的 频 度 , 乘 上 不 同 系 数 ,得到一个统计平均 值。它采用MIPS(即百万条指令/秒)作单位。 (2)给出C PU的主频(一般以M Hz为单位)和每条 指令的执行时间。 (3) 用执行时间最短的指令为标 准来 估算 速度 。 34 3.存储器容量 是计算机信息量大小的一个指标  1024B →1KB → 2 10 (千字节)  1024KB→1MB → 2 20 (兆字节)  1024MB→1GB → 2 30 (吉字节)  1024GB→1TB → 2 40 (太字节) 35 ** IBM PC系列微机系统简介 系列微机系统简介 IBM PC系列微机采用Intel 80X86微 理器(包括80286、80386、80486等)和 MS-DOS或PC-DOS操作系统。 IBM PC和PC/XT分别采用8086和8088 CPU及IMB内存,只支持单任务操作系统。 PC/AT、 PC/386、PC/486分别采用80286、 80386、80486作CPU,其内存在8MB以上, 支持多用户多任务操作系统。 PC/586、 PC/686则是采用Pentium、 Pentium Pro作CPU,其运算速度,性能都 有很大提高。 36 IBM PC系列微机系统由机箱、键盘、鼠 标、C RT显示器和打印机等几个部分组成。 主机装在机箱内,是系统的 核心部分。它 括: ?主机板(系统板) ?视频卡(显示器适配器) ?软驱及其适配器 ?硬驱及其适配器 ?光驱及其适配器 ?多功能卡,包括并行口及串行口等 ?电源 37 ** IBM PC 32位机的基本配置 位机的基本配置 内存: 16~128MB 软驱: 1.44MB(3.5英寸)一个 硬驱: 160MB~20GB一个 串并口: 串行口2个,并行口1 ~2个 显示器: 分辨率1024×768的彩显(14寸、 15寸、17寸). 另外,若使之成为 多媒体计算机 ,可配 置相应的多媒体功能卡,包括:声卡、视 频卡、压缩/解压缩卡、TV转换卡等。