微型计算机原理

Size: px
Start display at page:

Download "微型计算机原理"

Transcription

1 第一章微型计算机概述

2 一. 冯 诺伊曼计算机基本结构 ( 冯氏结构 ) 1. 存储程序 概念的产生及其重要意义 ENIAC(Electronic Numerrical Integrator And Computer) 不具备 存储程序 的功能 EDVAC(Electronic Discrete Variable Automatic Computer) 采用 存储程序 的概念, 并付诸实现, 开创了整个程序设计时代的到来 2. 冯氏计算机结构 : P2

3 二. 计算机的基本组成框图及功能部件简介 1. 框图 ( 计算机的一般结构模型 ) P2 图 主要功能部件 存储器 RD WR 控制逻辑 H FFF FFH 地址寄存器地址译码器 数据寄存器 存储体 MAR MDR 运算器 控制器 输入设备 输出设备

4 三. 计算机的工作流程 1. 模型机结构 2. 指令的执行过程 (P7)

5 模型机结构简图 存储器 微操作控制信号 CPU 地址寄存器 MAR 控制逻辑阵列 ALU 指令译码器 ID 累加寄存器 A 标志寄存器 FR 程序计数器 PC 存储体+1 指令寄存器 IR 数据寄存器 MDR 系统总线 (BUS) * 注 :I/O 接口电路在图中省略未画

6 四. 微处理器 微型计算机和微型计算机系统 (Microprocessor,Microcomputer,Microcomputer System) 微型计算机 微处理器 ALU 控制单元寄存器组 微机系统 硬件 软件 外设系统软件应用软件 主存储器 I/O 接口电路系统总线 ROM RAM 串行 I/O 接口并行 I/O 接口 AB DB CB

7 四. 微处理器 微型计算机和微型计算机系统 ( 续 ) (Microprocessor,Microcomputer,Microcomputer System) 1. 微处理器也称微处理机, 由一片或几片大规模集成电路组成的具有控制器和运算器功能的中央处理器, 统称微处理器 例如 : Intel 8080,8085; Intel 8086,80286,80386,80486; Pentitum,Pentium II(P6),Pentium III,Pentium IV. Zilog Z80; Z8000; Z Motorola MC6800(8 位 ),MC68000(16 位 ),MC68020(32 位 ) Power PC 620(64 位 )

8 四. 微处理器 微型计算机和微型计算机系统 ( 续 ) (Microprocessor,Microcomputer,Microcomputer System) 1.Moore 定律 : 晶体管的大小将以指数速率变小, 而集成到芯片上的晶体管数目将 2-3 年 个月 翻一番 --Gordon Moore,1965 * Gordon Moore--Inter 公司的创始人, 著名半导体科学家

9 四. 微处理器 微型计算机和微型计算机系统 ( 续 ) (Microprocessor,Microcomputer,Microcomputer System) 1978 年 万 (3 万 ) 1982 年 万 1985 年 万 1990 年 万 1993 年 Pentium 320 万 1996 年 Pentium Pro 550 万 1997 年 2 月 Pentium II 750 万,300MHz 1999 年 Pentium III 2000 年 (4 季度 ) Pentium IV 4200 万,1.4GHz(0.18um 工艺 ) Bill Gates 在 未来之路 中曾提到, 假若 Moore 定律能再持续 20 年.. 其他新型技术, 如激光计算机 从计算机结构及信息理论方面, 非冯结构 ( 神经网络 -- 仿人脑的 思维和记忆模型 ), 更便于处理某些智能型问题

10 四. 微处理器 微型计算机和微型计算机系统 ( 续 ) (Microprocessor,Microcomputer,Microcomputer System) 微处理器具有运算和控制功能, 是整个微型计算机的核心, 也称中央处理器 CPU(Central Processing Unit) 注意, 微处理器并不是一台完整的计算机, 要构成一台完整的计算机 ( 主机 ), 还需要有 : 存储器 I/O 接口及系统总线 微处理器的主要功能部件 (1) 算术逻辑部件 (ALU): 用来进行算术和逻辑运算 例如,SUB AL,5; AND AL,FEH;ADD AL,10;OR AL,01H; (2) 累加器 : 运算前存放操作数, 运算后存放运算结果 输入 / 输出指令也通过累加器来完成 例如 :IN AL,50H; OUT 51H,AL; (3) 程序计数器 (Program Counter--PC), 也称指令计数器 (Instruction Counter), 由它指出下一条要执行指令所在存储单元的地址, 具有加 1 计数的功能 (4) 指令寄存器 : 用来存放从存储器中取出的指令码 (5) 指令译码器 : 对指令码进行译码, 确定指令的操作 ( 如加 减 移位等 ) (6) 时序和控制部件

11 五. 微型计算机 1. 特点 : 2. 分类 : 可以从不同角度进行分类按字长分, 可分为 4 位 ~64 位 ; 按组装形式, 可分为 单片 单板 多板式 微型计算机 地址总线 CPU 存储器 I/O 接口 外围设备 数据总线 控制总线 3. 微型计算机 ( 主机 ) 的基本结构 CPU+ 存储器 +I/O 接口 + 系统总线

12 五. 微型计算机 ( 续 ) 微型计算机的各个部件之间通过三组不同的总线相连 它们是 : 数据总线 (Data Bus --DB)-- 双向 地址总线 (Address Bus---AB)-- 单向 控制总线 (Control Bus CB)-- 双向 总线是计算机的部件与部件之间传输信息的公共通路, 它能分时地发送和接收各部件的信息 总线不仅仅是一组传输线, 它还包括与数据传输有关的控制逻辑 所以, 在一个计算机系统中, 总线应被看成一个独立的部件

13 五. 微型计算机 ( 续 ) 4. 微型计算机的主要技术指标 (1) 字长 : 参与运算的数的位数. 它决定着计算机的内部寄存器 加法器及数据总线 ( 数据通路 ) 的位数 有 4 位,8 位,16 位, 32 位,64 位等 (2) 主存容量 : 主存储器所能存储信息的总量 通常以字节数 (Byte) 来表示 例 : 内存 128MB 有时也用到 位容量 p Xq. (3) 运算速度 : 有不同的计量方法和测试标准 MIPS(Million Instruction Per Second) (4) 平均无故障运行时间 ( 可靠性 ) MTBF(Mean Time Between Failures), 平均无故障间隔时间 (5) 性能 / 价格比

14 五. 微型计算机 ( 续 ) 5. 性能测试标准 : *SPEC(Standard Performance Evaluation Corporation) 美国标准性能评价协会 SPEC 发表的第一套标准化测试基准程序 (Benchmarks) 是 SPEC89 *icomp(intel Comparative Microprocessor Performance) 微处理器性能比较指数体系 1992,iCOMP Index 1.0 版 ; 1996,iCOMP 2.0 版

15 五. 微型计算机 ( 续 )-- Intel 微处理器性能评估 微处理器种类日趋繁多, 应用也日益广泛, 单靠 CPU 型号和主频已远不能充分说明处理器的性能 为此,Intel 制定并发展了 icomp 指数体系, 通过它希望能给处理器性能一个较为科学 公正的评价 icomp Index 1.0 和 2.0 为向一般用户提供一个理解和比较 Intel 微处理器性能相对差异的易用工具,Intel 公司与 1992 年推出了 icomp 微处理器性能比较指数体系 这后来被称为 icomp Index1.0( 版 ) icomp Index1.0 考虑了那个时期桌面计算机系统的应用, 综合了九项评估项目 : 适用于 DOS 应用的 16 位整数运算, 适用于 CAD/CAM 的 16 位浮点运算, 适用于 UNIX 应用的 32 位整数运算和 32 位浮点运算, 适用于多媒体应用的 16 位和 32 位视频运算, 以及 16 位和 32 位图形处理 每项制定了测试基准 BM(benchmark), 并分别予以不同的权值 P, 如表 1-6 所示 注意, 他的视频运算和图形处理的权值为 0,Intel 当时的打算是随着多媒体和 3D 动画应用的普及将来再逐渐改变权值分配

16 五. 微型计算机 ( 续 )-- Intel 微处理器性能评估 表 1-6 icomp 1.0 的评估条件 评估项目 测试基准 16 位整数运算 ZD Labs CPUmix 16 位浮点运算 Whetstone 16 位浮点运算 ZD Labs CPUmix 32 位整数运算 SPEC int92 32 位浮点运算 SPEC fp 位视频运算 ZD Labs/SPEC int92 32 位视频运算 ZD Labs/SPEC int92 16 位图形运算 ZD Labs/SPEC int92 32 位图形运算 ZD Labs/SPEC int92 权值 (P) 67% 2% 1% 25% 5% 0% 0% 0% 0%

17 五. 微型计算机 ( 续 )-- Intel 微处理器性能评估 icomp Index1.0 以不含 FPU 的主频 25MHz 的 80486(486SX-25) 作为性能测试的底值 (Base), 即它的 icomp 值为 100 以如下公式计算某类型处理器的 icomp 值 : BM 1 BM 2 BM 9 icomp = 100 X [( ) P1 + ) P ) P9 ] Base _ BM Base _ BM Base _ BM 其中 Base-BM i 代表 486SX_25 在第 i 项下的测试值, BM i 代表被测处理器在第 i 项下的实测值,P i 为第 i 项的权值

18 五. 微型计算机 ( 续 )-- Intel 微处理器性能评估 早期某些主频 Pentium 处理器的测试, 按前式加权平均计算出的 icomp1.0 值列于下表 CPU 类型 主频 (MHz) 外总线时钟频率 (MHz) 倍频因子 icomp1.0 指数 Pentium Pentium Pentium Pentium Pentium

19 Each short block is 8-bits long General Registers EAX EBX ECX EDX Segment Registers AH AL CS BH CH DH AX BX CX DX BL CL DL DS ES SS EBP ESI EDI ESP BP SI DI SP Flags Register EFlags Instruction Pointer Register EIP 中国系统分析员 Some ( of the registers in the Pentium

20 Understanding Personal Computers Code Cache 8KB pentium 64-bit data bus 32-bit address bus control bus Bus Interface Instruction Prefetch Decode Unit Execution Unit ALU 256bits ALU Data Cache 8KB Microcode ROM Floating Point Unit Registers (16&32bits wide) Internal view of a Pentium(simplified)

21 ** 第二章微型计算机体系结构

22 第二章 : 微型计算机体系结构 一 CPU 的内部逻辑结构 ( 一 )CPU 的功能 : 指令控制 ; 操作控制 ; 时序控制 ; 数据加工 ( 二 )Intel 8086 的内部逻辑结构 8086 概况 : 1979 年推出, 第一代超大规模集成电路 (VLSI) 微处理器, 采用 HMOS 工艺制造, 内含 2.9 万晶体管 数据总线宽度 16 位, 地址总线宽度 20 位 ; 可直接寻址空间 2 20 =1M 字节单元 ;16 位数据总线与地址总线复用 采用单一的 +5V 电源, 一相时钟, 时钟频率为 5MHz(8086),10MHz(8086-1),8MHz(8086-2) 133 条指令, 指令长度 1~6 字节, 指令最短执行时间为 0.4us( 平均 0.5us)

23 ** Intel 8088 准 16 位处理器, 内部寄存器及内部操作均为 16 位, 外部数据总线 8 位 8088 与 8086 指令系统完全相同, 芯片内部逻辑结构 芯片引脚有个别差异

24 ** 结构框图 ( 编程结构 ): 见图 2.1 由两部分组成 : 总线接口部件 BIU(Bus Interface Unit); 执行部件 EU(Execution Unit). (1). 总线接口部件 BIU 组成 :4 个 16 位的段寄存器 (CS DS ES SS); 1 个 16 位的指令指针寄存器 IP;1 个地址加法器 ; 6 个字节的指令队列 ; 输入 / 输出控制电路 ( 总线控制逻辑 ); 内部暂存器 BIU 的功能 : 负责与内存或 I/O 端口传送指令或数据 1BIU 从内存取指令送到指令队列 2 当 EU 执行指令时,BIU 要配合 EU 从指定的内存单元或 I/O 端口中读取数据, 或者把 EU 的操作结果送到指定的内存单元或 I/O 端口去 例如 :1IN AL,50H;2ADD AL,[2035H].

25 第二章 : 微型计算机体系结构 ( 续 ) 说明 (1) 传统的 CPU 执行指令的过程是 : 取指令 -> 执行指令 -> 再取指令 ->, 串行执行 8086 是把 取指令 和 执行指令 分别由 BIU 和 EU 两个部件来完成 当 EU 正在执行指令时,BIU 可以从内存中取出指令字节, 放在指令队列中 这样, 使得 取指令 和 执行指令 的操作在时间上是并行的 BIU 和 EU 协调配合, 使 EU 可以连续不停一条接一条地执行事先已进入指令队列中地指令 显然, 这种工作方式可以加快程序地执行, 提高了 CPU 地效率 体现了 流水线计算机 (PipeLine Computer) 的初步特点 ( 详见后述 ) (2) 地址加法器用来产生 20 位的物理地址 一个存储单元具有两种地址属性 : 物理地址和逻辑地址 物理地址 :CPU 访问存储器时, 在地址总线上实际送出的地址 它的范围 ( 如 8086 系统 ) 是 00000H~FFFFFH, 即有 2 20 =1M 字节的地址空间

26 第二章 : 微型计算机体系结构 ( 续 ) 但 8086 的内部寄存器是 16 位 ( 地址的宽度大于字长 ) 显然, 不能用 16 位的寄存器来实现对 2 20 =1M 字节单元的寻址 为此, 引入了存储器 分段 的概念, 即把 1M 字节内存空间分成若干段 每段最大可达 64K 字节 - - 可由 16 位寄存器进行寻址 段的起始地址成为 段基址, 要访问的单元距段基址的距离 ( 字节数 ) 为 偏移量 (Offset) 段的起始地址 偏移量 要访问的单元 段

27 第二章 : 微型计算机体系结构 ( 续 ) 程序设计时, 使用的是逻辑地址 逻辑地址由 段基址 和 偏移量 构成 ( 均为 16 位 ) 段基址 由段寄存器 CS DS SS 和 ES 提供 ; 偏移量 由 BX BP IP SP SI DI 或根据寻址方式计算出的有效地址 EA(Effective Address) 提供 * 注意 : 1 每个存储单元有唯一的物理地址, 但它却可由不同的 段基址 和 偏移量 组成 例如 : 1200H:0345H 12345H 1100H:1345H 12345H 2 除非专门指定, 一般情况下, 段在存储器中的分配是由操作系统负责的 * 寻址方式举例 : MOV AX,[BX]; 源操作数的寻址方式 -- 寄存器间接寻址 MOV AX,[BX+SI]; 源操作数的寻址方式 -- 基址变址接寻址

28 第二章 : 微型计算机体系结构 ( 续 ) 由逻辑地址获得物理地址的计算公式 : 物理地址 = 段基值 X16+ 偏移量 逻辑地址 15 0 段基值 偏移量 Σ 物理地址 19 0 物理地址

29 第二章 : 微型计算机体系结构 ( 续 ) 例 1. 设 (CS)=4232H,(IP)=66H 段地址 42320H 则物理地址计算如下 H +) 6 6 H 64K 66H 42386H... 64K (2 16 ) H... 段终址 5231FH

30 第二章 : 微型计算机体系结构 ( 续 ) 例 2. 假设 (DS)=2234H,EA=22H 段基值 偏移量 逻辑地址 +) 物理地址

31 第二章 : 微型计算机体系结构 ( 续 ) (2) 执行单元 EU(Execution Unit) 组成 :ALU( 算术逻辑单元 ); 通用寄存器组 AX,BX,CX,DX; BP( 基址指针寄存器 ) SP( 堆栈指针寄存器 ) SI( 源变址寄存器 ) DI( 目的变址寄存器 ) 标志寄存器 FR 执行部件控制电路 功能 : 负责执行指令

32 控制标志状态标志 第二章 : 微型计算机体系结构 ( 续 ) 标志寄存器的格式及各位的含义 OF DF IF TF SF ZF AF PF CF 方向标志中断标志跟踪标志 Trace Flag 进位标志 奇偶标志 半进位标志 零标志 符号标志溢出标志

33 第二章 : 微型计算机体系结构 ( 续 ) 1. 状态标志 : 表示前面的操作执行后, 算术逻辑部件处于怎样一种状态 例如, 是否产生了进位, 是否发生了溢出等等 程序中, 可以通过对某个状态标志的测试, 决定后面的走向及操作 例如 : STATE: IN AL, 0DAH; TEST AL, 02H; JZ STATE 零标志 ZF(Zero Flag): 若运算结果为 0, 则 ZF=1; 否则 ZF=0 例 1:MOV AL, 4 这两条指令执行后,ZF=1 SUB AL, 4 例 2:XOR AX, AX 执行后,ZF 也一定为 1

34 第二章 : 微型计算机体系结构 ( 续 ) 进位标志 CF(Carry Flag): 它反映 : 加法时, 最高位 ( 字节操作时的 D7 位, 字操作时的 D15 位 ) 是否有进位产生 减法时, 最高位 ( 字节操作时的 D7 位, 字操作时的 D15 位 ) 是否有借位产生 例如 : MOV AL, 3; SUB AL, 4; 执行后,CF=1 奇偶标志 PF(Parity Flag): 若运算结果低 8 位中 1 的个数为偶数, 则 PF=1; 否则 PF=0 例 :MOV AL, 2 ADD AL, 1 执行后,PF 位为 1

35 第二章 : 微型计算机体系结构 ( 续 ) 辅助进位标志 AF(Auxiliary carrry Flag): 也称 半进位标志, 它反映 : 加法时, 第 3 位向第 4 位有进位 ; 减法时, 第 3 位向第 4 位有借位 溢出标志 OF(Overflow Flag): 若运算过程中发生了 溢出, 则 OF=1 定义 : 运算结果超出计算装置所能表示的范围, 称为溢出 判断方法之一 逻辑 : 溢出 = 最高位进位 V 次高位进位 2. 控制标志 (3 位 ): 每一位控制标志都对一种特定的功能起控制作用 可以通过专门的指令对其进行 置位 (Set) 或 复位 (Reset) 中断标志 IF(Interrupt Enable Flag): 如果 IF 置 1, 则 CPU 可以接受可屏蔽中断请求 ; 反之, 则 CPU 不能接受可屏蔽中断请求 指令系统中有两条专门的指令可以置 1 或置 0 IF 标志位 : STI 使 IF 置 1, 即开放中断 CLI 使 IF 清 0, 即关闭中断

36 第二章 : 微型计算机体系结构 ( 续 ) 方向标志 DF(Direction Flag): 用于串操作指令中的地址增量修改 (DF =0) 还是减量修改 (DF=1) STD, CLD 跟踪标志 TF(Trap Flag): 若 TF=1, 则 CPU 按跟踪方式 ( 单步方式 ) 执行程序 3.BIU 与 EU 的动作管理 (P19) * 关于流水线计算机 (Pipeline Computer) 这类计算机的结构采用生产上的流水线概念, 把每条指令分为若干个顺序的操作, 每个操作分别由不同的处理部件实现 这样构成的计算机, 可以同时处理若干条指令, 对于每个处理部件来讲, 每条指令的同类操作 ( 如 取指令 ) 像流水一样连续被加工处理, 这种指令重叠 处理部件连续工作的计算机, 称为流水线计算机 采用流水线方式可以提高计算机的处理速度和提高处理部件的使用效率

37 第二章 : 微型计算机体系结构 ( 续 ) 第一条指令 取指译码计算 EA 取数执行存结果 第二条指令 取指译码计算 EA 取数执行存结果 第三条指令 取指译码计算 EA 取数执行存结果 可见,3 条指令共需 8 个时间单位, 即可全部执行完 ; 如果完全串行执行, 则需 3X6=18 个时间单位 显然, 采用 流水线 技术可以显著提高计算机的处理速度

38 第二章 : 微型计算机体系结构 ( 续 ) * 指令流水 是一种实现多条指令重叠执行的重要技术 1990 年以后出现的处理器, 无论是 RISC 还是 CISC, 无一不采用 指令流水 技术 CPU 执行指令的过程, 可具体分为如下六个步骤 : 1. 取指 (fetch); 2. 译码 (decoding); 3. 计算有效地址 (EA:Effective Address); 4. 取操作数 ; 5. 执行 6. 存储运算结果 概括的说, 可分为 取指令 和 执行指令 两个步骤

39 第二章 : 微型计算机体系结构 ( 续 ) 早期的计算机将这两步采用先后轮流动作 ( 串行 ),CPU 效率较低 取指 1 取指 2 取指 3 执行 1 执行 2 执行 3 在流水线方式下,BIU 与 EU 同时动作 ( 并行 ) 完成指令周期,CPU 效率高 BIU 取指 1 取指 2 取指 3 取指 4 EU 执行 1 执行 2 执行 3

40 第二章 : 微型计算机体系结构 ( 续 ) (4) 寄存器结构 8086 系统 (80386 以上的 实模式 ) 下, 共 14 个寄存器 : AX,BX,CX,DX;SP,BP,SI,DI;CS,DS,SS,ES;IP,FR. Pentium 系统下 : Some of the registers in the Pentium

41 第二章 : 微型计算机体系结构 ( 续 ) 在 8086/8088 中, 所有的读 写存储器或 IO 端口的操作全部由总线接口部件来完成 因此, 在 8086/8088 中, 将通过所称的 机器周期 叫做 总线周期 所谓一个总线周期, 即 BIU 与存储器或 IO 端口进行一次读操作或写操作所需的时间 在 8086/8088 中, 一个基本的总线周期由 4 个时钟周期组成, 如果内存或 IO 接口速度较慢, 来不及响应, 则需在 T3 之后插入 1 个或几个 Tw 状态

42 第二章 : 微型计算机体系结构 ( 续 ) T 1 T 2 T 3 T w T 4 T I T I T 1 T 2 T 3 总线周期 空闲周期 总线周期 空闲周期 : 只有 BIU 与内存或 I/O 端口交换数据, 以及填充指令队列时,BIU 才执行总线周期 除此之外, 既不需要填充指令队列,EU 也没有向 BIU 发出总线周期请求时, 系统总线就处于空闲状态, 进入空闲周期, 空闲周期由一个或几个 Ti 状态组成

43 第二章 : 微型计算机体系结构 ( 续 ) 二 CPU(8086) 的引脚信号和工作模式 ( 一 ) 最小模式和最大模式 最小模式, 也称 单处理器系统, 即在系统中只有一个 8086 处理器, 全部的系统总线信号均由 8086 直接产生 总线控制逻辑减到最少, 故称最小模式 最大模式, 也称 多处理器系统, 即系统中包含两个或多个处理器, 其中一个为主处理器 (8086), 其他的处理器为 协处理器 (CO-Processor) 通常, 和 8086 配合使用的协处理器有两个 : 一个是数值运算协处理器 8087, 一个是输入 / 输出协处理器 8089

44 第二章 : 微型计算机体系结构 ( 续 ) ( 二 )CPU 的引脚信号和功能 Ready: 准备好信号, 输入 T 1 T 2 T 3 T w T 4 CLK READY

45 第二章 : 微型计算机体系结构 ( 续 ) TEST: 测试信号, 输入, 低电平有效 在多处理器环境中, 例如具有协处理器 8087 的系统中, 将 8087 的 BUSY 接至主处理器 8086 的 TEST, 每当 8086 执行 WAIT 指令时, 反复采样 TEST 信号, 直至 TEST 变为低电平, 8086 才脱离等待状态, 继续执行下一条指令 TEST 信号是为 WAIT 指令而设计的 8086 TEST +5V BUSY 8087 *8087 Math. CO-Processor

46 第二章 : 微型计算机体系结构 ( 续 ) BHE/S7: 高 8 位数据允许 / 状态 (BUS High Enable/Status) 复用引脚 8086 有 16 条数据线, 可用低 8 位传送一个字节, 也可用高 8 位传送一个字节, 还可用高 8 位和低 8 位一起传送一个字 (16 位 ) BHE 就是用来区分这几类传输的, 详见 P23 表 2-2 INTR: 可屏蔽 (Maskable) 中断请求信号, 输入, 高电平有效 INTA: 中断响应信号, 输出, 低电平有效 CPU 在每条指令的最后一个时钟周期采样 INTR 信号, 若发现 INTR 信号有效 ( 为高电平 ), 并且中断允许标志 IF=1 时,CPU 就会在结束当前指令后, 响应中断请求, 进入中断响应周期 其间, 将通过 INTA 引脚向发出请求信号的设备 ( 中断源 ) 发出中断响应信号

47 第二章 : 微型计算机体系结构 ( 续 ) NMI(Non-Maskable Interrupt request): 非屏蔽中断请求信号, 输入, 正跳变有效 不受 IF 的影响 WR: 写信号, 输出, 三态, 低电平有效 ; RD: 读信号, 输出, 三态, 低电平有效 当读信号 ( 或写信号 ) 有效时, 表示 CPU 正在进行读 ( 或写 ) 存储器或 IO 端口的操作 究竟是读 ( 或写 ) 存储器还是 IO 端口, 由 CPU 输出的另一个专门信号 M/IO 决定 M/IO(Memory / IO): 访问存储器或 IO 端口信号, 输出, 三态 为高电平时, 表示 CPU 当前正在访问存储器

48 第二章 : 微型计算机体系结构 ( 续 ) HOLD(Hold request): 总线请求, 输出, 高电平有效 HLDA(Hold Acknowledge): 总线请求响应, 输出, 高电平有效 T 1 T 2 T 3 T 4 CLK HOLD HODA AD 15 -AD 0, A 19 /S6-A 16 /S 3 WR,RD, 三态 CPU 放弃总线控制权

49 第二章 : 微型计算机体系结构 ( 续 ) CPU 在每个时钟周期的上升沿采样 HOLD, 如果允许让出总线, 就在当前总线周期完成时 (T4 状态 ), 从 HLDA 引脚发出一个回答信号, 对 HOLD 请求发出响应 同时,CPU 使地址 / 数据总线和有关控制信号线进入高阻状态 ( 第三态 ) 放弃总线控制权 另一方面, 总线请求部件 ( 如 DMAC) 收到有效 HLDA 信号后, 就获得了总线控制权 在此期间,HOLD 和 HLDA 都保持高电平, 在总线占有部件 ( 当前总线主 ) 用完总线之后, 将把 HOLD 信号变为低电平, 表示现在放弃对总线的占用 CPU 收到低电平的 HOLD 之后, 它将 HLDA 变为低电平 从此, CPU 又获得了总线控制权

50 第二章 : 微型计算机体系结构 ( 续 ) 第二章 : 微型计算机体系结构 ( 续 ) ALE(Address latch Enable): 地址锁存允许信号, 输出, 高电平有效 由于 8086/8088 的一部分地址线和数据线采用分时复用 在一个总线周期内总线上先传送地址, 接着传送数据 但在一般情况下, 存储器或 I/O 接口电路, 要求在整个总线周期内保持稳定的地址信息 这样, 就需要将这些地址信息保存起来 与 8086/8088 配套的锁存器电路为 8282/8283, 用 ALE 做锁存允许信号 ( 见 P34 图 2.12) *Intel 8282(8 位锁存器 ) 的封装外型与内部结构 ( 图 2.13)

51 第二章 : 微型计算机体系结构 ( 续 ) DEN(Data Enable): 数据允许, 输出, 三态, 低电平有效 作为总线收发器 (8286/8287 数据总线驱动器 ) 的控制信号 DT/R(Data Transmit/Receive): 数据发送 / 接收控制, 输出, 三态 其作用和用法如图 2.15,2.16 所示 *Intel 8286 / 位双向总线驱动器 SS0: 状态信号, 输出, 三态 注意 : SS0 是对 8080 而言 ; 而对于 8086, 这个引脚为 BHE/S7; 对于 8088,SS0 和 M/IO,DT/R 的 8 种状态编码 ( ) 输出表示不同的总线周期状态 ( 中断响应, 读 I/O 端口, 写 I/O 端口, 读内存, 写内存等 ) MN/MX: 最小 / 最大模式控制信号

52 第二章 : 微型计算机体系结构 ( 续 ) 数据存储器 (Data Latch) Q Q 表 8-3 数据锁存器的真值表 选通 D Q 选通 保持原状 数据输入 (D)

53 第二章 : 微型计算机体系结构 ( 续 ) 输入 D 图 8.6 锁存器工作时间图 选通 输出 Q Q 跟随 D t0 t1 t2 图 8.7 锁存器的应用 n 位数据总线 保持 t2 时 D 的锁存值 D0 D1 D n-1 选通 Q0 Q1 Q n-1

54 第二章 : 微型计算机体系结构 ( 续 ) ( 三 )8086 最小模式的典型配置 ( 图 2.12) (1)MN/MX 接 +5V, 决定 8086 工作于最小模式 ; (2)3 片 8282 作地址锁存器 ; (3)2 片 8286 作总线收发器 ;(4)1 片 8284 作时钟发生器 ( 四 )8086/8088 几个引脚说明 ( 最大模式 ) MN/MX 接地, 使 8086/8088 工作于最大模式 在最大模式下, 第 引脚与最小模式不同 1. QS 1,QS 0 的状态编码提供了前一个时钟周期中指令队列状态, 以便于外部 ( 如 8087) 对 8086/8088 内部指令队列的动作跟踪 2. S 2, S 1, S 0 (Bus Cycle Status) 总线周期状态 S 2, S 1, S 0 送入 8288( 总线控制器 ) 的对应输入端 ( 见图 2.18) 8288 利用 S 2, S 1, S 0 及有关的信号组合, 产生访问存储器或 IO 接口的控制信号 (MRDC, MWTC, IORC, IOWC) 及其他控制信号 ( 如 INTA, DT/R, DEN, ALE) 送 8259 送 8286 送 8282

55 第二章 : 微型计算机体系结构 ( 续 ) 三. 存储器结构 系统中的存储器采用奇 偶分体结构 : 将 1M 字节的存储空间分成两个 512K 的存储体, 一个叫奇体, 一个叫偶体 D 7 -D 0 D 15 -D 8 BHE A 0 A 19 -A 1 D 7 -D 0 奇体 SEL A 18 -A 0 D 15 -D 8 偶体 SEL A 18 -A 0

56 第二章 : 微型计算机体系结构 ( 续 ) 偶体固定与低 8 位数据总线 ( D 7 -D 0 ) 相连 ; 奇体固定与高 8 位数据总线 ( D 15 -D 8 ) 相连 ; BHE 有效 ( 为 0) 选中奇体,A 0 有效 ( 为 0), 选中偶体 ; 为什么采用这种奇偶分体结构?( 习题 7) 访问 对准字, 只需一个总线周期 ; 访问 非对准字, 需两个总线周期 * 对准伪操作 EVEN 对于字数组, 为保证其从偶地址开始, 可在它面前用 EVEN 伪操作来达到这一目的, 形如 : DATA-SEG SEGMENT EVEN WORD-ARRAY DW 100 DUP(?) DATA-SEG ENDS 系统中的存储器结构 (P32 图 2.11)

57 第二章 : 微型计算机体系结构 ( 续 ) 四. CPU 的操作和时序 1. 指令周期, 机器周期与时钟周期的基本概念 (P43) 时钟周期 (T 状态 ) 机器周期机器周期机器周期 M 1 (Machine Cycle) ( 取指 ) M 2 ( 读存储器 ) M 3 ( 写存储器 ) 指令周期 * 在微机领域中, 称 机器周期 为 总线周期 BIU 完成一次访问存储器操作所需要的时间

58 第二章 : 微型计算机体系结构 ( 续 ) 练习 : 微机 A 和微机 B 采用主频不同的 CPU 芯片, 在片内逻辑电路完全相同的情况下, 若 A 机的 CPU 主频为 8MHz,B 机为 12MHz, 且已知每台机器的总线周期平均含有 4 个时钟周期,A 机的平均指令执行速度为 0.4MIPS, 那么该机的平均指令周期为多少微秒? 每个指令周期含有几个总线周期?B 机的平均指令执行速度为多少 MIPS? 解 :A 机的平均指令周期 = 6 10 µ s 每个指令周期的总线周期数 = 2. 5 µ s B 机的平均指令执行速度 =0.4 MIPS X 12/8=0.6 MIPS 6 = 2.5 µ s µ s 4 = 5 或 = 0. 6 MIPS 时钟周期 总线周期每条指令的总线周期数

59 第二章 : 微型计算机体系结构 ( 续 ) 2. 系统的复位与启动操作 ( 复位时各内部寄存器的值见表 2-10) 3. 总线操作 : (1) 最小模式下的总线读操作 (2) 最小模式下的总线写操作 (3) 最大模式下的总线读操作 (4) 最大模式下的总线写操作

60 第二章 : 微型计算机体系结构 ( 续 ) T 1 T 2 T 3 T w T 4 CLK M/IO A 19 /S 6 -A 16 /S 3 地址状态输出 BHE/S 7 AD 15 -AD 0 ALE READY RD 地址 数据输入 DT/R DEN 最小模式下 8086 读总线操作时序图

61 第二章 : 微型计算机体系结构 ( 续 ) 习题 的一个基本总线周期包括哪几个时钟周期 (T 状态 )? 什么情况下需要插入等待状态? 2. 在下列条件下, 读周期时序中要不要插入 T W 状态? 需要插入几个? 请画出相应的时序信号图 1CPU 为 内存芯片的读出时间为 400ns( 从 CPU 输出有效地址到数据稳定出现在数据总线上的时间 ) 3. 指出 80x86CPU 执行如下指令后, 标志寄存器中各状态位的值 (1) MOV AX,32C5H (2)MOV AX,0E453H ADD AX,546AH ADD AX,0C572H

62 第二章 : 微型计算机体系结构 ( 续 ) 习题 4. 某一 16 位的 CPU, 主频为 20MHz, 其总线周期含有 4 个时钟周期加上一个等待状态 (Tw), 试计算其最大总线频宽 ( 单位时间内通过总线的信息传输量, 以 Bytes/Sec 为单位 )

63 第三章 指令系统

64 寻址方式 指令通常应提供的信息 1. 做什么操作 2. 操作数从哪里来 3. 操作结果放在哪里 4. 对于调用和转移指令, 还要涉及 转移或调用地址的提供方式

65 指令的组成 操作码字段 (field) -- 标明计算机要执行什么操作 操作数字段 -- 指出指令在执行过程中所需要的 操作数 ( 值为多少或者放在什么地方 ), 以及操作结果送到哪里

66 指令的一般格式 操作数字段可以有一个, 二个或三个操作数, 通常称为 一地址, 二地址 或 三地址 指令 操作码 操作数 操作数

67 示例 加 1 指令 INC AX 只需要指出加 1 的操作数, 它是 一地址 指令 双操作数指令 ADD AX, BX 大多数运算型指令都是双操作数指令, 对这种指令, 有的机器 ( 大中型 ) 使用 三地址 指令 : 除给出参加运算的两个操作数外, 还要指出运算结果的存放地址

68 操作指令 现代微型计算机中多采用二地址指令, 两个操作数分别称为 源操作数 和 目的操作数, 指令执行后, 把运算结果放到目的操作数的地址之中 指令的操作码在机器中的表示比较简单, 只要对每一种操作指定相应的二进制代码即可 ; 而指令的操作数字段的情形就比较复杂

69 寻址方式 定义 (1): 指令中如何提供操作数或操作数地址的方式称为寻址方式 定义 (2): 规定如何对地址字段作出解释以找到操作数 * 程序转移时需提供转移地址, 这跟提供操作数地址在方法上没有本质区别, 因此也归入寻址方式的范畴

70 指令系统设计 一个指令系统能够提供哪些寻址方式, 能否为编制程序提供方便, 这是指令系统设计的关键 需要说明的是, 在不同的计算机系统中, 寻址方式的名称和分类并不统一, 但基本可以归结为以下几种方式或它们的变型或组合 :

71 寻址方式的名称和分类 立即寻址 ( 立即数寻址 ) 立即寻址 ; 直接寻址 寄存器寻址 直接寻址 间接寻址 变址寻址 立即扩展寻址 ; 零页寻址 隐含寻址 ; 相对寻址 寄存器寻址 ; 变址寻址 寄存器间接寻址 ; 位寻址

72 一.8086 的寻址方式 分两种情况来讨论 : 1. 程序存储器寻址 2. 数据存储器寻址 ( 我们重点掌握数据存储器寻址的几种寻址方式 )

73 ( 一 ) 立即寻址 (Immediate addressing) 指令中直接给出操作数, 操作数紧跟在操作码之后, 作为指令的一部分存放在代码段里, 在取出指令的同时也就取出了操作数, 立即有操作数可用, 所以称之为立即寻址

74 目的源 example MOV AL, 80H ; 低地址存储器 MOV AX, 3064H ; AX OP 代 码 ADD AL, 20H ; 段 ADD AX, 1090H; 高地址

75 立即寻址 立即数可以为 8 位, 也可以为 16 位 如果是 16 位数, 则 高位字节存放在高地址中, 低位字节存放在低地址中 立即寻址方式常用于给寄存器赋值, 并且只能用于源操作数, 而不能用于目的操作数

76 ( 二 ) 寄存器寻址 (Register addressing) 操作数在寄存器中, 指令中指明寄存器号, 这种寻址方式叫寄存器寻址 对于 8 位操作数, 寄存器可以是 AH, AL, BH, BL, CH, CL, DH, DL. 对于 16 位操作数, 寄存器可以是 AX, BX, CX, DX, SI, DI, SP 和 BP ;

77 EXAMPLE INC AX ; MOV AX, BX ; DEC AX ; ROL AH, 1 ; 一位 CF D7 D0 将 AH 中的内容循环左移

78 特点 (1) 操作数就在寄存器中, 不需要访问存储器来取得操作数 ( 指令执行时, 操作就在 CPU 的内部进行 ), 因而执行速度快 (2) 寄存器号比内存地址短 * 在编程中, 如有可能, 尽量使用这种寻址方式的指令 * 寄存器寻址方式既可用于源操作数, 也可用于目的操作数, 还可以两者都用于寄存器 寻址方式 ( 如 MOV BX, AX )

79 寻址方式 除以上两种寻址方式外, 下面各种寻址方式的操作数均在存储器中, 通过采用不同的寻址方式取得操作数地址, 从而取得操作数

80 ( 三 ) 直接寻址 (Direct Addressing) 在讨论寻址方式时, 通常把操作数的偏移地址称为有效地址 EA (Effective Address), EA 可通过不同的寻址方式来得到 在直接寻址方式中, 指令中直接给出操作数的有效地址, 或者说, 有效地址 EA 就在指令中 它 ( 操作数的有效地址, 而不是操作数本身 ) 存放在代码段中指令的操作码之后, 但操作数一般存放在数据段中

81 当然, 也允许数据存放在数据段以外的其它段 ( 如附加段 ) 此时应在指令中给出 跨越段前缀 例 1. MOV AX, [2000H]; 如 (DS)= 3000H, 则指令的执行情况如下图所示 :

82 代存储器 OP 采用直接寻址方式, 如果没码有用 段跨越前缀 标明 00 操作段 20 数在哪一段, 就默认段寄存为 DS H AX 数 30 据段 32000H

83 例 2 如数据在附加段 ( 扩展段 ) 中, 则应指明 段跨越前缀 MOV AX, ES : [3000H] ; 或 ES: MOV AX, [3000H] ; 为了使指令字不要过长, 规定双操作数指令不能两个操作数都用直接寻址方式 如 ( MOV [2000H], [3000H] )

84 ( 四 ) 寄存器间接寻址 (Register indirect Addressing) 采用寄存器间接寻址方式时, 指令中给出寄存器号 ( 寄存器为 BX,BP,SI 和 DI 之一 ), 被指定的寄存器中存放着操作数的有效地址, 操作数在存储器中 ( 以寄存器的内容为操作数的有效地址 ) [BX].. 对应段寄存器为 DS EA= [BP].. SS [SI]..DS [DI].DS

85 Example MOV AX, [BX] ; 设 ( DS) = 2000H,(BX) = 1000H 物理地址 =20000H H =21000H AX * 指令中也可以通过. 段跨越前缀 取得 A0H 数其他段中的 数据, 50 H 据例如 : 段 MOV AX,ES:

86 ( 五 ) 寄存器相对寻址 (Register relative addressing) 操作数的有效地址是一个基址或变址寄存器的内容与指令中指定的 8 位或 16 位位移量之和 若没有段跨越前缀, 则对于寄存器 BX,SI, DI 的情况, 段寄存器为 DS; 而对于寄存器为 BP 的情况, 则段寄存器为 SS.

87 如下图所示 [BX] 8 位偏移量 EA = [BP] + [SI] 16 位偏移量 [DI]

88 Example MOV AX, [SI+3000H] OP 操 OP 设 (DS)=4000H,(SI)=2000H 作 00 物理地址 30 码 =40000H+2000H+3000H 位 = 45000H 移指令的执行情况如 量 34 右图 AX 40000H 12

89 寄存器相对寻址 这种寻址方式可用于表格的处理, 通过位移量来设置表格的首地址 ; 利用修改基址寄存器或变址寄存器的内容来获得表项的值

90 ( 六 ) 基址变址寻址 (Based indexed addressing) 操作数的有效地址是一个基址寄存器和一个变址寄存器内容之和, 两个寄存器均由指令指定 DS [BX] [SI] 若基址寄存器为 BX, 则段寄存器为 EA= + BP, ss [BP] [DI]

91 Example 例 :MOV AX,[BX+DI] 设 (DS)=2100H,(BX)=0158H,[DI]=10A5H. 则 EA= 0158H+10A5H=11FDH 物理地址 =21000H+11FDH=221FDH * 这种寻址方式同样 组 ), [BX] 21000H 适用于表格 ( 或数 21158H 首地址可存放在基址 34 AX 寄存器中, 而用变址寄存器 12 来访问表格中的各项 由于 221FDH 两个寄存器都可以中国系统分析员修改使 (

92 (Relative based 中国系统分析员 indexed ( address~) 也称 带位移量的基址加变址寻址方式. 操作数的有效地址是一个基址寄存器和一个变址寄存器内容与 8 位或 16 位位移量之和 [BX] [SI] 用 BX, 则段寄存器为 DS EA= + + 位移量 [BP] [DI] 用 BP, 则段寄存器为 SS

93 例 :MOV AX,[BX+SI+0250H] 设 (DS)=3000H,(BX)=2000H,(SI)=1000H, 则代 EA= 2000H+1000H+0250H=3250H 码物理地址 =30000H+3250H=33250H 段 OP OP AX 位移量数 据 [BX] 30000H 32000H H 12

94 相对基址加变址寻址 这种寻址方式对堆栈中数组的访问提供了方便, 通常可用 BP 指向栈顶 (MOV BP,SP). 从栈顶到数组第一个元素的距离用位移量表示, 变址寄存器 (SI 或 DI) 用来指出数组元素 [BP] 栈顶存储器低地址位移量 [SI] A(0) A(1) A(n)

95 二 8086 指令系统概况 1. 指令格式 2. 指令执行时间

96 三 指令系统 可以分为以下六类 : 数据传送指令算术运算指令逻辑运算和移位指令串操作指令转移指令处理器控制指令

97 ( 一 ) 数据传送指令 包括 : 通用传送指令 ; 累加器专用传送指令 ; 地址传送指令 ; 标志传送指令 ; 1. 通用传送指令 : 最基本的传送指令 (MOV) 堆栈指令 (PUSH,POP) 数据交换指令 (XCHG)

98 (1) MOV 指令 指令格式 :MOV DST,SRC; 操作 :DST SRC 实现 CPU 的内部寄存器或寄存器与内存间的数据传送 ( 复制操作 ). 例 : MOV AL, BL; MOV [DI], AX; MOV CX,[1000H]; MOV BL, 40 MOV WORD PTR[SI],01H; WORD PTR 字长度标记 ;BYTE PTR 字节长度标记 DWORD PTR 双字长度标记 ( 伪指令 )

99 练习 1 用 MOV 指令实现两内存字节单元内容的交换 2035H 01H. 2045H 02H

100 用直接寻址方式实现 MOV BL, [2035]; MOV CL,[2045H]; MOV [2045H],BL; MOV [2035H],CL; HLT

101 用寄存器间接寻址方式实现 MOV SI, 2035H; MOV DI, 2045H; MOV AH, [SI]; MOV AL, [DI]; MOV [2035H],AL;

102 练习 2 把数据块 BLOCK1 移到 BLOCK2 2040H 2060H BLOCK1 BLOCK2 把 2040H 地址开始的 10 个字节数据移到 2060 地址开始的 10 个字节单元处

103 练习 3 把 2040H 地址开始的 10 个字节单元的内容与 2060H 地址开始的 10 个字节单元内容互换

104 ANSWER START: MOV SI, 2040H ; MOV DI, 2060H ; MOV CX, 0AH; LOOP1: MOV BL, [SI+09H]; MOV [DI+09H],BL ; DEC SI ; DEC DI ; DEC CX ; JNZ LOOP1; HLT ;

105 (2) 堆栈操作指令 堆栈的定义 * [ 堆栈的用途 堆栈的图示 : 压入 : 格式 PUSH SRC (SS) 先修改指针 : SP SP-2 最后一项后压入 :SP+1,SP) SRC (SP) 弹出 : 格式 POP DST 栈顶先弹出 :DST

106 堆栈操作对标志位的影响 只有 POPF 指令影响所有的标志位, 其它堆栈指令均不影响任何标志位 O D I T S Z A P C

107 (3) 交换指令 格式 :XCHG OPR1, OPR2 操作 :OPTR1 OPTR2 标志 :O D I T S Z A P C 例 :XCHG AL,BL; XCHG BX,CX; XCHG [2530], CX;

108 练习 用 XCHG 指令改进前面的数据块交换程序 : MOV BL, [SI +09H]; XCHG BL, [DI+09H]; MOV [SI+09H], BL;

109 2. 累加器专用传送指令 输入输出指令 (IN 指令,OUT 指令 ) 换码指令 (XLAT)

110 (1) 输入输出指令 <1> 直接输入输出指令格式 :IN AL, PORT ; 操作 :AL IN AX, PORT; AX (PORT) (PORT+1,PORT) OUT PORT,AL; (PORT) AL OUT PORT,AX; (PORT+1,PORT) AX 标志 : 注 :PORT 为输入输出端口号, 范围为 0~255(00~FFH)

111 <2> 间接输入输出指令 格式 :IN AL, DX; 操作 :AL (DX) IN AX, DX; AX (DX+1,DX) OUT DX,AL; (DX) AL OUT DX,AX; (DX+1,DX) AX 标志 : 在间接输入输出指令之前, 需将端口号 MOV DX,XXXXH; DX.

112 输入输出指令格式 ( 机器码 ) 输入指令 : 0:8 位传送 只出现于直 接输入 1:16 位传送 输出指令 W PORT 0- 直接输入指令 ( 长形 ) 1- 间接输入指令 ( 短形 )

113 输出指令 于长形 W PORT 只出现 0 ( 长形 ) 1( 短形 )

114 输入输出指令的使用 IN 指令 : 用于从数据端口输入数据或从状态端口输入状态字. 例 : IN AL,28H; IN AL, 27H; MOV [2000H],AL; TEST AL, B; JNZ ERROR

115 输入输出指令的使用 OUT 指令 : 用于输出数据或命令给指定的 I/O 端口 例 : 如果 26H 端口 ( 命令寄存器 ) 第 7 位启动成组传送操作, 则可用下述程序启动之 : COM- REG EQU 26H ; 为名字赋值 BEGIN- BIT EQU B ; 伪指令 MOV AL, OTRCNBITS; OR AL, BEGIN-BIT; OUT COM-REG, AL;

116 (2) 换码指令 XLAT(Translate) 主要用于对表格的访问, 实现代码转换 执行 XLAT 指令之前, 将表的首地址 BX 某一项与表首址的位移量 ( 距离 ) AL XLAT 结果 : 在 AL 中得到该项的内容 MOV BX, 1000H;(TABLE) MOV AL, 05H; XLAT; 在 AL 中得到 5 的对应代码 HLT

117 3. 地址传送指令 LEA (Load Effective Address) LDS (Load pointer into register and DS) LES (Load pointer into register and ES)

118 (1) 取有效地址指令 格式 :LEA REG, SRC; 操作 :REG SRC; 标志 : * 指令功能 : 将源操作数的有效地址 EA 传送到目的操作数, 目的操作数为一个 16 位的通用寄存器

119 例 :LEA BX,[BX+DI+6H] 若指令执行之前 (BX)=1000H,(DI)=0200H, 则指令执行之后,(BX)=1206H 注意与指令 MOV BX,[BX+DI+6H] 功能上的区别 从变量的角度, LEA AX,VAR 指令传送的是变量的地址, 而 MOV AX,VAR 指令传送的是变量的值

120 (2) 格式 LDS REG,SRC 操作 :REG (SRC) 标志 : DS (SRC+2) 指令功能 : 将地址指针 ( 共 4 个字节 ) 装入 DS 和另一个非段寄存器 其中 : 前两个字节 ( 偏移量 ) 后两个字节 ( 段基址 ) DS 非段寄存器

121 Example 例 1. LDS DI,[2130H] 设 (DS)=3000H DI DS 32130H 偏移量 段基址

122 (3) 格式 LES REG,SRC 操作 : REG (SRC) ES (SRC+2) * LDS 和 LES 指令为切换数据段提供了方便

123 4. 标志传送命令 读取标志指令 : LAHF -- 标志寄存器低 8 位 设置标志指令 : SAHF -- 标志寄存器低 8 位 把标志寄存器的内容压入堆栈 :PUSHF AH AH 从堆栈弹出到标志寄存器 :POPF 例 :P62~P63

124 ( 二 ) 算术运算指令 1. 二进制加法和减法指令 名称 格式 操作 加法 ADD DST,SRC DST SRC+DST 带进位加法 ADC DST,SRC DST SRC+DST+CF 减法 SUB DST, SRC DST DST-SRC 带借位减法 SBB DST,SRC DST DST-SRC-CF 标志 : O D I T S Z A P C 所有状态标志都受影响 ---

125 Example 编写实现下列二进制运算的程序段 W X+Y+24-Z(X.Y.Z 均为字变量 ) MOV AX, X ; ADD AX, Y ; ADD AX, 24 ; SUB AX, Z; MOV W, AX;

126 Example 双倍精度运算 ( 操作数的长度为双字 -- 两个 16 位 ) 2000H 3000H 低 16 位低 16 位 位 高 16 位高 16

127 程序段 MOV SI, 2000H ; 取第一个数的首地址 MOV AX, [SI] ; 将第一个数的低 16 位送 AX MOV DI,3000H; 取第二个数的首地址 ADD AX, [DI] ; 第一个数的低 16 位和第 2 个数的低 16 位相加.( 不加 CF, 但此条指令的执行影响 CF) MOV [SI],AX; 存低 16 位相加结果 MOV AX, [SI+2]; ADC AX,[DI+2]; 两个高 16 位连同 CF( 低 16 位相加形成的 ) 相加. MOV [SI+2],AX; 存高 16 位相加结果. 思考 : 以上是双字 ( 双倍精度 ) 相加, 如果更多字 ( 多倍精度 ) 相加, 这个程序将如何设计?

128 例 3: 假设数的长度 ( 以字计 ) 存放于 2500H 字节单元, 两个无符号二进制数分别从 2000H 和 3000H 开始存放 ( 低字在前 ), 和存放于 2000H 开始处, 试编程实现

129 2. 加 1 减 1 和比较指令 名称格式操作加 1 INC OPR OPR OPR+1 减 1 DEC OPR OPR OPR-1 求补 (Negate) NEG OPR OPR -OPR 比较 CMP OPR1,OPR2 OPR1-OPR2 标志 :INC 和 DEC: O D I T S Z A P C NEG 和 CMP: ---

130 NEG 指令 NEG 指令把操作数当成一个带符号数, 如果原操作数是正数,NEG 指令则将其变成负数 ( 用补码表示 ); 如果原操作数是负数 ( 用补码表示 ),NEG 指令则将其变成正数 方法 : 各位 ( 包括符号位 ) 求反, 末位加 1.

131 Example * 若 AL= B=+17, 执行 NEG AL 后, AL= B=[-17] 补 * 若 AL= B=[-47] 补, 执行 NEG AL 后, AL= B=+47

132 比较指令 比较指令实际上是做减法, 但不回送相减的结果, 只是根据结果置标志 通常, 把 CMP 指令安排在条件转移指令 ( 如 JZ, JG, JO 等 ) 之前 例. 如果 X>50, 转移到 TOO-HIGH; 如果带符号减法 X-Y 引起溢出, 则转移到 OVERFLOW; 否则, 计算 X-Y, 并将结果存放在 RESULT 中 ( 其中, X,Y,RESULT 均为字变量 )

133 程序段 下述程序段使用了前面介绍的几条指令, 也用到了后面即将介绍的条件转移指令. MOV AX, X ; 将 (X) 移入 AX CMP AX, 50; 比较 JG TOO-HIGH; 如果 (X) 大于 50, 则转向 TOO-HIGH SUB AX, Y; 否则减去 (Y) JO OVERFLOW; 溢出则转移 JNS NONNEG ; NEG AX; NONNEG: MOV RESULT, AX ; 无溢出, 取绝对值, 并将结果存入 RESULT TOO-HIGH: OVERFLOW:

134 3. 符号扩展指令 名称格式操作 将字节扩展成字 CBW 将 AL 的符号位扩展到 AH 将字扩展成双字 CWD 将 AX 的符号位扩展到 DX 标志 : 所有的标志位都不受影响.

135 4. 乘法指令 1. 带符号乘法 * 格式 :IMUL SRC * 所执行的操作 : 字节操作数 : AX (Al)*(SRC) 字操作数 :DX:AX (AX)*(SRC) ( 乘积带符号, 并符合一般代数符号规则 ) 2. 无符号乘法 * 格式 :MUL SRC * 所执行的操作 : 同 IMUL, 但操作数和乘积均不带符号

136 5. 除法指令 带符号除法 * 格式 :IDIV SRC * 所执行的操作 : 字节除数 :AL (AX)/(SRC) 之商 AH (AX)/(SRC) 之余数字除数 : AX (DX:AX)/(SRC) 之商 DX (DX:AX)/(SRC) 之余数商和余数是带符号的 : 商的符号符合一般代数符号规则, 余数的符号与被除数相同. 无符号除法 * 格式 :DIV SRC * 所执行的操作 : 与 IDIV 相同, 但操作数, 商和余数均是无符号的

137 标志位 标志 :O D I T S Z A P C IMUL --- U U U U X MUL --- U U U U X IDIV U --- U U U U U DIV U --- U U U U U X : 根据结果设置 U : 无定义 -: 不影响

138 二进制四则混合算术运算程序段 试计算 : AX (V-(X*Y+Z-540))/X 之商 DX 余数 ( 其中,X,Y,Z,V 均为字变量 )

139 MOV AX, X; PROGRAM IMUL Y; X*Y, 结果在 DX:AX 中 MOV CX, AX; MOV BX, DX; 将乘积存在 BX:CX 中 MOV AX, Z; CWD 将符号扩展后的 Z 加到 BX:CX 中的乘积上去 ADD CX, AX; ADC BX, DX; SUB CX, 540; SBB BX, 0; 从 BX:CX 中减去 540 MOV AX, V; CWD; SUB AX, CX; 从符号扩展后的 V 中减去 (BX:CX) 并 SBB DX, BX; 除以 X, 商在 AX 中, 余数在 DX 中 IDIV X;

140 6. BCD 数运算指令 所谓 BCD 数, 就是二进制编码的十进制数 (Binary Coded Decimal), 它是用 4 位二进制码表示一位十进制数 (0000~1001 是合法 BCD 码 ; 1010~1111 是非法 BCD 码 ). 组合 BCD 数 : 用一个字节表示 2 位 BCD 数例 : 分离 BCD 数 : 用一个字节的低 4 位表示一位 BCD 数, 高 4 位为 0. 例 :

141 (1) 组合 BCD 数十进制调整原理 例 1 : = ? (1111 是非法 BCD 码 ) 需要对结果进行变换 ( 调整 ), 方法 : 加 6 调整 ( 正确结果 ) 第 3 位向第 4 位 ( 低半字节向高 半字节 ) 有进位,AF=1

142 组合 BCD 数十进制调整原理 在非法 BCD 码上 加 6, 产生向高一位数字的进位 : 加法器实际上是按二进制运算 满 16 进一 但进到了 BCD 数的高位 进 1 当 10 ( 少 6) 可见, 在 BCD 码结果中, 只要一位 BCD 数字所对应的二进制码超过 9(1010~1111), 就应 加上 6, 产生进位, 进行调整 这可由软件 ( 调整指令 ) 来完成

143 组合 BCD 数十进制调整原理 例 = ( 结果不对 ) 运算时, 低位数字向高位数字产生进位 (AF=1 或 CF=1), 实际上是 满 16 进一, 但进到高位, 当成了 10, 少 6, 需 加 6 调整 ( 结果正确 ) 可见, 在 BCD 数运算时, 若 AF=1( 或 CF=1) 就需在低 4 位 ( 或高 4 位 ) 上进行 加 6 调整

144 BCD 数十进制调整规则 BCD 数加法十进制调整规则 : 如果两个 BCD 数字相加的结果是一个在 1010~ 1111 之间的二进制数, 或者有向高一位数字的进位 (AF=1 或 CF=1), 则应在现行数字上加 6(0110B) 调整 BCD 数减法十进制调整规则 : 1.AF=1, 表示低位向高位有借位, 低位要进行 -6 调整 2. CF=1, 表示高位向高字节有借位, 高位要进行 -6 调整

145 (2) 组合 BCD 数十进制调整指令 * 加法的十进制调整 : 格式 : DAA 操作 :AL AL 中的和数调整到组合 BCD 格式 * 减法的十进制调整 : 格式 : DAS 操作 :AL AL 中的差数调整到组合 BCD 格式 DAA--Decimal Adjust for Addition DAS-- Decimal Adjust for Subtraction 标志 :O D I T S Z A P C U ---

146 计算 BCD3 BCD1+BCD2 其中,BCD1,BCD2,BCD3 定义为字变量, 可分别存放 4 位数字的组合 BCD 数, 假定 (BCD1) =1834, (BCD2) = 指出执行每条指令的操作及执行指令后 AL, AF, CF 的内容

147 程序段 指令 操作 AL CF AF MOV AL, BCD1; AL 不受 影响 ADD AL, BCD2; AL BDH 0 0 DAA ; 调整 23 BCD 1 * 无 关紧要 MOV BCD3,AL; (BCD3) * MOV AL, BCD1+1; AL * ADC AL, BCD2+1; AL CF 40H 0 1 DAA ; 调整 46 BCD 0 * MOV BCD3+1,AL; (BCD3+1) * 即 =4623

148 组合 BCD 数 8086 没有组合 BCD 数的乘法和除法调整指令, 主要原因是相应的调整算法比较复杂, 所以,8086 不支持组合 BCD 数的乘除法运算 如果要处理组合 BCD 数的乘除法问题, 可以把操作数 ( 组合 BCD 数 ) 变换成相等的二进制数, 然后用二进制算法进行运算, 运算完成后再将结果转换成 BCD 数

149 (3) 分离 BCD 数调整指令 加法调整指令 (AAA) 减法调整指令 (AAS) 乘法调整指令 (AAM) 除法调整指令 (AAD)

150 ( 三 ) 逻辑运算和移位指令 1. 逻辑运算指令 名称 格式 操作 非 NOT OPR OPR OPR 或 OR DST,DST DST DST V SRC 与 AND DST,SRC DST DST SRC 异或 XOR DST,SRC DST DST SRC 测试 TEST OPR1,OPR2 OPR1 OPR2

151 2. 移位指令 名称格式 CF 操作 逻辑左移 SHL OPR,CNT 0 ( 其中,OPR 是除立即数以外的任何一种寻址方式,CNT 可以是 1 或 CL) CF 算术左移 SAL OPR,CNT 0 左移 1 位时, 若最高位 ( 即符号位 ) 发生改变 (0 1 或 1 0), 则 OF=1, 未发生改变时,OF =0; 逻辑右移 SHR OPR,CNT 0 算术右移 SAR OPR,CNT CF CF

152 逻辑移位 : 把操作数作为无符号数进行移位. 右移时, 最高位补 0; 左移时, 最低位补 0. 算术移位 : 把操作数作为有符号数进行移位. 右移时, 最高位保持不变 ; 左移时, 最低位补 0.

153 3. 循环移位指令 不带进位的循环左移 ROL OPR,CNT CF 不带进位的循环右移 ROR OPR, CNT CF

154 循环移位指令 带进位的循环左移 CF RCL OPR, CNT 带进位的循环右移 RCR OPR, CNT CF

155 移位和循环指令 用来改变数据格式, 有时用来提供程序控制功能 ( 例如根据移位后的 CF 状态作 JC 或 JNC 转移, 或一些专门的运算功能 注意 : 左移 n 位与乘以 2 (n) 等效, 例如 : 6 2 (2)= = * 同样, 右移 n 位与除以 2(n) 等效, 如果是逻辑右移, 除法是无符号的 ; 如果是算术右移, 则除法是带符号的 ( 保持最高位不变, 并做符号的扩展 )

156 例 1: 编程实现将中国系统分析员 AL ( 中的数乘 以 10( 求 10x) SAL AL, 1 ; 将 AL 中数左移 1 位, 得 2x MOV BL, AL; 2x 保存在 BL 中. MOV CL, 2 ; 移位次数送入 CL SAL AL,CL; 2x 左移 2 位, 得 8x ADD AL, BL; 2x 加上 8x,AL 中为 10x

157 Example 例 2: 把从 UNPACKED 开始的 16 位分离 BCD 数转换成组合 BCD 数, 并把结果存在从 PACKED 开始的单元里 UNPACKED PACKED

158 程序段 MOV DX, 8; 将循环次数计数初值置为 8 MOV CL, 4; 移位次数置为 4 MOV SI, 0; MOV DI, SI; CONVERT:MOV AX, WORD PTR[SI+UNPACKED]; SHL AL, CL; SHR AX, CL; MOV PACKED[DI], AL; 存储结果 ADD SI, 2; INC DI ; DEC DX ; 循环计数值减 1 JNZ CONVERT

159 ( 四 ) 串操作指令 名称格式操作字节串传送 MOVSB (DI) (SI),SI SI+1,DI DI+1 字串传送 MOVSW (DI) (SI),SI SI+2,DI DI+2 字节串比较 CMPSB (SI) (DI), SI SI+1,DI DI+1 字串比较 CMPSW (SI) (DI), SI SI+2,DI DI+2 注 : 此 4 个指令前可加 REP

160 Example 例 1. 数据块传送 ( 用 MOVSB 指令 ) 例 2. 比较两个字符串是否完全相同.(P76 中 ) 例 3. 在串中寻找特定字符 (P77 上 )

161 ( 五 ) 转移指令 无条件转移指令 条件转移指令 循环控制指令 中断及中断返回指令

162 无条件转移指令示例 段内直接转移 : JMP 1000H ; 段内间接转移 : JMP AX; ( 转移地址的偏移量在寄存器或内存单元中 ) 段间直接转移 : JMP 2500H:3600H 段间间接转移 : JMP DWORD PTR[DI] ( 转移地址在 DI,DI+1,DI+2,DI+3 四个字节单元中 )

163 补充 : 1. 段内直接转移 段内直接短转移 : 格式 : JMP SHORT OPR ( 符号地址 ) 操作 : IP IP+8 位位移量 (- 128~+127) 段内直接近转移 : 格式 : JMP NEAR PTR OPR( 符号地址 ) 操作 : IP IP+16 位位移量 ( ~ ) 2. 段内间接转移 : 格式 : JMP WORD PTR OPR( 可使用除立即数之外

164 . 3. 段间直接 ( 远 ) 转移 格式 : JMP FAR PTR OPR ( 符号地址 ) 操作 : IP OPR 的段内偏移量 CS OPR 所在段的段地址 4. 段间间接转移 格式 : JMP DWORD PTR OPR 操作 : IP (EA) CS (EA+2) 例 : JMP DWORD PTR [BX+DI+6]

165 循环控制指令 通常的循环控制 MOV CX, N BEGIN:... DEC CX 循环体 JNZ BEGIN LOOP BEGIN 有了 LOOP 指令, 程序得到简化

166 循环控制指令 从技术上讲, 循环控制指令是条件转移指令, 只不过它是专门为实现循环控制而设计的 名称格式 / 其它格式测试条件 0 循环 LOOP OPR CX = 为零或相等循环 LOOPZ OPR/LOOPE OPR ZF=1 且 CX=0 非零或不相等循环 LOOPNZ OPR/LOOPNE OPR ZF=0 且 CX=0

167 循环控制指令 ( 续 ) 1. 执行每条指令时,CX CX-1 2.OPR 为一个标号 3. 标志 ( 意味着 ZF 并不受 CX-1 的影响, 即 ZF=1 时,CX 未必为 0;ZF 是前面指令决定的, 与 CX 是否为 0 无关.) 例 : 在 100 个字符构成的字符串中寻找第一个 $ 字符 ( P81)

168 子程序调用和返回指令 (1) 调用指令 名称格式操作 段内直接调用 地址 ) 移地址 ) 段内间接调用 寻址方式 的有效地址 ) Call DST SP SP-2 (SP+1,SP) IP( 保存返回 IP IP+ 位移量 ( 形成转 Call DST SP SP-2 (SP+1,SP) IP IP (EA) (EA: 由 DST 的 计算出

169 子程序调用和返回指令 名称格式操作 段间直接调用 返回地址 地址 Call DST SP SP-2 (SP+1,SP) CS SP SP-2 保存 (SP+1,SP) IP IP 位移量 CS 段地址形成转移 例 :Call FAR PTR Display

170 子程序调用和返回指令 名称格式操作 段间间接调用 返回地址 移地址 Call DST SP SP-2 (SP+1,SP) CS SP SP-2 保存 (SP+1,SP) IP IP 位移量 CS (EA+2) 形成转 EA: 由 DST 的寻址方式计算出的有效地址例 :Call DWORD PTR [BX+SI]

171 子程序调用和返回指令 (2) 返回指令 名称格式操作段内返回 RET (C3H) IP (SP+1,SP) SP SP+2 段内带参数返回 RET n IP (SP+1,SP) SP SP+2 SP SP+n(n 为偶数 )

172 子程序调用和返回指令 (2) 返回指令 名称格式操作段间返回 RET (CBH) IP (SP+1,SP) SP SP+2 CS (SP+1,SP) SP SP+2 段间带参数返回 RET n IP (SP+1,SP) SP SP+2 CS (SP+1,SP) SP SP+2 SP SP+n(n 为偶数 )

173 过程 ( 子程序 ) 的基本结构 Proc-A PROC NEAR( 或 FAR) 过程名.... RET ENDP

174 堆栈操作及 RET n 指令使用举例 例. 在进入子程序 FFIT 之前, 主程序将字符串的首地址放于堆栈顶部, 执行子程序 FFIT 时, 将字符串首址取到 ES 和 DI 中, 并取出要显示的字符, 然后调用 DISPLAY 子程序进行显示 主程序 : FFIT: DISPLAY: call FFIT call DISPLAY ret 4 ret?

175 堆栈操作及 RET n 指令使用举例 DISPLAY 子程序返回地址 AX ES BP DI SP FFIT 子程序的返回地址 字符串首址偏移量 字符串首址段基值

176 FFIT 子程序段 FFIT: PUSH BP MOV BP, SP PUSH ES PUSH DI LES DI, [BP+04]; 将字符串首址送 ES 和 DI AAA: ES:MOV AL, [DI]; 从 ES 和 DI 所指单元取字符 CMP AL,00 ; 判取出的字符是否为结束符 JZ EEE PUSH AX ; 通过堆栈为 DISPLAY 子程序传递参数 ( 要显示的字符 ) CALL DISPLAY INC DI JMP AAA EEE: POP DI POP ES 中国系统分析员 ( POP BP

177 第三章作业 : 1. 分别说明下列指令中的源操作数和目的操作数各 采用什么寻址方式? (1)AND AX, 00FF H; (2) ADD AL, [BX+100]; (3) MOV BX, [SI+BX]; (4) MOV [BX+DI+10H], AH ; (5) MOV [BP+1054H], AX ; (6) ADD AX, [SI]; (7) MOV SI, 100 ;

178 第三章作业 2. 若 (DS)=4000H,(BX)=3000H,(SI)=2000H, (DI)=1000H, 试画出 1 题 (3)(4) 的指令执行情况图示 3. 设 (CS)=2500H,(DS)=2400H,(SS)=2430H, (ES)=2530H,(BP)=0200H,(SI)=0010H,(DI)=020 6H, 则指令 MOV AX,[BP+SI+4] 源操作数的有效地址为, 物理地址为 ; 指令 MOV AX, [DI+100] 源操作数的有效地址为, 物理地址为

179 第三章作业 4. 若寄存器 AX,BX,CX,DX 的内容分别为 10,20, 30,40 时, 依次执行 PUSH AX, PUSH BX, POP CX, POP DX, PUSH CX, PUSH DX, POP AX,POP BX 后, 寄存器 AX 和 BX 的内容分别为 5. 假设数的长度 ( 以字计 ) 存放于 2500 H 字节单元, 两个无符号二进制数分别从 2000H 和 3000 H 开始存放 ( 低字在前 ), 和存放于 2000H 开始处, 试编程实现 6. P87(3); 7. P87(7) ; 8. P116(5)

180 第四章汇编语言程序设计

181 Assemble Language 一种面向机器的程序设计语言, 是一种用符号表示的低级程序设计语言 ( 机器语言的符号化描述 ), 通常是为特定计算机或计算机系列专门设计的

182 Assemble Language 用汇编语言编写的程序不能由机器直接执行, 而必须经汇编程序翻译成机器语言程序 汇编语言指令与翻译成的汇编过程示意 :

183 采用汇编语言进行程序设计的优 点 可充分利用机器的硬件功能和结构特点, 加快程序的执行速度, 减少目标程序所占用的存储空间 常用来编写实时控制程序 实时通信程序, 有时也用来编制某些系统软件程序

184 缺点 : 1. 编程效率低 ( 与人们描述计算过程的需要差距大 ) 2. 与机器硬件的具体结构联系过于紧密 在一种结构的机器上开发的程序极难移植到另一种不同结构的机器上去

185 汇编语言程序的简历及汇编过程 编辑程序 Prog.asm 文件 汇编程序 Prog.obj 文件 Edit.exe Masm.exe Prog.exe 文件 连接程序 Link.exe

186 1. 检查源程序 ; 2. 测出源程序中的语法错误, 并给出出错信息 ; 3. 产生目标文件 (.OBJ), 并可给出列表文件 ( 同时列出汇编语言源程序和机器语言目标程序的文件, 称之为.LST 文件 ) 和交叉索引文件 ( 列出程序中使用的符号 变量和标号以及引用情况, 称之为.CRF 文件 ) 4. 展开宏指令

187 汇编示意图 调用 MASM.EXE.ASM 汇编.OBJ.LST.CRF 可选

188 1. 汇编程序的主要功能 汇编程序分两种, 一种是基本汇编 (ASM.EXE), 一种是宏汇编 (MASM.EXE), 宏汇编功能比较强

189 2. 连接程序 汇编之后生成的 OBJ 文件必须经过链接过程, 才能成为扩展名.EXE 的可执行文件 链接的过程就是调用连接程序 (LINK.EXE), 对 OBJ 文件进行定位 链接, 最后生成扩展名为 EXE 的可执行文件 如果需要, 也可生成 MAP 文件和 LIB 文件

190 连接示意图 : 调用 LINK.EXE.OBJ.OBJ.LIB 连接.EXE.MAP.LIB 可选

191 3. 调试程序 (DEBUG.COM) >DEBUG PROG.EXE -U( 反汇编 ) -g = 起始地址断点地址 -T = 地址指令条数

192 汇编语言程序开发中的相关文件 Handwritten source program EDIT Editor program MASM assembler program Libraries PROG1.LST PROG1.OBJ LINK linker program PROG1.CRF Other.OBJ files DEBUG debug program Final debugged run module

193 BIOS 和 DOS 中断 ROM BIOS(Basic Input Output System) 装于从地址 0FE00H 开始的 8k ROM 中, 提供了系统加电自检, 引导装入, 主要 I/O 设备的处理程序及接口控制等功能模块 使用 BIOS 功能调用, 使程序员不必了解硬件 I/O 的具体接口特性, 可直接通过入口参数来调用, 给编程带来方便

194 调用格式 : 设置入口参数 ; 设置功能号 ; INT XXH; 例 : MOV CX,0; MOV DX,0; 入口参数 MOV AH,1; 功能号为 1 INT 1AH;

195 DOS 中断 (DOS 系统功能调用 ) 指类型为 21H 的软件中断, 其对应的中断处理程序中包含了一系列最常用的功能子程序, 这些子程序分别实现外设管理 文件读 / 写和管理 目录管理等功能 例 : 在显示器上输出字符 $: MOV DL, $ ; (24H) 设置入口参数 MOV AH,6; 设置功能号为 6 INT 21H; DOS 系统功能调用

196 宏指令的定义 调用和扩展 ( 宏定义 宏调用和宏扩展 ) 宏 (MACRO) 是源程序中一段有独立功能的程序代码 它只需在源程序中定义一次, 就可以多次用一条宏指令来调用它 宏定义是用伪指令来实现的 其格式为 : Macro-name 宏指令名 MACRO ENDM [dummy Parameter List] 宏定义体 形式参数 ( 用逗号隔开 ) 其中 MACRO 和 ENDM 是一对伪指令, 这对伪指令之间是宏定义体 一组有独立功能的程序代码 宏指令名的第一个符号必须是字母, 其后可以是字母 数字或下划线字符.

197 宏指令的定义 调用和扩展 经宏定义定义后的宏指令就可以在源程序中调用, 这种对宏指令的调用称宏调用, 宏调用的格式为 : Macro-name [actual parameter list]( 每一项之间用逗号隔开 ) 当源程序被汇编时, 汇编程序将对每个宏调用作宏展开 宏展开就是用宏定义体取代源程序中的宏指令名, 而且用实在参数一一取代宏定义的形式参数 ( 例子见下一张 )

198 例 1 宏定义可以无变元宏定义 :SAVEREG MACRO 宏指令 PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI ENDM 宏定义开始 宏定义体 宏定义结束 宏调用 : SAVEREG 宏展开 : 将宏定义体的内容 ( 具有独立功能的代码段 ) 全部列出

199 例 2 宏定义带形式参数 宏定义 : FOO MACRO P1, P2, P3 MOV AX, P1 P2 P3 ENDM 宏调用 : FOO WORD_VAR, INC, AX 宏展开 :+MOV AX, WORD_VAR + INC AX

200 子程序调用和宏调用工作方式的区别 子程序调用工作方式 : 主程序 X A,y B CALL Q x C,y D CALL Q 执行时调用 子程序 Q(x,y) Q:... RET

201 子程序调用和宏调用工作方式的区别 宏调用工作方式 : 主程序 汇编时展开 子程序 Q(x,y) Q A,B Q(A,B) Q C,D Q(C,D) Q MACRO x,y ENDM

202 子程序调用和宏调用工作方式的区别 1. 在处理时间上不同 2. 用宏指令得到的目标代码长, 占内存空间大, 而且宏调用的次数越多, 所占内存空间越大 ; 用子程序占内存空间小, 而且不会随调用次数的增加而增加, 但执行时间长 3. 传递参数的方式不同

203 示例程序 (P88) DATA SEGMENT NUM DW B NOTES DB The result is :, $ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA BEGIN: MOV AX, DATA MOV DS,AX MOV DX,OFFSET NOTES MOV AH,9H INT 21H MOV BX,NUM MOV CH,4

204 示例程序 ( 续 ) ROTATE : MOV CL, 4 ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL, 9 AX,4C00H JLE DISPLAY ADD AL,07H DISPLAY: MOV DL, AL MOV AH,2 INT 21H DEC CH JNZ ROTATE MOV INT 21H CODE ENDS END BEGIN

205 堆栈段定义格式 STACK SEGMENT STACK STA DB 50 DUP (?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS, AX MOV SP,TOP : CODE ENDS END START

206 第五章中断系统

207 第一节中断的基本概念 一 CPU 与外设之间的数据传送控制方式 ( 即 I/O 控制方式 ), 通常有以下三种 : 程序控制方式 中断方式 DMA 方式 (Direct Memory Access) 程序控制方式 : 是在 CPU 的控制下, 通过执行程序指令进行的数据传送方式 又分为 无条件传送 和 程序查询传送 两种方式

208 程序控制方式 无条件传送方式 : 是在假定外围设备 (Peripheral Device) 已经准备好的情况下, 直接利用输入 / 输出指令 (IN 指令,OUT 指令 ) 与外围设备传送数据, 而不去检测外设的工作状态 优点 : 控制程序简单 缺点 : 数据传送不可靠 程序查询方式 ( 也称 条件传送 方式 ) 主要特点 :CPU 通过执行程序不断读取并检测外设的状态, 只有在外设确实已准备就绪的情况下, 才进行数据传送 ; 否则, 还要继续不断地查询外设的状态

209 程序控制方式 查询式输入 输出程序流程图 读取状态信息 读取状态信息 否 准备好? 是 忙? 是 否 输入数据 输出数据

210 程序控制方式 程序查询传送方式比无条件传送方式要准确可靠, 但在此种方式下,CPU 要不断查询外设的状态, 占用了大量 CPU 时间, 而真正用于数据传送的时间却很少, 即 CPU 的工作效率很低 ; 另外, 采用这种方式, 也很难满足实时系统对 I/O 处理的要求 因此, 出现了中断控制方式

211 二中断方式 中断定义 : 在程序运行中, 出现了某种紧急事件,CPU 必须中止现行程序, 转去处理此紧急事件 ( 执行中断服务程序 ), 并在处理完毕后再返回运行程序的过程 ( 参见 P117) 中断的全过程及有关概念 : 一个完整的中断过程包括 : 中断请求 ; 中断判优 ; 中断响应 ; 中断处理 ; 中断返回.

212 二中断方式 中断请求 是指中断源 ( 引起中断的事件或设备 ) 向 CPU 发出的请求中断的要求 ; 当有多个中断源发出中断请求时, 需要通过适当的办法 ( 软件的 ; 硬件的 ; 软 硬件结合的 ) 决定究竟先处理哪个中断请求, 这就是 中断判优 ; 中断响应 是指 CPU 中止现行程序转至中断服务程序的过程 ; 中断处理 就是指 CPU 执行中断服务程序 ; 执行完中断服务程序后, 返回到原先被中断的程序称为 中断返回 为了能正确返回到原来程序被中断的地方 ( 也称断点 - 即主程序中当前指令下面一条指令的地址 ), 在中断服务程序的最后应专门放置一条中断返回指令 另外, 为了使主程序在返回后仍能从断点处继续执行, 还需要在中断服务程序的开头 - 保护现场 ( 通过 PUSH 指令实现 ), 在中断服务程序的末尾 - 恢复现场 ( 通过 POP 指令实现 )

213 三中断响应和处理过程 需要指出, 对于不同的中断类型 ( 如可屏蔽中断 不可屏蔽中断 ; 外部中断 内部中断 ), 处理器 (CPU) 进行响应和处理的具体过程并不完全相同 ; 另外, 就是对同一种中断类型 ( 如可屏蔽中断 ), 不同的处理器 ( 如 Z80,80X86) 进行响应和处理的过程也不尽相同 书中 P118 一般地概括了六步 (1~6) 对他们的具体理解可通过下一节 8086/8088 系统的中断响应和处理过程 来进一步加深

214 三中断响应和处理过程 简要解释 1,2,3,4,5,6 其中, 前 3 项一般由硬件 ( 处理器内部 ) 完成 ; 而后 3 项一般是由软件 ( 由程序设计者编写的中断服务程序 ) 来完成, 即整个中断响应和处理过程是由 CPU 内部的有关硬件和中断处理软件密切配合, 共同完成的 针对一个具体的系统 ( 机型 ), 中断服务程序设计者应该清楚在中断响应时, 硬件 完成了哪些操作 ( 如 FR 是否已被压入堆栈 ), 还需要 软件 ( 中断服务程序 ) 完成哪些操作

215 四中断优先级和中断嵌套 1. 中断优先级 (Priority) 的解决方法 系统中多个中断请求可能同时出现,CPU 只能按一定的次序 ( 优先级策略 ) 予以响应和处理, 这个响应的次序称为中断优先级 一般的方法有 : 软件查询法 ( 需要少量硬件 ) 菊花链 (daisy chain) 优先级排队电路 可编程中断控制器 ( 如 8259)

216 (1) 软件查询法 INT 或 端口号 = XXH 磁盘 磁带 CRT 把各个外设的中断请求信号 相或, 产生一个总的 INT 信号 当 CPU 响应中断后, 进入中断处理程序, 在中断处理程序的开始部分安排一段带有优先级的查询程序 优点 : 省硬件 缺点 : 中断响应慢 键盘 打印

217 (2) 菊花链优先级排队电路 * 设备 1 设备 2 设备 3 CPU INTA INTR 中断回答 接口 菊花链逻辑电路 接口 接口 中断请求 INT1 INT2 INT3 +5V INT1+INT2+INT3 集电极开路门 (OC 门 )

218 (2) 菊花链优先级排队电路 INTR=INT1+INT2+INT3 中断请求 当 INTA 信号沿菊花链行进时, 最靠近 CPU 并发出 INT 请求的接口将首先拦截住 INTA 信号, 并送出中断类型码, 进入相应的中断处理程序 ; 在服务完成后撤销其请求 ( 解除对下一级的阻塞和封锁 ) INTA INTR (3) 可编程中断控制器 ( 如 8259)

219 2. 中断嵌套 通常, 正在执行较低级的中断服务程序时, 可以响应较高级的中断请求, 而将正在处理的中断暂时挂起, 称为中断嵌套 STI.. STI IRET. IRET 可实现 多重嵌套

220 第二节 8086/8088 的中断系统 一. 中断的分类 : 在 8086/8088 系统中, 可将中断分为两大类 ( 如图 5.1 所示 ): 第一类 : 硬件中断 : 是由外部的中断请求信号启动的中断, 也称为外部中断 又可分为 : 非屏蔽中断 NMI: 整个系统只有一个, 不受 IF 屏蔽 可屏蔽中断 INTR: 受 IF 屏蔽, 在中断控制器 8259 的统一管理下, 可屏蔽中断可有几个至几十个

221 中断的分类 ( 注意, 这里的 IF 是 CPU 内部的标志寄存器的 IF 位, IF=0, 则对所有从 INTR 引脚进入的中断请求均不予响应 ( 总开关 ); 另外, 也可以在 CPU 外部的中断控制器 (8259) 中以及各个 I/O 接口电路 ( 如 8255) 中对某一级中断或某个中断源单独进行屏蔽 ) 第二类 : 软件中断 : 是由 CPU 内部的标志状态 ( 如 TF OF) 或执行一条中断指令 (INT n), 以及除数为 0 引起的中断, 也称为内部中断

222 二中断向量和中断向量表 所谓中断向量, 即中断服务程序的入口地址 中断向量表是存放中断向量 ( 中断服务程序入口地址 ) 的一个特定的内存区域 ( 最低地址区 ). 一个中断向量占 4 个字节单元, 其中 : 低地址的两个字节单元存放中断服务程序入口地址的偏移量 (IP)- 低字节在前 ( 低地址 ), 高字节在后 ( 高地址 ); 高地址的两个字节单元存放中断服务程序入口地址的段地址 (CS)- 低字节在前 ( 低地址 ), 高字节在后 ( 高地址 )

223 中断向量和中断向量表 8086/8088 的中断向量表如书 P120 图 5.2 所示 解释 : 8086/8088 可以处理 256 种中断, 对每种中断都指定一个中断类型号 ( 也称中断向量号 ), 每个中断类型号与一个中断服务程序的入口地址相对应 256 个中断向量要占 256*4=1024 个字节单元, 地址编号从 00000H~003FFH 5 个专用中断 ( 类型 0~ 类型 4), 它们有固定的定义和处理功能 ; 27 个保留的中断 ( 类型 5~ 类型 31) 占 0000:0014H~ 0000:007FH, 共 108 个字节单元 这个区域供系统使用, 不允许用户自行定义 224 个用户可定义的中断 ( 类型 32~ 类型 255) 占 0000:0080H~0000:03FFH 单元 ; 使用时, 要由用户自行填写相应的中断入口地址 ( 其中有些中断类型已经有了固定用途, 例如, 类型 21H 的中断已用作 MS-Dos 的系统功能调用 )

224 中断向量和中断向量表 由于中断向量在中断向量表是按中断类型号顺序存放的, 所以每个中断向量的地址可由中断类型号 4 计算出来 CPU 响应中断时, 需把中断类型号 N 乘以 4, 得到中断向量的对应地址 4N( 该中断向量所占 4 个字节单元的第一个字节单元的地址 ), 然后把由此地址开始的两个低字节单元的内容装入 IP 寄存器 :IP (4N,4N+1), 再把两个高字节单元的内容装入 CS 寄存器 : CS (4N+2,4N+3), 这就是转入中断类型号为 N 的中断服务程序的控制过程 [N 的来源, 对于不同的中断类型 ( 内部, 外部 :NMI INTR) 情况有所不同, 详见后述 ]

225 中断向量和中断向量表 例 1: 若中断类型号为 3, 则由中断类型号取得中断服务入口地址的过程如下图所示 : 中断类型号 3 4 =000CH 00000H 00001H 0000CH (0000:000CH) 1EA00H (1E00:0A00H) 内存. 00(IP L ) 0A(IP H ) 00(CS L ) 1E(CS H )... 中断服务程序 FFFFFH 低地址 高地址 1E00 0 H + 0A0 0 H 1EA0 0 H

226 中断向量和中断向量表 例 2. 中断类型号为 20H, 中断服务程序的入口地址存放在 0000:0080H 开始的 4 个单元中 若 : (0080H)=10H (0081H)=20H (0082H)=30H (0083H)=40H 则 : 中断服务程序的入口地址为

227 中断向量和中断向量表 例 3. 中断类型号为 23(17H), 中断服务程序的入口地址为 :2340:7890H, 由于中断类型号 17H 对应的中断向量存放在 0 段的 0000:005CH(17H 4=5CH) 处, 所以有 : (005CH)= (005DH)= (005EH)= (005FH)= 左移 2 位 : B B 5 C H

228 三 8086/8088 中断处理流程图 结束当前指令 (1) 内部自动提供类型码 除法错,INT n,int0? Y (1) 读中断类型码 (2) (3) FR-> 栈 TF-> 暂存器 N NMI? Y 响应中断 (4) 0->TF 和 IF N (5) CS IP-> 栈 INTR? N IF=1? N (4N,4N+1)->IP (4N+2,4N+3)->CS N TF=1? 执行下一条指令 有 NMI? N 暂存器 =1? N Y Y 执行中断服务程序 执行 IRET 指令 ( 弹出 CS,IP,FR)

229 8086/8088 中断处理流程图 *8086 中断优先级 (Priority) 说明 : (1)~(5) 步是 CPU 的内部处理 ( 由硬件自动完成 ) 所有内部中断 ( 除法错 INT n INT0 单步 ) 以及 NMI 中断不需要从数据总线上读取中断类型码, 而 INTR 中断需读取中断类型码, 中断类型码由发出 INTR 信号的接口提供 中断除法错,INTn,INT0 NMI INTR 单步中断 优先级 最高 最低

230 单步运行方式时发生中断的处理过程 IF=1 TF=1 执行 DIV 或 IDIV 指令 发生除法错 2010H:4030H 执行下一条指令 H:7060H 除法错中断识别形成类型码 00H 执行除法错处理程序 ; 执行 IRET 指令, 弹出 CS IP FR FR-> 栈,TF-> 暂存器清 IF,TF CS,IP-> 栈 (0,1)->IP (2,3)->CS 单步中断识别形成类型码 01H FR-> 栈,TF-> 暂存器清 IF,TF CS,IP-> 栈 (4,5)->IP (6,7)->CS 执行单步中断服务程序, 执行 IRET, 弹出 CS,IP,FR

231 单步运行方式时发生中断的处理过程 堆栈的情形 : 低地址高地址 (FR) (FR) IP CS TF=0 IP CS TF=1 作业 : 画出在单步运行时 (TF=1) 发生 INTR 中断的处理流程及堆栈的情形 假定当前指令下一条指令的地址为 4030H:2080H;INTR 中断服务程序的入口地址为 9080H:3020H.

232 四软件中断 ( 内部中断 ) 除法错中断 ( 也称除数为 0 中断 )- 类型 0 在执行 DIV( 无符号除法 ) 或 IDIV( 带符号除法 ) 指令时, 若发现除数为 0, 则立即产生一个类型号为 0 的内部中断,CPU 转向除法错中断处理程序 溢出中断 - 类型 4 若上一条指令执行的结果使溢出标识位 OF 被置 1, 则接着执行 INTO 指令时, 将引起类型为 4 的内部中断,CPU 转入对溢出错误处理程序, 若 OF=0 时, INTO 指令执行空操作, 即 INTO 指令不起作用 INTO 指令通常安排在算术指令之后, 以便在溢出时能及时处理 例如 :

233 软件中断 主程序 :... ADD AX,BX; 若 OF=1 INTO 溢出中断服务程序 : IRET 软件 ( 指令 ) 中断 ( 执行 INT n 指令引起的中断 ) 双字节指令, 第一个字节为操作码 ; 第二个字节为中断类型号, 该指令控制 CPU 转向相应的中断服务程序

234 软件中断 断点中断 - 类型 3 INT3 或简写为 INT, 是单字节指令 调试程序时可以在一些关键性的地方设置断点, 使 CPU 在此断点处执行中断服务程序 单步中断 - 类型 1 TF=1.. 单步执行

235 软件中断 ( 内部中断 ) 的特点 中断类型号由 CPU 内部自动提供 ( 包括由中断指令第二字节提供的中断类型号 ), 不需去执行中断响应总线周期读取中断类型号 除单步中断外, 所有内部中断 ( 除法错, INTO,INT n) 均不可以用软件来屏蔽 除单步中断外, 所有内部中断都比外部中断优先级高

236 五中断服务程序的一般结构 保护现场 ( 将需要保护的寄存器压入堆栈 ) STI( 可选 ); 例如 : PUSH AX PUSH BX 恢复现场 IRET 中断处理 PUSH CX POP CX POP BX POP AX

237 ** 指令系统中没有单独置 1 或清 0 TF 的指令, 可实现如下 : 1->TF PUSHF; FR 的内容压入堆栈 0->TF POP AX; FR 的内容弹出到 AX OR AX,0100H; 使 AX 中对应 TF 的位置为 1, 其他位不变 PUSH AX; 修改后的 AX 内容压入栈 POPF 弹回到 FR(TF=1) PUSHF POP AX AND AX, PUSH AX; POPF

238 第三节可编程中断控制器 8259A (8259A Programmable Interrupt Controller-PIC) Intel 8259A 用于管理和控制 80x86 的外部中断请求, 实现优先级判决, 提供中断矢量码, 屏蔽中断输入等功能 使用单片 8259A 可以管理 8 级中断, 采用级联方式, 可扩充到 64 级 ( 用 9 片 8259A)

239 可编程中断控制器 8259A. CPU INTR INTA 8259A INT INTA... IR 0 IR 7 中断请求 CPU INTR INTA 8259A 主..... IR 0 IR A. IR 0 从.. IR A. IR 0 从.. 单片 级联 IR 7

240 可编程中断控制器 8259A 一 8259A 的引脚功能 封装形式 28 脚双列直插 (28-pin DIP),DIP:Dual-In-Line Package, 如图 5.7 所示

241 可编程中断控制器 8259A CS WR RD D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 CAS A CAS 1 GND V CC A 0 INTA IR 7 IR 6 IR 5 IR 4 IR 3 IR 2 IR 1 IR 0 INT SP/EN CAS 2

242 可编程中断控制器 8259A CS -- 片选信号 (Chip Select) 低电平有效, 来自地址译码器的输出只有有效时,CPU CS 才能对 8259A 进行读写操作 WR-- 写信号, 低电平有效, 来自 CPU 的输出 ; WR当有效且 CS有效时, WR使 8259A 接受 CPU 送来的命令字 RD -- 读信号, 低电平有效, 来自 CPU 的输出 ; RD且有效且有效时, 使 8259A 将状态信 CS RD 息放到数据总路线上, 供 CPU 检测

243 可编程中断控制器 8259A D 7 ~ D 0 : 双向数据总线, 接到系统数据总线的 D 7 ~ D 0 上, 用来传送控制字 状态字和中断类型号 IR 7 ~IR 0 : 中断请求信号, 输入, 来自外部接口电路 ( 单片时 ) INT: 向 CPU 发出的中断请求信号 ( 单片时 ) INTA : 中断响应信号, 由此接收 CPU 发来的中断响应脉冲

244 可编程中断控制器 8259A A 0 : 地址输入信号, 用于对 8259A 内部寄存器的寻址 CAS 2 ~ CAS 0 : 级联线 (CASCADE LINES), 传送 3 位标识码, 用于区分特定的从控制器 双向 : 对于主片为输出, 对于从片为输入 SP/ EN : 从片 / 允许缓冲器信号 双功能引脚 : 作为输入时,8259A 作为主片 ( SP/ EN =1) 8259A 作为主片 ( SP/ EN =0) 见 P130 图 5.9 作为输出时, 用来启动 ( 允许 ) 数据总线收发器 ( 如 8286) * 究竟是作为输入还是输出, 取决于 8259A 是否工作于 缓冲方式 ( 即 8259A 是否通过一个 数据总线收发器 与系统总线相连 ) 详见后面 ICW 4 的格式

245 二 8259A 的内部结构 CPU SP/EN CAS 0 CAS 1 AD 7 ~AD 0 D 7 ~D 0 RD WR ISR ICW 1 PR IRR OCW 1 (IMR) CAS 2 IR 0... IR 7 A 0 ICW 2 OCW 2... 地址译码 CS INTA INTA ICW 4 INTR INT ICW 3 OCW 3

246 8259A 的内部结构 IRR Interrupt Request Register PR---Priority Resolver ISR---In-Service Register IMR---Interrupt Mask Register ICWs---Initialization Command Words OCWs---Operation Command Words 7 个 CPU 可访问的寄存器, 分两组 : 初始化命令字 ICW 1 ~ICW 系统初启时设定 操作命令字 OCW 1 ~OCW 3 系统运行时, 由应用程序设定 ( 实现对中断处理的动态管理和控制 ). The OCWs can be written into the 8259A anytime after initialization.( 手册 P6-137)

247 8259A 的内部结构 7 个寄存器的寻址问题 : 规定 :A ICW 4 : 用偶地址写入, 且 D 4 =1 ICW 2 ICW 3 ICW 4 紧接着 ICW 1, 用奇地址写入 即 : OCW 1 : 也用奇地址写入, 但不紧跟 ICW 1 OCW 2 也用偶地址写入, 但 D OCW 4 = D 4 D 3 ICW OCW 2 OCW 3 采用了专门的 标识位, 以节省输入地址的引脚数 ( 仅用了 A 0 )

248 8259A 的内部结构 8259A 的处理部件 : 中断请求寄存器 IRR-8 位寄存器 + 控制逻辑 作用 : 接受并锁存来自 IR 0 ~IR 7 的中断请求信号 中断服务寄存器 ISR 作用 : 保存当前正在处理的中断请求 优先级裁决器 PR 作用 : 把新进入的中断请求和当前正在处理的中断进行比较, 以决定哪一个优先级更高

249 8259A 的内部结构 处理过程 : IR 0 ~IR 7 上出现某一中断请求信号 ->IRR 对应位被置 1 -> 由 IMR 的相应位决定是否将其屏蔽 ( 屏蔽位 =1, 不通过 ; 屏蔽位 =0, 通过 )-> 中断请求进 PR->PR 把新进入的中断请求和当前正在处理的中断进行优先级比较 -> 若新进入的中断优先级高, 该中断请求被送到 CPU 若 CPU 的 IF=1,CPU 完成当前指令后, 响应中断, 在 INTA引脚上发出两个负脉冲 ( 执行两个中断响应总线周期, 参见 P122 图 5.4):

250 8259A 的内部结构 处理过程 ( 续 ): 8259A 收到第一个负脉冲后 使 IRR 锁存允许, 不予接受 IR 0 ~IR 7 上的中断请求信号 ; 直到第二个负脉冲结束后, 才又使 IRR 锁存禁止 ( 输入输出透明 ) 使 ISR 的相应位置 1, 以便为优先级裁决器以后的裁决提供依据 清除 IRR 的相应位 8259A 收到第二个负脉冲后 : 把中断类型码寄存器的内容 (ICW 2 的内容 ) 送到 D 7 ~D 0 如果 ICW 4 的 AEOI 位为 1, 则在第二个 INTA 脉冲结束时, 将 ISR 中被第一个 INTA 脉冲置 1 的位清除 ( 自动结束 ); 否则, 要等到中断结束命令 (EOI) 发送后才能清除

251 三 8259A 的工作方式 1. 设置优先级的方式 (1) 全嵌套方式 (FULLY NESTED MODE) 也称固定优先级方式 在这种方式下, 由 IR i 引入的中断请求具有固定的优先级 -IR 0 ( 最高 )->IR 7 ( 最低 ). This mode is entered after initialization unless another mode is programmed. 当一个中断请求被响应时,ISR 中的对应位 IS n 被置 1, 8259A 把中断类型码放到数据总线上, 然后, 进入中断服务程序 一般情况下 ( 除了 中断自动结束 方式外 ), 在 CPU 发出中断结束命令 (EOI) 前, 此对应位一直保持为 1 - 封锁同级或低级的中断响应, 但并不禁止比本级优先级高的中断响应 - 实现中断 嵌套

252 8259A 的工作方式 (2) 特殊全嵌套方式 (SPECIAL FULLY NESTED MODE -SFNM) 在处理某一级中断时, 不但允许优先级更高的中断请求进入, 也允许同级的中断请求进入 用于主从结构的 8259 系统中, 将主片设置为 特殊全嵌套方式 通过 ICW 4 的 SFNM 位可以设置此种方式 ( 参见 p132) 8259( 主片 ) 8259( 从片 ) IR 0 IR 1 IR 0 IR 1 CPU IR 7 IR 7

253 8259A 工作方式 (3) 优先级自动循环方式 (AUTOMATIC ROTATION) 优先级是循环变化的 ( 不希望有固定的优先级差别 )- 一个设备的中断服务完成后, 其优先级自动降为最低, 而将最高优先级赋给原来比它低一级的中断请求 开始时, 优先级队列还是 :IR 0 ->IR 7, 若此时出现了 IR 0 请求, 响应 IR 0 并处理完成后, 队列变为 : IR 1,IR 2,IR 3,IR 4,IR 5,IR 6,IR 7,IR 0 若又出现了 IR 4 请求, 处理完 IR 4 后, 队列变为 : 系统中是否采用 自动循环优先级, 由 操作命令字 OCW 2 来设定 ( 参见 p132, P133) IR 7 IR 6 IR 5 IR 0 IR 4 IR 1 IR 2 IR 3

254 8259A 的工作方式 (4) 优先级特殊循环方式 (SPECIFIC ROTATION) 与 优先级自动循环方式 相比, 只有一点不同, 即可以设置开始的最低优先级 例如, 设定 IR 4 为最低优先级, 那么 IR 5 就是最高优先级, 其余各级按循环方法类推 (OCW 2 : 110 )

255 8259A 的工作方式 2. 屏蔽中断源的方式 ( 中断屏蔽方式 ) 普通屏蔽方式 通过对中断屏蔽寄存器 (IMR) 的设定, 实现对相应位为 1 的中断请求的屏蔽 可通过 OCW 1 使 IMR 的一位或几位置 1 * 特殊屏蔽方式 (SPECIAL MASK MODE) 作用 :P129 实现 : 输出 OCW 3 (ESMM=1,SMM=1) 输出 OCW 1 ( 使 IMR 对应于本级的位为 1 ) 中断级无效 输出 OCW 1 ( 使 IMR 对应于本级的位为 0 ) 输出 OCW 3 (ESMM=1,SMM=0) 设置 撤销

256 8259A 工作方式 3. 中断结束方式 (END OF INTERRUPT-EOI) (1) 中断自动结束方式 (AUTOMATIC-AEOI 方式 ) 在第二个 INTA 后沿, 即完成把对应的 ISR 位复位 注意 :AEOI 方式是在中断响应后, 而不是在中断处理程序结束后将 ISR 位清 0 这样, 在中断处理过程中,8259A 中就没有 正在处理 的标识 此时, 若有中断请求出现, 且 IF=1, 则无论其优先级如何 ( 比本级高 低或相同 ), 都将得到响应 尤其是当某一中断请求信号被 CPU 响应后, 如不及时撤销, 就会再次被响应 - 二次中断 所以,AEOI 方式适合于中断请求信号的持续时间有一定限制以及不出现中断嵌套的场合 通过 ICW 4 可以设置 AEOI 方式 (AEOI=1)

257 8259A 工作方式 (2) 一般 ( 常规 ) 中断结束方式 适合于全嵌套方式 实现 : 在中断服务程序结束时, 向 8259A 发常规中断结束命令 (OCW 2 :EOI=1,SL=0,R=0) 例 :MOV AL,20H; OCW 2 =20H OUT 20H,AL; 端口地址 =20H( 偶地址 ) 在全嵌套方式下,ISR 中最高优先级的置 1 位, 正对应于当前正在处理的中断, 将其清 0, 就完成了当前正在处理中断的结束操作 IR 0 IR

258 8259A 工作方式 (3) 特殊中断结束方式 (SPECIFIC EOI-SEOI) 在非全嵌套方式下, 无固定的优先级序列 ( 使用设置优先权命令或特殊屏蔽方式 ), 此时, 根据 ISR 的内容就无法确定刚刚所响应 ( 处理 ) 的中断 这种情况下, 就不能用上述的 EOI 方式进行中断结束处理, 而必须用特殊的中断结束命令 SEOI-- 用 OCW 2 :EOI=1,SL=1,R=0,L 2 ~L 0. 由 L 2 ~L 0 指定清除 ISR 中的哪一位

259 8259A 工作方式 4. 中断触发方式 电平触发方式 : 由 IR i 上的有效电平来触发 中断请求触发器 边沿触发方式 : 由 IR i 上由低电平向高电平的跳变来触发 中断请求触发器 由 ICW 1 的 LTIM 位可以设置中断触发方式

260 8259A 工作方式 5. 连接系统总线的方式 缓冲方式 (ICW 4 的 BUF=1) 8259A 通过总线驱动器 ( 如 8286) 和数据总线相连 在缓冲方式下,8259A 的 SP / EN 作为输出 ( EN有效 ), 此 时, 由 ICW 4 的 M/S 位来定义 ( 标识 ) 本 8259A 是主片还是从片 非缓冲方式 (ICW 4 的 BUF=0) 即 8259A 直接与数据总线相连 在 非缓冲方式下,8259A 的 SP / EN 作为输入 ( SP 有效 ) 此时, 由 SP / EN 端来标识本 8259A 是主片还是从片 在 非缓冲方式下,ICW 4 的 BUF=0,M/S 位无意义

261 8259A 工作方式 * 中断查询 方式 特点 : 总的说, 既有中断的特点, 又有查询 (Polling) 的特点 外设仍然向 8259A 发中断请求信号, 要求 CPU 服务 CPU 的 IF=0, 不响应外部的中断请求 ( 对 CPU 的中断请求信号不起作用 ) 此时,CPU 需要用软件查询方法来确认中断源, 从而实现对设备的服务 先向 8259A 发查询命令 (poll command) OCW 3 : P 0 0

262 8259A 的工作方式 紧接着执行一条读指令 (IN 指令 ), 读出专门的 中断状态字 : A 0 D 7 D 0 0 IR W2 W1 W0 1: 有设备请求服务 ; 0: 无设备请求服务 当前最高优先级的中断请求 当 8259A 收到 P=1 的查询命令后, 在下一个 RD 信号将使 ISR 的相应位置 1, 就像收到了 INTA 一样, 并把上述的 中断状态字 送到数据总线上, 由 CPU 读入 AL

263 四 8259A 的级联使用

264 五 8259A 的控制字及编程使用 1. 初始化命令字 ICW 1 ~ICW 4.( 详见 P131) 8259A 的初始化流程 : NO(SNGL=1) ICW 1 ICW 2 级联方式? ICW 3 YES(SNGL=0) NO(IC 4 =0) 需 ICW 4? YES(IC 4 =1) ICW 4 准备接受中断请求

265 8259A 的控制字及编程使用 8259A 初始化编程举例 (P134 下 ) A 的操作命令字 OCW 1 ~OCW 3 (P 132 ) 3. 关于 8259A 的读出操作, 可以读四个方面的内容 读 中断状态字 ( 查询字 ): 先写入 P=1 的 OCW 3 查询命令字 用偶地址读 (IN AL,20H) 读 IRR: 先写入 OCW 3 (RR=1,RIS=0) 用偶地址读 (IN AL,20H) 读 ISR: 先写入 OCW 3 (RR=1,RIS=1) 用偶地址读 (IN AL,20H) 随时可用奇地址读 IMR (IN AL,21H) 例 1: IN AL,21H ; 读 IMR AND AL,7FH ; 开放 IR 7 中断 OUT 21H,AL 例 2: IN AL,21H ; 读 IMR OR AL,80H ; 关闭 IR7 中断 OUT 21H,AL

266 8259A 的控制字及编程使用 (1) 设置中断向量 把由 AL 指定的中断类型的中断向量 DS:DX 放置在中断向量表的相应位置中 AH=25H 执行 :INT 21H AL= 中断类型号 DS:DX= 中断向量 (2) 取中断向量 把由 AL 指定的中断类型的中断向量从中断向量表中取到 ES:BX 中 预置 : AH=35H 执行 :INT 21H AL= 中断类型号 返回 : ES:BX= 中断向量

267 8259A 的控制字及编程使用 例 : 使用 DOS 功能调用存取中断向量. MOV AL,N; type N Interrupt MOV AH,35H; get Interrupt vector INT 21H; PUSH ES; save the old base and PUSH BX; offset of interrupt N PUSH DS; MOV AX,SEG INTHAND; MOV DS,AX; base of INTHAND in DS MOV DX, Offset INTHAND; offset in DX MOV AL, N; MOV AH, 25H; Set Interrupt Vector INT 21H; POP DS;

268 8259A 的控制字及编程使用 POP DX; POP DS; MOV AL,N; MOV AH,25H; INT 21H; RET ; restore the old offset and base of interrupt set interrupt vector return INTHAND:. Interrupt Processing Routine IRET

269 第五章作业 1. 画出在单步运行时 (TF=1) 发生 INTR 中断的处理流程及堆栈的情形 假定当前指令下一条指令的地址为 4030H:2080H;INTR 中断服务程序的入口地址为 9080H:3020H. 2. P135 (7) 3. P135 (8)

270 第六章微型计算机存储 器

271 第一节存储器概述 一 存储器的分类 存储器是计算机系统中用来存储信息的部件, 它是计算机中的重要硬件资源 从存储程序式的冯. 诺依曼经典结构而言, 没有存储器, 就无法构成现代计算机 1 按存取速度和在计算机系统中的地位分 类

272 内存 :CPU 可以通过系统总线直接访问的存储器, 用以存储计算机当前正在使用的程序或数据 内存要有与 CPU 尽量匹配的工作速度, 容量 较小, 价格较高 内存由顺序编址的存储单元构成, 开始的地

273 外存 : 用来存放相对来说不经常使用的程序或者数据或者需要长期保存的信息 CPU 需要使用这些信息时, 必须要通过专门的设备 ( 如磁盘, 磁带控制器等 ) 把信息成批的传送至内存来 ( 或相反 ) 外存只与内存交换信息, 而不能被 CPU 直接访问 外存由顺序编址的 块 所组成 外存的容量大 ( 海量存储器 ), 但由于它多

274 2 按存储介质分类 : 磁芯存储器 ; 半导体存储器 ; 磁表面存储器 ( 如磁带, 磁盘, 磁鼓, 磁卡等 ); 光盘存储器 (CD-ROM); 磁光式存储器 ( 用磁光材料 );

275 * 只读型光盘 (CD-ROM:Compact Disk -Read Only Memory)

276 3 按存取方式分类 : 随机存储器 (RAM) 只读存储器 (ROM) 顺序存取存储器 (SAM-Sequential Access Memory), 如磁带

277 二 存储器的性能指标 编址单元总数为 -- 2 p 1 存储容量: 设地址线位数为 p, 数据线位 数为 q, 则 : 编址单元总数为 位容量总数为 *q 2 存取速度: 存取时间 (Access Time) 存取周期 (Memory Cycle) 2 p

278 * 存储系统的层次结构 : 应用需要 : 存取速度快 存储容量大 价格 / 位低 但由于技术的或经济的方面原因, 存储器的这些特性往往是相互矛盾 相互制约的 用一种存储器很难同时满足这些要求 为了发挥各种不同类型存储器的长处, 避开其弱点, 应该把他们合理地组织起来, 这就出现了存储系统层次结构的概念

279 金字塔结构 :

280 可将整个存储系统看成三级 : 高速缓存 主存 ( 内存 ) 外存 ( 辅存 ) 也可看成两个二级系统 : 1 高速缓存 - 主存 ( 一级 ) 2 主存 - 外存 ( 一级 ) 请注意 :

281 另外, 这两级存储系统的数据通路和控制方式也不相同 : 高速缓存 - 主存的通路是 : 主存 - 外存的通路是 :

282 第二节半导体存储器 半导体存储器的分类情况 ( 图 6-1) 其中 : RAM 属挥发性 ( 易失性 )(Volatile) 存储 器 - 电源切断后, 信息消失

283 一 RAM 1 静态 RAM(SRAM-Static RAM) (1) 静态 RAM 的基本存储单元 (Cells) ( 见图 6.2) ( 2 ) 静态 RAM 芯片举例 :6116-2K 8 高 速静态 CMOS RAM 存储器

284 SRAM 的主要特点 :P138 下 2 动态 RAM(DRAM-Dynamic RAM) (1) DRAM 的基本存储单元 (DRAM 的 主要特点 ) (2) DRAM 芯片举例 (3) DRAM 刷新控制逻辑 ( 图 6.11)

285

286 二 只读存储器 ROM 1 掩膜式 ROM: 由制造厂家对芯片图形 ( 掩膜 ) 进行二次光刻而制成 用户不能修改写入的内容 少量生产时, 价格较高 2 PROM(Programmable ROM): 由用户一次性写入, 一旦写入就无法修改 3 EPROM(Erusable PROM) (1) EPROM 基本存储单元 (2) EPROM 芯片举例 (2764A)

287 中国系统分析员 (

288 3.5 Memory System Design Using ICs Memory system designers use commercially available RAM chips to design larger memory systems:the major steps in such memory designs are the following: 1 Based on speed and cost parameters,determining the types of memory ICs(static or dynamic) to be used in the design.

289 4 Arranging the above N ICs in a P*Q matrix,where Q=(number of bits per word in memory system)/(number of bits per word in the ICs) and P=N/Q. 5 Designing the decoding circuitry to selcet a unique word corresponding to each address. We have not addressed the issue of memory control in this design procedure.the control unit of the computer system,of which the memory is a part,should produce control

290 The following example illustrates the design. 4 K 8 Example 3.4 Design 1 K a 4K*8 4 memory.using Intel 2114 RAM chips Number of chips needed = Total memory capacity/chip capacity = =8

291 4 The 2114 has 10 address lines.the least significant 10 bits of the memory system MAR are connected to the 10 address lines of each 2114.A 2-to-4 decoder is used to decode the most significant two bits of the MAR,to select one of the four rows of 2114 chips through the CS signal on each 2114 chips. 5 I/O lines of chips in each row are connected to the MBR.Note that these I/O lines are configured as tristate.the WE lines of all the 2114 chips are tied together to form

292 The memory system is shown in Figure 3.25.Note that the number of bits in the memory word can be increased in multiples of 4 simply by including additional columns of chips.if the number of words needs to be extended beyond 4K, additional decoding circuitry will be needed.

293 高速缓存技术

294 Of Reference) 对大量典型程序的运行情况的分析结果表明, 在一个较短的时间间隔内, 由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内 指令地址的分布本来就是连续的, 再加上循环程序段和子程序段要重复执行多次 因此对这些地址的访问就自然具有时间上集中分布的特性 数据分布的这种集中倾向不如指令明显, 但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中 这种对局部范围的存储地址频繁访问, 而对此范围以外的访问甚少的现象, 称为 程序访问的局部性 [ 程序访问的局部性是 Cache 技术的基本依据 ]

295 2. 为什么要采用高速缓存?[ 为什 么要在 CPU 和主存之间加 Cache] 前已提及 : 为了提高 CPU 访问主存的速度 或 : 为了解决 CPU 与主存之间的速度匹配问题 早期计算机的 CPU 与主存的工作速度较为接近, 如 IBM 904,CPU 的机器周期 ( 即总线周期 ) 为 12us, 而主存的存取周期也是 12us, 此时主存的速度并不影响整机的运算速度 后来, 随着计算机各部件的器件和工艺的发展,CPU 的速度比主存的速度提高得快 这主要是由于 CPU 采用快速的数字逻辑器件构成, 使其机器周期可达几十 ns( 如 33MHz 的 80386, 一个总线周期为 60ns); 而主存则由于容量大 寻址系统 读写电路复杂等因素, 使其存取周期只缩减到几百 ns( 目前动态存储器 DRAM 的存取周期为 100ns) 两者相差较大 CPU 必须插入等待状态, 才能实现对 DRAM 的正常访问

296 静态 RAM(SRAM) 的速度虽很快, 目前一般为 25ns, 但 SRAM 价格很贵 DRAM 则要便宜得多, 但速度慢 为了解决主存与 CPU 之间的速度匹配, 在 CPU 和主存之间增设一个容量不大, 但操作速度很高的存储器 高速缓存 目前,Cache 技术的着眼点, 就是用 SRAM 和 DRAM 构成一个组合的存储系统, 使它兼有 SRAM 和 DRAM 的优点 SRAM 的速度 ( 性能 ),DRAM 的价格 所以,32 位微型机系统普遍采用了 高速缓存 技术 在 系统中,Cache 在 CPU 片外, 对 和 Pentium 系统, 则采用 CPU 片内 Cache 技术

297 3. Cache 系统的基本组成 三个组成部分 :1Cache 模块 (SRAM)2 主存 (DRAM)3Cache 控制器 Cache (SRAM) CPU Main Memory (DRAM) Cache Controller Cache Memory System

298 在高速缓存系统中, 主存中保存着所在现行程序和数据,Cache 中保存着主存的部分副本 地址总线 拷进 Cache Loop 80386DX 控制 Loop 控制 主存 Cache 数据总线

299 当 CPU 访问存储器时, 给出的地址要同时送往 Cache 和主存, 首先检查 Cache, 如果要访问的数据已经在 Cache 中, 则 CPU 就能很快完成访问, 这种情况称为 Cache 命中 (Cache hit); 否则,CPU 就必须从主存中提取数据, 称为 Cache 失误 (Cache miss) 或 Cache 未命中 如果组织得好, 那么程序所用的大多数的数据都可在 Cache 中找到, 即在大多数情况下能命中 Cache Cache 的 命中率 (hit rate) 和 Cache 容量大小 Cache 的控制算法 Cache 的组织方式有关, 当然还和所运行的程序有关 在 系统中, 使用组织较好的 Cache 系统, 命中率可达 95%[IBM 360,99%] 命中率 = 命中次数访问次数 ( 即总线周期数 ) 100%

300 4. Cache 的组织方式 在 Cache 系统中, 主存总是以区块 ( 也有的称行 ---line) 为单位映象到 Cache 在 32 位微机系统中, 通常采用的区块长度为 4 字节, 即一个双字 CPU 访问 Cache 时, 如果所需要的字节不在 Cache 中, 则 Cache 控制器会把该字节所在的整个区块从主存复制到 Cache 按照主存和 Cache 之间的映象关系, 可将 Cache 的组织方式分为两种 : 一种称为 直接映象 (direct mapped); 另一种称为 两路组相联 (two way set associative)

301 直接映象组织方式, 见图 由图可见,Cache 存储阵列被安排成一个单一的 64K 字节存储体, 而主存被看成 64K 的页序列, 标为页 0~ 页 n 注意, 主存中的所有页的相同偏移量的存储单元 ( 图中标为 X(0)~X(n)), 均映象到 Cache 存储阵列中标为 X 的同一个存储单元 这就是说, 主存的一个 64K 字节页的每个单元映象到 Cache 存储阵列的各个对应单元

302 CACHE MEMORY X(n) 64 KB Of Memory 64 KB Of Memory X X(0) X(1) Page n Page 0 Page 1 Page 2 Main Memory Pages Figure Organization of a direct -mapped memory subsystem

303 两路组相联组织方式, 见图 由图可见,64K 字节的 Cache 存储阵列分成了两个 32K 字节的存储体, 即 Cache 被分为两路 : BANK A 和 BANK B 主存被看成大小等于 Cache 中一个 BANK 的页序列 但由于此时一个 BANK 32K 字节, 所以主存的页数是直接映象方式的两倍 这样, 主存每页中特定偏移量的存储单元, 可映橡到 BANK A 或 BANK B 的相同存储单元 例如,X(2) 单元可映象到 X(A), 也可映象到 X(B) 两路组相联的组织方式可导致较高的 Cache 操作命中率 缺点 :Cache 控制器较复杂

304 Bank A Bank B 32KB Of Memory 32KB Of Memory X(A) X(B) X(0) X(1) X(2) Page n Page 2 Page 1 Cache Memory Page 0 Main Memory Pages Figure Organization of a two -way set associative memory subsystem

305 5. Cache 控制器 是为 系统设计的性能优良的高速缓存控制器, 有 132 个引脚 由它完成对 Cache 系统的全部控制和管理, 其设计思想是很有代表性的 它对 Cache 系统的控制和管理体现在以下方面 : Cache 和主存的映象关系的处理 ; 未命中 Cache 时的处理 ; Cache 的数据更新 通过片内的 Cache 目录 ( 由 SRAM 电路构成 ) 实现外部的 32KB Cache 和 4GB(4 千兆字节 ) 主存之间的映象 该芯片有一个 2W / D 引脚, 用于选择 两路组相联 方式和 直接映象 方式 下面我们简要说明 工作于这两种方式时的原理和技术特点

306 (1) 控制的直接映象方式 Cache 系统 控制的直接映象 Cache 组织示意图如图 所示, 由图可见内部 Cache 目录 外部 Cache 及 GB 主存三者之间的关系 将 4GB 主存空间看成由一系列 32KB(8K 个双字 行 ) 的页组成 容易算出共有 :4GB 32KB=128K=2 17 页 从第 0 页 ~ 第 页, 页号需 17 位二进制表示 每页大小和 Cache 容量一样 把 Cache 分成 1024 组 (set), 每组含 8 行 (8 个双字 ), 一行是主存和 Cache 之间一次传输的信息量 Cache 的每一组对应一个 26 位的目录项,1024 个目录项组成一个 Cache 总目录 Cache 目录项中包含 17 位的 标记 (TAG),1 位 标记有效位,8 位 行有效位 标记 的值就是 32K 的页的页号 标记 用 17 位表示

307 标记有效位表示 Cache 中这一组的值是否有效 若该位为 0, 则整个组内 8 行的值均无效 ( 例如系统复位时, 所有目录项的标记有效位均清 0) 只有该位为 1 时, 这一组的行值才可能有效, 而某一个行值是否有效, 还要看对应的行有效位的值, 行有效位为 8 位, 一位对应一行 *80386 地址总线为 32 位, 可寻址范围为 2 32 字节 (4000M 字节 ) 把来自 引脚 A31~A2 输出的地址分为三部分, 如下图所示 :

308 数据读出过程 : 当 送来 32 位主存地址时,82385 便以其中的 10 位组地址从其内部 1024 个目录项中选择一个, 若 1 其标记与地址 A31~A15 相等 ;2 且标记有效位为 1;3 同时相应的行有效位也为 1, 则命中 从而使 Cache 中选定的双字送 数据总线, 完成一次存储器读操作 若其中有任一条件不符, 则表示不命中, 系统都会直接访问主存, 而且在数据送给 的同时写入 Cache 中, 接着修改 内部的相应目录项 : 如果是行未命中 ( 即 的高 17 位地址与 Cache 目录标记相等, 而且标记有效位为 1, 但行有效位为 0), 则目录修改过程很简单, 只需将对应的 行有效位 改为 1; 如果是标记未命中, 则目录修改包括将 A31~A15 的值写入目录项的标记中, 再将 标记有效位 置 1, 又将对应的 行有效位 置 1, 同时将其他 7 个 行有效位 清 0 以后, 再遇到这个目录项的 标记命中 而 行未命中 时, 只需将对应的 行有效位 置 1 即可

309 第 0 组 标记有效位 17 位标记行有效位 32 页面大小 = 32KB (8K 双字 ) 第 1 组... 第 1023 组 内部 cache 目录 SRAM 32KB ( 外部 cache) 页 千兆字节主存 图 直接映象 Cache 组织示意图 (82385)

310 (2) 控制的双路组相联方式 Cache 系统 控制的 双路组相联 方式的 Cache 目录 Cache 和主存之间的关系示意图如图 所示 主存仍为 4GB,Cache 为 32KB, 分为 A 路和 B 路, 每路 16KB 每个双字 (32 位 ) 为一行,8 个双字为一组, 因此每路有 512 组 主存页 [ 面 ] 大小为 16KB,4GB 的主存分为 256K 页 内部的 Cache 目录中, 共含 个目录项 每个目录项 27 位, 其中,18 位标记, 以区分 256K 个页 ;1 位标记有效位 ; 另外 8 位为行有效位 主存每个 存储页 上处于相同位置的行对应于 Cache 中两路中的各一行 (A 行或 B 行 )

311 与这种机制相对应,82385 为 A 路和 B 路的每一对目录项配置了一位 最近最少使用 位 LRU(Least Recently Used) 通过此位,82385 在未命中处理时判断新写入的数据是存入 A 路还是 B 路 下图表示在双路组相联方式下,82385 如何从 Cache 中选取一行 :

312 读操作时, 根据 A13~A5 从 个目录项选一对目录项 然后 用 A31~A14 和两个所选目录项的标记比较, 并检查两个目录项的标记有效位和行有效位 注意, 这两个目录项的比较和检测是同时进行的 如果检测到有一个目录项符合命中要求, 那么,82385 会使对应的一路 Cache 中的一个双字送到系统数据总线上 如果数据在 A 路 Cache 中, 则这一对目录项的 LRU 位指向 B; 反之, 则 LRU 位指向 A 在 进行写操作时, 如果写入的区块 ( 行 ) 已映象到 Cache 中, 则产生 Cache 写入命中 这时,Cache 相应区块和主存一起更新内容 如果 A 路 Cache 命中, 则更新 A 路的区块, 且使 LRU 位指向 B 路 ; 如果 B 路命中, 则更新 B 路的 Cache, 并使 LRU 位指向 A 路 复位时, 目录中所有的标记有效位清 0 组相联 Cache 的优点是命中率比直接映象方式稍高, 缺点是标记占用较多的 SRAM, 另外,Cache 控制器比较复杂

313 目录 A 标记有效位 目录 B 标记有效位 18 位标记行有效位 18 位标记行有效位 A 32 B 32 页面大小 =16KB 第 0 组 LRU 第 1 组... 第 511 组 Cache 目录 32KB Cache SRAM32KB 页 千兆字节主存 (DRAM) 图 两路组相联 Cache 组织示意图

314 6.Cache 的数据更新方法 在 Cache 系统中, 同样一个数据可能既存在于 Cache 中, 也存在主存中 这样, 当数据更新时, 可能前者已更新, 而后者未更新 这种情况会造成数据丢失 另外, 在有 DMA 控制器的系统和多处理器系统中, 有多个部件可访问主存, 这时, 可能其中有些部件是直接访问主存的, 也可能每个 DMA 部件和处理器配一个 Cache, 这样, 主存的一个区块可能对应于多个 Cache 中的各一个区块 于是, 又会产生主存中的数据被某个总线主部件更新过, 而某个 Cache 中的内容未更新, 这种情况造成 Cache 中数据过时 不管是数据丢失还是数据过时, 都导致主存和 Cache 的数据不一致 如果不能保证数据一致性, 那么, 往下的程序运行就要出现问题

315 对前一种一致性问题, 有 3 个解决办法 : (1) 直写式 (Write through) 如用这种方法, 那么, 每当 CPU 把数据写到 Cache 中时,Cache 控制器会立即把数据写入主存对应位置 所以, 主存随时跟踪 Cache 的最新版本, 从而, 也就不会有主存将新的数据丢失这样的问题 此方法的优点是简单, 但缺点也是显而易见, 就是每次 Cache 内容有更新, 就有对主存的写入操作, 这样, 造成总线活动频繁, 系统速度较慢

316 (2) 缓冲直写式 (buffered Write through) 这种方式是在主存和 Cache 之间加一个缓冲器, 每当 Cache 中做数据更新时, 也对主存作更新, 但是, 要写入主存的数据先存在缓冲器中, 在 CPU 进入下一个操作时, 缓冲器中的数据写入主存, 这样, 避免了直写式速度较低的缺点 不过用此方式, 缓冲器只能保持一次写入数据, 如果有两次连续的写操作,CPU 还是要等待

317 (3) 回写式 (write back) 用这种方式时,Cache 每一个区块的标记中都要设置一个更新位,CPU 对 Cache 中一个区块写入后, 如未更新相应的主存区块, 则更新位置 1 在每次对 Cache 写入时,Cache 控制器须先检查更新位, 如为 0, 则可直接写入, 反之, 则 Cache 控制器先把 Cache 现有内容写入主存相应位置, 再对 Cache 进行写入 用回写式时, 如果 Cache 中更新一个数据, 此后又不是立即被再次更新, 那么就不会写入主存, 这样, 真正写入主存的次数可能少于程序的写入次数, 从而, 可能提高效率 但是, 用这种方式, Cache 控制器比较复杂

318 对后一种一致性问题 ( 即出现主存区块更新而 Cache 未更新的情况 ), 一般有四种防止方法 即 : (1). 总线监视法在这种方法中, 由 Cache 控制器随时监视系统的地址总线, 如其他部件将数据写到主存, 并且写入的主存区块正好是 Cache 中的区块对应位置, 那么,Cache 控制器会自动将 Cache 中的区块标为 无效 上面讲述的 Cache 控制器 就是用这种方式来保护 Cache 内容的一致性

319 (2). 硬件监视法我们把主存中映象到 Cache 的区块称为已映象区块, 硬件监视法就是通过外加硬件电路, 使 Cache 本身能观察到主存中已映象区块的所的存取操作 要达到这个目的, 最简单的办法是所有部件对主存的存取都通过同一个 Cache 完成 另一个办法是每个部件配备各自的 Cache, 当一个 Cache 有写操作时, 新数据既拷贝到主存, 也拷贝到其他 Cache, 从而防止数据过时, 这种方法也称为广播式

320 (3) 划出不可高速缓存存储区法 按照这种方式, 要在主存中划出一个区域作为各部件共享区, 这个区域中的内容永远也不能取到 Cache, 因此,CPU 对此区域的访问也必须是直接的, 而不是通过 Cache 来进行的 用这种方法, 便可避免主存中一个区块映象到多个 Cache 的情况, 于是也避免了数据过时的问题

321 (4) Cache 清除法这种方法是将 Cache 中所有已更新的数据写回到主存, 同时, 清除 Cache 中的所有数据 如果在进行一次这样的主存写入时, 系统中所有 Cache 作一次大清除, 那么,Cache 中自然不会有过时的数据 衡量 Cache 最主要的指标就是命中率, 这除了和 Cache 的组织方式 Cache 的容量有关外, 还有一个重要因素, 就是 Cache 和主存之间的数据一致性, 当然, 另外也和当前运行的程序本身有关

322 练习 1. 若 直接映像 Cache 目录中某一组的目录项为 00005FFH(26 位二进制 ), 那么 Cache 中缓存的信息来自于主存的哪一页? Cache 中这一组的值有效吗? 哪些行有效? 2. 说明在 控制下,CPU 进行一次读操作的工作过程

323 第六章作业 1. 一个微机内存系统使 16K 1 的静态 RAM 芯片组成, 内存容量为 256K 字节, 采用模块结构, 每个模块为 64K 字节, 每个模块分四组 ( 页 ) 试给出该存储器的地址分配情况 ( 模块选择 组选择 片内地址各占哪几位 ), 并画出一个模块的连接框图 2. 用 6116 RAM 芯片组成 4k*16 位的存储器, 把地址总线的高位与 74LS138 译码器相连, 以产生存储芯片的片选信号 试画出存储器与 CPU (8086) 之间的地址线 数据线及有关控制信号线的连接图, 并注明每片存储芯片的存储空间范围 8086 输出的地址信号经 8282 锁存, 数据信号用 8286 驱动

324 第七章输入 / 输出接口

325 I/O 接口的基本功能 ( 为什么要用 I/O 接口电路 ) 总的来说,I/O 接口具有下述三方面功能 : (1) 速度的匹配 (2) 信息格式的变换 : 包括串并转换, A/D,D/A 转换, 电平转换等 (3) 提供主机和外设间传送数据所必须的状态和控制信息

326 主机 (CPU) 和 I/O 设备之间传送的信息格式 1. 数据信息 : (1) 数字量 ( 计算机可以直接接收和处理的数据 ) (2) 模拟量 2. 状态信息 例如 : 对于输入设备的 Ready 对于输出设备的 Busy 特点 :1CPU 外设接口 2 可读 ( 不可写 ) 3. 控制信息 : 特点 1CPU 外设接口 2 可写 ( 不可读 ) 控 传感器 运放 制 对 执 象行模拟量功放部 件 A/D D/A 数字量 微型计算机

327 I/O 接口的基本结构 (P162 图 7.1) 由图可见, 外设通过 I/O 接口电路与 CPU 相连 每个接口电路包含一组寄存器 : 数据输入寄存器 数据输出寄存器 状态寄存器 控制寄存器 通常称这些寄存器为 I/O 端口 (I/O PORT), 每个端口有一个端口地址

328 I/O 端口的编址方式 1. I/O 端口和存储器统一编址 (Memory Mapped I/O) 0 XXXXH I/O 存储器 XXXXH 优点 : 可以用访问存储器的指令来访问 I/O 端口 例如 :ADD AL, [2000H] 整个地址空间 缺点 : 一个 I/O 端口的内容 缺点 :I/O 端口占用了一部分地址空间

329 I/O 端口的编址方式 2. I/O 端口和存储器分开编址 (I/O Mapped I/O) 指令系统中分别设立面向存储器的指令和面向 I/O 操作的指令 (IN 指令和 OUT 指令 ) 在微型计算机中, 地址总线为存储器和 I/O 端口所共享, 那么, CPU 输出的地址信号究竟是给谁的? 是给 M, 还是 I/O? 在 CPU 芯片上设置专门的控制信号线 M/IO(80x86 均如此 ) 优缺点 :P164 XXXXH 0 0 存储器 XXXXH I/O

330 I/O 端口的地址分配 IBM PC, P165 表 7-1, 表 7-2

331 I/O 接口的地址译码及片选信号的产生 系统中由多台外设, 当 CPU 与外设进行通信时 (IN AL, XXH 或 OUT XXH, AL), 需要对各个设备所对应的接口电路进行逻辑选择, 即产生相应的片选 (Chip Select --CS) 信号 这种逻辑选择功能是由系统中 I/O 接口部分的地址译码器来实现的 所以, 地址译码器是 I/O 接口电路的基本组成部分 通常采用 3-8 译码器 (74LS138) A 5 A 6 A 7 A B C Y 0 选中某一接口电路 A 8 A 9 G 2B G 2A I/O 指令 AEN G 1 Y 7

332 I/O 控制方式 一 程序控制方式 1. 无条件传送方式 2. 程序查询方式 ( 特点, 流程图. P167) 二 中断控制方式 1. 中断定义 : 2. 中断方式的特点 : (a)cpu 的效率高,CPU 不必查询等待 (b)cpu 与外设可并行工作 (c) 外设具有申请服务的主动权 三 DMA 方式 DMA 方式的特点 : 在专门的硬件控制电路 (DMAC) 控制之下, 由 DMAC 发出地址及读 / 写信号来实现高速数据传输 在此过程中,CPU 放弃总线控制权, 数据传送不经过 CPU 如 P169 图 7.5 所示 采用 DMA 方式, 可实现 : 存储器 输出 输入 I/O 设备 存储器 存储器 I/O 设备 I/O 设备

333 第三节 DMA 接口技术 一 DMA 控制器的基本功能 P170 (1)~(6) 二 DMA 控制器的一般结构 ( 内部主要寄存器, 外部主要信号线 ) 图中 DMAC 的地址总线是双向的,I/O 接口的地址总线是单向的, 为什么?

334 三 DMA 控制器的工作方式 1. 单字节传输方式 : 每次请求总线, 只传输一个字节, 传输完后即释放总线控制权 ( 这样,CPU 至少可以得到一个总线周期, 并进行有关操作 ) 2. 块传输方式 ( 成组传输方式 ) 每次请求总线连续传送一个数据块, 待整个数据块全部传送完成后再释放总线控制权 显然, 其数据传输率要比单字节方式高 注意, 此间 CPU 无法进行任何需使用系统总线的操作

335 3. 请求传输方式 每传输完一个字节,DMAC 都要检测 I/O 接口发来的 DMA 请求信号是否有效 若有效, 则继续进行 DMA 传输 ; 否则就暂停传输, 交还总线控制权给 CPU, 直至 DMA 请求信号再次变为有效, 再从刚才暂停的那一点继续传输

336 四 DMA 工作过程 1. 以 DMA 方式输出一个字节数据的工作过程 (P173 图 7.8) (1) (9) 步, 其中 (6)DMAC 发 MEMR;(7)DMAC 发 IOW 2. 以 DMA 方式输入一个数据块 ( 单字节方式 ):(1) (9) P174

337 第四节可编程 DMA 控制器 8237 功能概况 : 参见手册 P6-101 一 8237 的结构 : P175 图 7.9 及表 7-3 二 8237 的引脚配置 (Pin Configration) * 对于 20 位内存地址的高 4 位地址的提供方法 (P177 下 ) 三 8237 的工作方式 1. 单字节传送方式 (Single Transfer Mode) 2. 块传送方式 (Block Transfer Mode) 3. 请求传送方式 (Demand Transfer Mode) 4. 级联方式 (Cascade Mode) 四 8237 的寄存器五 特殊软件命令六 内部存储器的寻址 * 七 时序八 8237 的编程

338 DMA 控制器的一般结构及其与 I/O 接口的连接 地址总线数据总线控制总线中断请求 控制寄存器状态寄存器数据输入寄存器数据输出寄存器 外设 总线请求 总线回答 数据总线控制总线 DMA 响应 DMA 请求 控制寄存器状态寄存器地址寄存器 地址总线 地址译码器 字节计数寄存器 DMA 控制器 计数结束信号 ( 可作为中断请求信号 )

339 以 DMA 方式输出一个字节数据的工作过程 CPU I/O 设备

340 Intel 8237/ HIGH PERFORMANCE PROGRAMMABLE DMA CONTROLLER Enable/Disable Control of Individual DMA Request Four Independent DMA Channels Independent Autoinitialization of all Channels Memory-to- Memory Transfers Memory Block Initialization Address Increment or Decrement High Performance: Transfers up to 1.6M Bytes/Second with 5 MHz Directly Expandable to any Number of Channels \ End of Process Input for Terminating Transfers Software DMA Requests Independent Polarity Control for DREQ and DACK Signals

341 第七章作业 P189 (26) 修改 :8237 通道 通道 H H:0H 补加 : 通道 3 页面寄存器 的端口地址为 82H.

342 第八章串 并行通信及接口电路

343 第一节串行通信的基本概念 1. 串行通信的特点 : 数据在单条 1 位宽的传输线上按时间先后一位一位地传送 ; 节省传输线 ( 优点 ); 数据传输率较低 ( 缺点 ) 主要适用于长距离 低速率的通信中

344 2. 串行通信涉及的常用术语 1. 单工 半双工和全双工 1 单工 (Simplex) 特点 : 仅能进行一个方向的数据传送 设备 A 发送器 Data flow 设备 B 接收器

345 1 半双工 (Half Duplex) 特点 : 数据可以在两个方向上进行传送, 但是这种传送绝不能同时进行 双向, 但不同时 设备 A 发送器 / 接收器 Data flow 设备 B 接收器 / 发送器

346 1 全双工 (Full Duplex) 特点 : 能够在两个方向同时进行数据传送 设备 A 发送器 / 接收器 设备 B 接收器 / 发送器

347 2. 数据传输率 每秒传输的二进制位数, 单位为 bps(bit per second ) 也称比特率 波特率 每秒传输的 符号 ( 也称离散状态 ) 的个数 例如, 每秒传送 1 个符号, 则波特率为 1 波特 在计算机中, 一个 符号 的含义为高 低两种电平, 分别代表逻辑值 1 和 0, 所以每个符号的信息量为 1 比特, 此时波特率与比特率刚好一致 但在其他一些场合 ( 例如通信中采用的 相一幅 复合调制技术一个 符号 的信息含量就不是一个比特, 此时, 波特率就不等于比特率

348 4 种相位 (0,90,180,270) 每种相位有两种振幅值 90 0 实现 3 位 / 波特调制 标准波特率系列 :50,75,110,150, 300,600,1200,

349 3. 发送时钟和接收时钟 CLK( 主时钟 ) 接收时钟 RxC 数据输入寄存器输入移位寄存器 1, 16, 32 数据输出寄存器输出移位寄存器 RxD ( 串行数据输入 ) 输入移位脉冲 ( 串行数据输出 ) TxD TxC 1, 16, 32 发送时钟 输出移位脉冲

350 * 现在的电话网是模拟通信系统, 它是为传输话音信息而设计的 要在电话网上传送数字信号, 必须经过调制和解调 实现调制和解调两个过程的设备称为 调制解调器 (Modulator Demodulator- Modem) 方法 : 选取音频范围某一频率的正 ( 余 ) 弦模拟信号作为载波, 用以运载所要传送的数字信号 要用传送的数字信号改变载波信号的幅值 频率或相位, 使之在信道上传送 ; 到达信道另一端, 再将数字信号从载波中取出

351 数字信号 (a) 调幅 (b) 调频 (c) 调相 按数字信号的值改变载波信号的幅度 按数字信号的值改变载波信号的频率 按数字信号的值改变载波信号的相位

幻灯片 1

幻灯片 1 3 8086 Tel:2656809 tjx@csu.edu.cn 2005-9-14 1 2005-9-14 2 8086 8 8086 8086 7 2005-9-14 3 PC 2005-9-14 4 2005-9-14 5 81616 2005-9-14 6 [ ] MOV AX, 3064H AX=3064H 16AX OP 64H 30H 2005-9-14 7 16 AX BX CX

More information

untitled

untitled 8086/8088 CIP /. 2004.8 ISBN 7-03-014239-X.... TP313 CIP 2004 086019 16 100717 http://www.sciencep.com * 2004 8 2004 8 1 5 500 787 1092 1/16 16 1/2 391 000 1 2 ii 1 2 CAI CAI 3 To the teacher To the student

More information

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20 (Jump) (Loop) (Conditional jump) CMP CALL AND SAR/SHR TEST JMP NOT SAL/SHL Jnnn* OR RCR/ROR LOOP XOR RCL/ROL RETn * nnn, JNE JL -128 127-32,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx 第五讲 授课教师 : 陆俊林王箫音 2012 年春季学期 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 4 章寻址方式与指令系统 1 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 2 指令的组成 指令由操作码和操作数两部分组成 操作码操作数 MOV AX, 8726H ADD AX,

More information

<4D F736F F F696E74202D20B5DA35D5C2CEA2B4A6C0EDC6F7B9A4D7F7D4ADC0ED2E707074>

<4D F736F F F696E74202D20B5DA35D5C2CEA2B4A6C0EDC6F7B9A4D7F7D4ADC0ED2E707074> 第 5 章 微处理器工作原理 1 5.1 8086 处理器 2 1. 管脚定义 3 8086/88 管脚描述 8086:16 位微处理器, 16 位外部数据总线 8088:16 位微处理器, 8 位外部数据总线 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 1 2 3 4 5

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt 8088/8086 MICROPROCESSOR PROGRAMMING INTEGER INSTRUCTIONS AND COMPUTATIONS 8088/8086 MICROPROCESSOR PROGRAMMING INTEGER INSTRUCTIONS AND COMPUTATIONS 5.1 Data-Transfer Instructions 5.2 Arithmetic Instructions

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt 8088/8086 MICROPROCSOR PROGRAMMING INTEGER INSTRUCTIONS AND COMPUTATIONS The MOVE The move (MOV) instruction is used to transfer a byte or a word of data from a source operand to a destination operand

More information

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63> 因 为 路 过 你 的 路, 因 为 苦 过 你 的 苦, 所 以 快 乐 着 你 的 快 乐, 追 逐 着 你 的 追 逐 内 容 简 介 本 书 根 据 2005 年 下 半 年 实 施 的 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 嵌 入 式 系 统 设 计 师 级 考 试 大 纲 精 神, 在 深 入 研 究 历 年 计 算 机 技 术 与 软

More information

Microsoft PowerPoint - 微原-第3章2.ppt [兼容模式]

Microsoft PowerPoint - 微原-第3章2.ppt [兼容模式] 本教案内容 第 3 章 8086CPU 指令系统 1. 汇编语言指令 9. 转移指令 10. 2. 8086 指令分类循环控制指令 11. 子程序调用返回 3. 数据与转移地址的指令寻址方式 12. 中断调用返回指 4. 数据传送类指令令 5. 算术运算类指令 13. 字符串操作指令 6. 逻辑运算类指令 14. I/O 输入输出指令 7. 移位类指令 15. 其它指令 8. 标志位操作指令 16.

More information

微机第02章1(指令寻址)

微机第02章1(指令寻址) 微机原理及应用 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@yahoo.com.cn 西华大学电气信息学院 1 第 03 章 80X86 的寻址方式和指令 ( 本章内容 ) 3.1 指令的格式 3.2 8086/8088 的寻址方式 3.3 指令系统 3.3.1 数据传送指令 3.3.2 算术运算指令 3.3.3 逻辑运算与移位指令 3.3.4 串操作指令

More information

D/A DAC ( 1us) (10~20 ) DAC0832 1

D/A DAC ( 1us) (10~20 ) DAC0832 1 D/A DAC0832 8 ( 1us) (10~20 ) DAC0832 1 1. 20 DI7~DI0 ILE 8 8 DAC 8 D/A LE LE & RFB VREF IOUT2 IOUT1 RFB CS WR1 XFER WR2 & & AGND VCC DGND 2 DI7~DI0 ILE & 8 LE 8 DAC LE 8 D/A RFB V REF IOUT2 IOUT1 R FB

More information

数据库系统概论

数据库系统概论 所谓寻址方式, 就是指令中用于说明操 作数所在地或者所在地地址的方法 8088/8086 的寻址方式分为两类 : 关于寻找数据的寻址方式 关于寻找转移地址的寻址方式 下面讲关于数据的寻址方式时, 均以数 据传送指令 MOV 为例讲解 MOV 指令格式如下 : MOV DST, SRC 助记符 目的操作数 指令完成的功能 : (DST) 源操作数 (SRC) 一. 关于寻找数据的寻址方式 ( 共 8

More information

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 第 3 章 8086 的寻址方式和指令系统 (2) 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 1 3.3 8086 指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 3.3.1 数据传送指令 可实现 存储器 立即数 段寄存器 CS DS

More information

数据库系统概论

数据库系统概论 2. 减法指令 8086/8088 共有 5 条减法指令 1 不带 CF 的减法指令 (SUB) 格式 :SUB DST, SRC 功能 :(1)DST (DST)-(SRC) (2) 根据差设置 6 个状态标志 2 带 CF 的减法指令 (SBB) 格式 :SBB DST, SRC 功能 : (1)DST (DST)-(SRC)-CF (2) 根据差设置 6 个状态标志 3 减 1 指令 (DEC)

More information

微机第02章1(指令寻址)

微机第02章1(指令寻址) 微机原理及应用 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@yahoo.com.cn 西华大学电气信息学院 1 2 第 2 章微机的组成及微处理器的功能结构 2.1 微型计算机的组成 2.2 80X86 系列微处理器的功能结构 3 教学重点 80X86 系列微处理器的功能结构 80X86 的存储器分段管理方式 4 2.1 微型计算机的组成 AB 运算器

More information

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式]

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式] 本教案内容 第 3 章 8086CPU 指令系统 1. 汇编语言指令 9. 转移指令 10. 2. 8086 指令分类循环控制指令 11. 子程序调用返回 3. 数据与转移地址的指令寻址方式 12. 中断调用返回指 4. 数据传送类指令令 5. 算术运算类指令 13. 字符串操作指令 6. 逻辑运算类指令 14. I/O 输入输出指令 7. 移位类指令 15. 其它指令 8. 标志位操作指令 16.

More information

Microsoft PowerPoint - Ch3-8086CPUæ„⁄令系ç»�(3)-æŁ°æ“®ä¼€é•†æ„⁄令

Microsoft PowerPoint - Ch3-8086CPUæ„⁄令系ç»�(3)-æŁ°æ“®ä¼€é•†æ„⁄令 2017 版 微机原理与系统设计 第 3 章 8086CPU 指令系统 董明皓, 博士 西安电子科技大学 dminghao@xidian.edu.cn 目录 (12 课时 ) 1 2 3 4 5 汇编语言基本概念 8086 指令分类数据与转移地址的寻址方式 8086 的六类指令总结 微机原理与系统设计 8086CPU 的指令系统董明皓 dminghao@xidian.edu.cn 2 基础知识引入

More information

数据库系统概论

数据库系统概论 指令系统 是指 CPU 能完成的所有 指令的集合, 它是在 CPU 设计时就确定了的 所以, 对不同的 CPU, 其指令系统中所包含的具体指令将是各不相同的 但 8088/8086 CPU 的指令系统是完全一样的 8088/8086 CPU 的指令系统可分成下面 9 类 : (1) 数据传送指令 ; (2) 算术运算指令 ; (3) 逻辑运算指令 ; (4) 移位指令 ; (5) 标志处理指令和 CPU

More information

数据库系统概论

数据库系统概论 2. 减法指令 8086/8088 共有 5 条减法指令 1 不带 CF 的减法指令 (SUB) 格式 :SUB DST, SRC 功能 :(1)DST (DST)-(SRC) (2) 根据差设置 6 个状态标志 2 带 CF 的减法指令 (SBB) 格式 :SBB DST, SRC 功能 : (1)DST (DST)-(SRC)-CF (2) 根据差设置 6 个状态标志 3 减 1 指令 (DEC)

More information

(2) Function 0BH: Function 0CH: (pixel, picture element) Function 0DH: Function 0FH: Function 13H:

(2) Function 0BH: Function 0CH: (pixel, picture element) Function 0DH: Function 0FH: Function 13H: (1) INT 10H Function 00H: Function 01H: Function 02H: Function 03H: Function 05H: Function 06H: Function 07H: Function 08H: Function 09H: Function 0AH: (2) Function 0BH: Function 0CH: (pixel, picture element)

More information

3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四 11 时 3

3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四 11 时 3 第 3 章 8086 的寻址方式和指令系统 (3) 2015 年 3 月 26 日星期四 11 时 3 分 17 秒 1 3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

微机系统与接口--第5章-2.ppt

微机系统与接口--第5章-2.ppt 第五章 数字量输入输出接口 主 要 内 容 * 接口基本概念 * 接口电路 ( 芯片 ) 端口地址 * 数据传送方式 * 总线及其接口 * 中断电路及其处理 * 定时 / 计数器电路与应用 * 并行接口电路与应用 * 串行接口电路与应用 * DMA 电路与应用 1 总线基本概念 CPU 总线 地址总线 AB CPU 存储器 数字 I/O 接口 输入出设备 模拟 I/O 接口 输入出设备 数据总线 DB

More information

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 第 3 章 8086 的寻址方式和指令系统 (1) 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 1 主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 3.1 8086 的寻址方式 两种不同的类型 : 一类是程序地址 ( 在代码段中 ) 的寻址方式 ; 另一类是操作数地址的寻址方式

More information

組譯與連結(Ver6

組譯與連結(Ver6 Intel 8088/86 CPU GND 1 40 VCC GND 1 40 VCC A14 2 39 A15 AD14 2 39 AD15 A13 3 38 A16/S3 AD13 3 38 A16/S3 A12 4 37 A17/S4 AD12 4 37 A17/S4 A11 5 36 A18/S5 AD11 5 36 A18/S5 A10 A9 6 7 35 34 A19/S6 SS0 (

More information

1 CPU

1 CPU 2000 Tel 82316285 82317634 Mail liuxd@buaa.edu.cn 1 CPU 2 CPU 7 72 A B 85 15 3 1/2 M301 2~17 : 3/4 1/2 323 IBM PC 1. 2. 3. 1. 2. 3. 1.1 Hardware Software 1.2 M3 M2 M1 1.2 M3 M1 M2 M2 M1 M1 M1 1.2 M3 M1

More information

42 2141601026 2016 11 27 2 1.1............................................. 2 1.2....................................... 2 1.2.1......................................... 2 1.3.............................................

More information

Microsoft PowerPoint - 第01章 基础知识.pptx

Microsoft PowerPoint - 第01章 基础知识.pptx 微处理器与微计算机系统 教材 : 单片机原理与应用及 C51 程序设计 ( 第 3 版 ) 清华大学出版社 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@mail.xhu.edu.cn 西华大学电气与电子信息学院 第 1 章计算机基础知识 主要内容 : 1 有符号数的表示 2 微型计算机工作原理 3 单片机的概念及特点 A Historical Background

More information

Microsoft Word - em78 sub program.doc

Microsoft Word - em78 sub program.doc 一 二进制数转换为 ASCⅡ 码 将一个字节的二进制数转换为两位 16 进制数的 ASCⅡ 码 main: mov a,@0x9f ; 二进制数为 0x9f mov 0x30,a ; 二进制数存入 0x30 mov a,@0x02 mov 0x10,a ;0x10 中存放转换次数 mov a,@0x31 mov 0x04,a ;0x04 中为转换后数据存放地址 mov a,0x30 B1: ; 取

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

微机原理--汇编、连接和调试

微机原理--汇编、连接和调试 微机原理课程 汇编语言程序的编辑 汇编 连接和调试 西安电子科技大学 探测制导系 内容提要 编写汇编语言程序的五个重要步骤 编写源程序 汇编过程 连接过程 汇编语言编程过程 DEBUG 主要功能 DEBUG 命令 程序设计举例 结束语 编写汇编语言程序的五个重要步骤 1. 编写源程序, 如 L1.ASM 2. 汇编源程序, 得到目标代码,L1.OBJ 3. 目标代码文件的连接, 生成可执行文件 L1.EXE

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_06

Microsoft PowerPoint - C15_LECTURE_NOTE_06 61 Flag-Control 8088/8086 MICROPROCESSOR PROGRAMMING CONTROL FLOW INSTRUCTIONS AND PROGRAM STRUCTURES LAHF SAHF CLC STC CMC CLI STI Load AH from flags Store AH into flags Clear carry flag Set carry flag

More information

投影片 1

投影片 1 2 理 1 2-1 CPU 2-2 CPU 理 2-3 CPU 類 2 什 CPU CPU Central Processing Unit ( 理 ), 理 (Processor), CPU 料 ( 例 ) 邏 ( 例 ),, 若 了 CPU, 3 什 CPU CPU 了, 行, 利 CPU 力 來 行 4 什 CPU 5 2-2-1 CPU CPU 了 (CU, Control Unit) / 邏

More information

Microsoft PowerPoint - Ch3-8086CPU指令系统(2)-寻址.pptx

Microsoft PowerPoint - Ch3-8086CPU指令系统(2)-寻址.pptx 2018 版 微机原理与系统设计 第 3 章 8086CPU 指令系统 董明皓, 博士 西安电子科技大学 dminghao@xidian.edu.cn 目录 1 2 3 4 5 汇编语言基本概念 8086 指令分类数据与转移地址的寻址方式 8086 的六类指令总结 2 目录 1 2 3 4 5 汇编语言基本概念 8086 指令分类数据与转移地址的寻址方式 8086 的六类指令总结 3 8086 指令分类

More information

微机原理与接口技术 郭玉洁

微机原理与接口技术 郭玉洁 微机原理与接口技术 郭玉洁 实验安排 汇编语言程序设计实验编程测验硬件接口应用实验综合应用实验 2 学时 1 学时 4 学时 4 学时 一 实验内容 二 实验目的 三 实验方法 实验报告要求 1 文字叙述设计思路 2 流程图 四 实验源程序 ( 必要的文字注释 ) 五 实验结果 六 实验中遇到的问题及解决方法 七 心得体会 ( 学会编程 调试等学习的方法 ) 汇编语言实验内容 1 学习并掌握 IDE86

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_11

Microsoft PowerPoint - C15_LECTURE_NOTE_11 INTERRUPT INTERFACE OF THE 8088 AND 8086 MICROPROCESSOR INTERRUPT INTERFACE OF THE 8088 AND 8086 MICROPROCESSOR 11.1 Interrupt Mechanism, Types and Priority 11.2 Interrupt Vector Table 11.3 Interrupt Instructions

More information

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示 实验题目 : 串行接口芯片 8251 实验目的 : 1. 掌握 8251 的工作方式及应用 2. 了解有关串口通讯的知识 串行接口芯片 8251 3. 掌握使用 8251 实现双机通讯的软件编程和电路连接 实验设备 : IA-32 架构的微机系统及应用教学平台两套 实验原理 : 1. 8251 的基本性能 性能 : 8251 是可编程的串行通信接口, 可以管理信号变化范围很大的串行数据通信 有下列基本

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_06

Microsoft PowerPoint - C15_LECTURE_NOTE_06 8088/8086 MICROPROCESSOR PROGRAMMING CONTROL FLOW INSTRUCTIONS AND PROGRAM STRUCTURES 8088/8086 MICROPROCESSOR PROGRAMMING CONTROL FLOW INSTRUCTIONS AND PROGRAM STRUCTURES 61 Flag-Control 62 Compare 63

More information

《微型计算机原理》

《微型计算机原理》 第五章汇编语言程序设计 1 画图说明下列语句所分配的存储器空间及初始化的数据值 难度:2 (1) BYTE_VAR DB BYTE,12,-12H,3 DUP(0,2 DUP(1,2),7) (2) WORD_VAR DW 3 DUP(0,1,2),7,-5, BY, TE,256H ( 1) (2) 07H BYTE_VAR 42H WORD_VAR 59H FBH 54H FFH 45H 59H

More information

Microsoft PowerPoint - Ch CPU总线及其形成.ppt [兼容模式]

Microsoft PowerPoint - Ch CPU总线及其形成.ppt [兼容模式] 2018 版 微机原理与接口技术 第五章 总线及其形成 dminghao@xidian.edu.cn 董明皓 1 2 3 4 5 总线定义及分类几种常用芯片 8086 的引脚功能及时序系统总线的形成 8088 与 8086 的差异 1 2 3 4 5 总线定义及分类几种常用芯片 8086 的引脚功能及时序系统总线的形成 8088 与 8086 的差异 综述 本门课学习的内容 内存 外设 1 外存 1

More information

幻灯片 1

幻灯片 1 字符串处理是指对一系列的字母或数字的代码进行相同功能的处理 计算机中字符代码一般都采用 ASCII 码, 每个字符的代码占一个字节, 一组字符串存放在一个连续的存储区中 存放在连续的存储区中的这组字符串, 可看为一个数据块 为了提高对字符串 ( 或数据块 ) 的处理效率,8086/8088 指令系统中专门提供了一组对字符串处理的指令, 这些指令包括 : 字符串传送指令 (MOVS) 字符串比较指令

More information

第六章 微型计算机的输入输出

第六章  微型计算机的输入输出 第九章中断与中断管理 第九章中断与中断管理 9.1 中断原理 9.2 中断系统组成及其功能 9.3 中断源识别及中断优先权 9.4 8086 中断系统 9.5 可编程中断控制器 8259 9.6 IBM-PC 机硬件中断 第九章中断与中断管理 9.1 中断原理 9.2 中断系统组成及其功能 9.3 中断源识别及中断优先权 9.4 8086 中断系统 9.5 可编程中断控制器 8259 9.6 IBM-PC

More information

Microsoft PowerPoint - C15_LAB_MTS86_INTRO

Microsoft PowerPoint - C15_LAB_MTS86_INTRO INTRODUCTION TO THE MTS-86C MICROCOMPUTER TRAINER What s MTS-86? 7-4 7-5 7-7 7-3 7-2 7-3 7-6 2 4 5 3 7-6 7-8 7-3 8 4 5 3 6 37 微處理機原理與應用國立台灣大學生物機電系 SPECIFICATION () CPU: 886 (2) Display Unit: LCD (6x2 Line)

More information

<4D F736F F F696E74202D DB5DAB0CBBDB22DBBE3B1E0D3EFD1D4B3CCD0F22E >

<4D F736F F F696E74202D DB5DAB0CBBDB22DBBE3B1E0D3EFD1D4B3CCD0F22E > 第八讲 授课教师 : 陆俊林王箫音 2012 年春季学期 主要内容 一 汇编语言的主要特点 二 汇编语言程序的结构 三 汇编语言的基本语法 四 汇编语言程序的开发调试 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 5 章汇编语言的基本语法第 6 章汇编语言程序设计及应用 1 主要内容 一 汇编语言的主要特点 二 汇编语言程序的结构 三 汇编语言的基本语法 四 汇编语言程序的开发调试

More information

习 题 一

习  题  一 第 1 页共 13 页 微机原理与接口技术 A 卷 一 填空题 ( 共计 20 分 每个空 2 分 ) 1 已知 [X] 补 =01100011B, 求 X=( ) ( 结果用十进制表示 ) [Y] 补 =11111001B, 求 Y=( ) ( 结果用十进制表示 ) 2 8088CPU 的地址总线为多少条 ( ); 直接寻址的内存空间为多少 ( ) 3 已知 DS=2000H, 内存 (20200H)=FFH,(20201H)=22H

More information

第4章

第4章 微机原理及应用 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@yahoo.com.cn 西华大学电气信息学院 1 第 03 章 80X86 的寻址方式和指令 3.1 指令的格式 3.2 8086/8088 的寻址方式 3.3 指令系统 3.3.1 数据传送指令 3.3.2 算术运算指令 3.3.3 逻辑运算与移位指令 3.3.4 串操作指令 3.3.5

More information

Microsoft PowerPoint - CH2_1.ppt [兼容模式]

Microsoft PowerPoint - CH2_1.ppt [兼容模式] 第二章微型计算机指令系统 IA-16 微机系统结构 - 工作原理 8086/8088 微处理器周期性地执行指令 时钟 /T 周期 指令周期 总线周期 ( 内部操作 / 总线操作 ) 指令 --- 微机算术 逻辑和控制功能的实现基础 重点 : 信息交换方法 ( 数据流 ), 程序流控制 *11 目标地址传送 * 寻址方式 2 标志传送 3 转移控制 ( 转移指令 过程调用 中断 ) 微机系统与接口东南大学

More information

第四章 8086汇编语言程序设计

第四章 8086汇编语言程序设计 第四章汇编语言程序设计 几个概念 8086 汇编语言的语句 8086 汇编中的伪指令 8086 汇编中的运算符 汇编语言程序设计 系统调用 几个概念 1. 汇编语言 2. 汇编语言源程序 3. 汇编 4. 汇编程序 5. 什么是汇编语言 (Assembly Language)? 6. 使用指令的助记符 符号地址和标号等编写的程序设计语言 7. 每条指令都有对应的机器码, 不同的 CPU 使用不同的汇编语言

More information

<4D F736F F F696E74202D D D6B8C1EECFB5CDB DC6E4CBFBD6B8C1EE2E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D D D6B8C1EECFB5CDB DC6E4CBFBD6B8C1EE2E BBCE6C8DDC4A3CABD5D> 2018 版 微机原理与接口技术 第三章 8086CPU 指令系统 董明皓 dminghao@xidian.edu.cn 1 2 3 4 5 汇编语言基本概念汇编语言指令分类数据与转移地址的寻址方式 8086 的六类指令总结 1 2 3 4 5 汇编语言基本概念汇编语言指令分类数据与转移地址的寻址方式 8086 的六类指令总结 4. 8086 的指令系统 b b b b b 数据传送指令算术运算指令逻辑运算指令移位

More information

一、单选题(本大题共15小题,每小题1分,共15分)

一、单选题(本大题共15小题,每小题1分,共15分) 北京大学信息科学技术学院考试试卷 科目 : 微机原理 A 姓名 : 学号 : 题号一二三四五六七八总分 分数 阅卷人 考试时间 : 2010 年 1 月 8 日任课教师 : 王克义装订线内请勿答题考场纪律 1. 请持学生证入场考试, 并按指定座位就座 ; 除必要的文具和教师指定的用具用书外, 其他所有物品包括手机 呼机 MP3 电子词典 书籍 笔记 纸张等严禁带入座位, 必须放在指定位置 凡有试题印制问题请向监考教师提出,

More information

Microsoft PowerPoint - CH2_1.ppt [兼容模式]

Microsoft PowerPoint - CH2_1.ppt [兼容模式] 第二章微型计算机指令系统 IA-16 微机系统结构 - 工作原理 8086/8088 微处理器周期性地执行指令时钟 /T 周期 指令周期 总线周期 ( 内部操作 / 总线操作 ) 指令 --- 微机算术 逻辑和控制功能的实现基础 重点 : 信息交换方法 ( 数据流 ), 程序流控制 *1 目标地址传送 * 寻址方式 2 标志传送 3 转移控制( 转移指令 过程调用 中断 ) 微机系统与接口东南大学

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

第4章 80X86指令系统

第4章  80X86指令系统 第 4 章 80x86 指令系统 一 练习题 ㈠选择题 1.MOV AX,[BX+SI] 的源操作数的物理地址是 ( ) A.(DS) 16+(BX)+(SI) B. (ES) 16+(BX)+(SI) C.(SS) 10H+(BX)+(SI) D.(CS) 10H+(BX)+(SI) 2.MOV AX,[BP+Sl] 的源操作数的物理地址是 ( ) A.(DS) 10H+(BP)+(SI) A.

More information

华侨大学 2013 年硕士研究生入学考试专业课试卷 ( 答案必须写在答题纸上 ) 招生专业 精密仪器及机械 测试计量技术及仪器 检测技术与自动化装置 科目名称微计算机原理科目代码 853 一 填空 ( 每空 1 分, 共 30 分 ) 1 计算机的基本结构可分为 1, 2, 3, 4, 5 五个部分

华侨大学 2013 年硕士研究生入学考试专业课试卷 ( 答案必须写在答题纸上 ) 招生专业 精密仪器及机械 测试计量技术及仪器 检测技术与自动化装置 科目名称微计算机原理科目代码 853 一 填空 ( 每空 1 分, 共 30 分 ) 1 计算机的基本结构可分为 1, 2, 3, 4, 5 五个部分 华侨大学 2013 年硕士研究生入学考试专业课试卷 ( 答案必须写在答题纸上 ) 招生专业 精密仪器及机械 测试计量技术及仪器 检测技术与自动化装置 科目名称微计算机原理科目代码 853 一 填空 ( 每空 1 分, 共 30 分 ) 1 计算机的基本结构可分为 1, 2, 3, 4, 5 五个部分 2 八进制与二进制之间转换,(143) 8= 6 B,1 0000 0000.011B 的十进制为

More information

一、填空题

一、填空题 微机原理及汇编语言复习题一 选择题 1. 完整的计算机系统应包括 ( ) A. 运算器 控制器 寄存器组 总线接口 B. 外设和主机 C. 主机和应用程序 D. 配套的硬件设备和软件系统 2. 计算机系统中的存储器系统是指 ( ) A.RAM B.ROM C. 主存储器 D. 内存和外存 3. 机器语言是指 ( ) A. 用英语缩写词表示的面向机器的程序设计语言 B. 用二进制代码表示的程序设计语言

More information

第七章 中断

第七章 中断 计算机组成原理 总结 图说 COD llxx@ustc.edu.cn 计算科学 (Computing) 计算机组成 :how computers work 硬盘 电源导线和电缆 软驱 内存 扩展槽 扩展卡 主板 微处理器 (CPU) 各种外设接口, 包括 : 键盘 鼠标 显示器 USB 声卡 网卡 并行口等 CPU 风扇支架 PCI 扩展槽 IDE 内存 CPU 硬条插盘接插槽槽口 华硕 P4S533-MX

More information

浙江省2004年1月高等教育自学考试

浙江省2004年1月高等教育自学考试 汇编语言试题 A 一 单项选择题 ( 本大题共 20 小题, 每小题 1 分, 共 20 分 ) 在每小题列出的四个备选项中只有一个是符合题目要求的, 请将其代码填写在题后的括号 内 错选 多选或未选均无分 1. 当执行 ADD AX,BX 指令后, 若 AX 的内容为 4E52H 时, 设置的奇偶标志位 PF=0, 下 面的叙述正确的是 ( ) A. 表示结果中含 1 的个数是奇数 B. 表示结果中含

More information

微型计算机原理及应用试题 机电96

微型计算机原理及应用试题   机电96 微 机 原 理 试 题 ( 一 ) 总 分 : 一 : 单 项 选 择 题 ( 每 题 1 分, 共 10 分 ) 1. 微 型 计 算 机 中 主 要 包 括 有 ( ) A) 微 处 理 器 存 储 器 和 I/O 接 口 B) 微 处 理 器 运 算 器 和 存 储 器 C) 控 制 器 运 算 器 和 寄 存 器 组 D) 微 处 理 器 运 算 器 和 寄 存 器 2. DMA 控 制 器

More information

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378>

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378> 第一章第二章 Q2 1: 高序 : 最低位字节存储在字的最低位 ; 低序 : 最低位字节存储在字的最高位 ; Q2 2: 冯. 诺依曼结构 : 数据和指令都存储在同一存储器中 ; 哈佛结构 : 数据和程序存储在各自独立的存储器中 Q2 3: a) ARM 有 16 个通用寄存器,r0 r15, 其中 r15 还被用作程序计数器 b) CPSR 是程序状态寄存器, 包含了条件码标识 中断禁止位 当前处理器模式和其他状态

More information

本次习题课中提到的 课本, 均指机械工业出版社的 Intel 微处理器 ( 原书第八版 ) 中文版, 使用其他版本课本的同学需要自己对应

本次习题课中提到的 课本, 均指机械工业出版社的 Intel 微处理器 ( 原书第八版 ) 中文版, 使用其他版本课本的同学需要自己对应 微机原理习题课 助教 : 王骏腾 本次习题课中提到的 课本, 均指机械工业出版社的 Intel 微处理器 ( 原书第八版 ) 中文版, 使用其他版本课本的同学需要自己对应 习题 33:Core2 处理器可寻址 存储器? 答案 :4GB 64GB 1TB ( 课本 P18 表 1-6) 第一章 习题 53: 信号的作用是什么? 答案 :I/O 读控制, 低电平有效 ( 两点都要答上, 详细可见课本 P20)

More information

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ] 作者 : 利尔达 MSP430 系列单片机的指令系统 1 CPU 内核组成 : 16 位的 (ALU) 算术运算单元 16 个寄存器 (PC SP SR R4~R15) 指令控制单元 2 存储器组织结构 3 外围模块寄存器地址 它们被分配在相应的字模块或字节模块当中 分配在 00-FFH 中为字节, 分配在 100-1FFH 中为字 4 寻址模式 : 5 指令格式 : 1) 书写格式标号指令助记符源操作数,

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC General instruction format for machine code 611 37100 微處理機原理與應用 Lecture 04-4 MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE

More information

PowerPoint Presentation

PowerPoint Presentation 7.2 并行接口 二. 可编程并行接口芯片 8255A 的功能及其应用 与 CPU 一侧相连的引脚 D0 PA0 ~ ~ ~ ~ ~ D7 PA7 RESET PC7 WR RD PC4 PC3 PC0 A0 PB0 A1 PB7 CS PA 口 PC 口上半部 PC 口下半部 PB 口 A 组 B 组 与 I/O 设备相连的引脚 7.2 并行接口二. 可编程并行接口芯片 8255A 的功能及其应用

More information

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11 .. 软件综合实验之操作系统 进入保护模式 陈香兰 中国科学技术大学计算机学院 July 1, 2016 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 1 / 11 提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 2 / 11 实验准备 实验环境准备

More information

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor 1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC 4.1 Converting Assembly Language Instructions to

More information

Microsoft PowerPoint - CH3_3.ppt [只读] [兼容模式]

Microsoft PowerPoint - CH3_3.ppt [只读] [兼容模式] 第三章汇编语言程序设计 ( 三 ) Assembly Language Programming(3) 格式 # 伪指令 # DOS/BIOS 调用 ( 简单了解 ) 重点 : 数据结构表示 程序结构 变量 指针 程序流控制 ( 条件 分支 循环 ) 程序设计方法 ----- 程序设计举例 微机系统与接口东南大学 1 DATA 汇编语言程序举例 (1) 分块传送 SEGMENT STRG DB 256

More information

主要内容 微型机的构成 ( 回顾 ) 总线 接口 8086 CPU 的结构及工作原理 8086 存储器 8086 系统配置 2015 年 3 月 9 日星期一 3 时 38 分 16 秒 2

主要内容 微型机的构成 ( 回顾 ) 总线 接口 8086 CPU 的结构及工作原理 8086 存储器 8086 系统配置 2015 年 3 月 9 日星期一 3 时 38 分 16 秒 2 第 2 章 8086 CPU 2015 年 3 月 9 日星期一 3 时 38 分 16 秒 1 主要内容 微型机的构成 ( 回顾 ) 总线 接口 8086 CPU 的结构及工作原理 8086 存储器 8086 系统配置 2015 年 3 月 9 日星期一 3 时 38 分 16 秒 2 2.1 微型机的基本结构 掌握 微机系统的基本组成 微型机的工作原理 总线 接口 2015 年 3 月 9 日星期一

More information

CH559指令周期.doc

CH559指令周期.doc CH55X 汇编指令周期表 CH55X 汇编指令概述 : 型号包含 : a. 指令单周期型号 :CH557 CH558 CH559; b. 指令 4 周期型号 :CH551 CH552 CH553 CH554; c. 非跳转指令的指令周期数与指令字节数相同 ; d. 跳转指令含 MOVC/RET/CALL 通常比字节数多若干个周期 ; e.movc 指令多 4 或 5 个周期 ( 下条指令地址为奇数时多

More information

PowerPoint Presentation

PowerPoint Presentation 一. 上机环境 应用软件系统软件硬件 4.5 汇编语言程序设计上机步骤与调试方法 用户程序 :ABC.exe 等 操作系统 :DOS 系统编辑器 : EDIT.exe 编程序 : MASM.exe 连接程序 :LINK.exe 调试程序 :DEBUG.exe CPU 存储器 (ROM RAM) I/O 接口 输入 输出设备 编辑源程序 EDIT ABC.ASM 二. 上机步骤 1 D:>EDIT ABC.ASM

More information

66 微型计算机原理与接口技术 ( 第二版 ) 2. 指令格式计算机中的汇编指令由操作码字段和操作数字段两部分组成 (1) 操作码字段 操作码表示计算机要执行的某种指令功能, 由它来规定指令的操作类型, 说明计算机要执行的具体操作, 例如传送 运算 移位 跳转等操作 同时还指出操作数的类型 操作数的

66 微型计算机原理与接口技术 ( 第二版 ) 2. 指令格式计算机中的汇编指令由操作码字段和操作数字段两部分组成 (1) 操作码字段 操作码表示计算机要执行的某种指令功能, 由它来规定指令的操作类型, 说明计算机要执行的具体操作, 例如传送 运算 移位 跳转等操作 同时还指出操作数的类型 操作数的 第 3 章指令系统 本章学习目标 每种 CPU 芯片都配置有相应的指令系统, 供用户编程使用 本章从指令格式 寻址的概念着手, 具体讨论 8086 系统中采用的寻址方式, 分析 8086 指令系统中各类指令的功能 特点及应用, 并引申到 Pentium 微处理器新增指令和寻址方式的特点 通过本章的学习, 重点理解和掌握以下内容 : 指令格式及寻址的有关概念 8086 指令系统的寻址方式及其应用 8086

More information

C 语言第一章选择 ACACC ACBBA BAADA CBDBC CCCBD C 填空 a/(b*c) 8 28 第二章 选择 DBADB BABAD BA 第三章选择 BCDBB BACDA C 写结果

C 语言第一章选择 ACACC ACBBA BAADA CBDBC CCCBD C 填空 a/(b*c) 8 28 第二章 选择 DBADB BABAD BA 第三章选择 BCDBB BACDA C 写结果 C 语言第一章选择 ACACC ACBBA BAADA CBDBC CCCBD C 填空 1 26 2 2 3 5.5 4 3.5 5 1 6 0 7 a/(b*c) 8 28 第二章 选择 DBADB BABAD BA 第三章选择 BCDBB BACDA C 写结果 1 33 2 2 3-1 4 a=2,b=1 5 26 53 6 *& 7 **1** **3** 第四章选择 CACBB BCDBB

More information

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

More information

本科生毕业设计(论文)打印格式的要求

本科生毕业设计(论文)打印格式的要求 汇编语言程序设计实验报告 实验名称上机过程及顺序结构与分支结构程序设计实验 班级软信 -1503 学号 20155362 姓 名薛旗 日期 2016.10.24 成绩评阅人 软件学院 一 实验目的与意义实验一 : 熟悉上机练习过程和伪指令实验 1. 掌握汇编语言程序汇编 连接的方法 ; 2. 熟悉 DEBUG 的基本命令及其功能 (U D T P G A E R); 3. 熟悉并掌握伪指令的用法,

More information

untitled

untitled EDM12864-GR 1 24 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3 4. -------------------------------------------------------6

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

Ch03_嵌入式作業系統建置_01

Ch03_嵌入式作業系統建置_01 Chapter 3 CPU Motorola DragonBall ( Palm PDA) MIPS ( CPU) Hitachi SH (Sega DreamCast CPU) ARM StrongARM CPU CPU RISC (reduced instruction set computer ) CISC (complex instruction set computer ) DSP(digital

More information

1

1 1 2 3 4 5 GNUDebugger 6 7 void main(int argc, char **argv){ vulncpy(argv[1]); return; } void vulncpy(char *a){ char buf[30]; strcpy(buf, a); return; } *argv[1] buf Shellcode *argv[1]... &buf &buf 8 strcpy

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

第二章 8086体系结构与80X86CPU

第二章  8086体系结构与80X86CPU 第二章 80x86 体系结构 1 8086CPU 结构 2 8086 系统的结构和配置 3 8086 的工作模式和内部时序 4 IA 微处理器技术的发展 * 2.1 8086CPU 结构 一 8086CPU 的内部结构 二 8086CPU 的寄存器结构 三 8086CPU 的管脚及功能 2.1 8086CPU 结构一 8086CPU 的内部结构 8086CPU 的内部结构组成 8086CPU 由两部分组成

More information

ICD ICD ICD ICD ICD

ICD ICD ICD ICD ICD MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4

More information

3.3.3 逻辑运算和移位指令 1. 逻辑运算指令 运算规则 : 按位操作, 无进 / 借位 对标志位的影响 ( 除 NOT 指令外 ): CF OF SF ZF PF AF 0 0 u 根据运算结果设置 2015 年 3 月 30 日星期一 7 时 57 分 24 秒 2

3.3.3 逻辑运算和移位指令 1. 逻辑运算指令 运算规则 : 按位操作, 无进 / 借位 对标志位的影响 ( 除 NOT 指令外 ): CF OF SF ZF PF AF 0 0 u 根据运算结果设置 2015 年 3 月 30 日星期一 7 时 57 分 24 秒 2 第 3 章 8086 的寻址方式和指令系统 (4) 2015 年 3 月 30 日星期一 7 时 57 分 24 秒 1 3.3.3 逻辑运算和移位指令 1. 逻辑运算指令 运算规则 : 按位操作, 无进 / 借位 对标志位的影响 ( 除 NOT 指令外 ): CF OF SF ZF PF AF 0 0 u 根据运算结果设置 2015 年 3 月 30 日星期一 7 时 57 分 24 秒 2 1)

More information

Andes Technology PPT Temp

Andes Technology PPT Temp 晶心科技線上技術研討會 AndesCore 便捷的全 C 嵌入式编程 晶心科技市場及技術服務部毛礼杰軟件經理 WWW.ANDESTECH.COM 大纲 系统初始化介绍 异常和中断说明 全 C 语法例子说明 总结 2 CPU 相关特性 1: 中断向量表 系统初始化 (1) 2: 系统寄存器 通常需要用 assembly( 汇编 / 组合 ) 语言来操作 AndesCore 全 C 嵌入式编程 C 扩展语法

More information

试卷代号 : 1061 座位号 I I I 中央广播电视大学 学年度第二学期 " 开放本科 " 期末考试 微计算机技术试题 题号 I - I 二 三 四 总 分 分数 I I I I I I 2011 年 7 月 得分 评卷人 一 选择填空 ( 每题 4 分, 共 6

试卷代号 : 1061 座位号 I I I 中央广播电视大学 学年度第二学期  开放本科  期末考试 微计算机技术试题 题号 I - I 二 三 四 总 分 分数 I I I I I I 2011 年 7 月 得分 评卷人 一 选择填空 ( 每题 4 分, 共 6 试卷代号 : 1061 座位号 I I I 中央广播电视大学 2 0 1 0-2 0 1 1 学年度第二学期 " 开放本科 " 期末考试 微计算机技术试题 题号 I - I 二 三 四 总 分 分数 I I I I I I 2011 年 7 月 得分 评卷人 一 选择填空 ( 每题 4 分, 共 6 0 分 ) 1. 最早的 IB l'v1 PC 微计算机系统使用 ( ) 作为核心微处理器 A.8086

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

1 TPIS TPIS 2 2

1 TPIS TPIS 2 2 1 1 TPIS TPIS 2 2 1. 2. 3. 4. 3 3 4 5 4 TPIS TPIS 6 5 350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6 8 (TPIS) TPIS 9 7 IC AT89C2051 AT89C2051 CMOS8

More information

本科生毕业设计(论文)打印格式的要求

本科生毕业设计(论文)打印格式的要求 汇编语言程序设计实验报告 实验名称 班级软信 -1503 学号 20155362 姓名薛旗 循环结构与子程序设计实验 日期 2016.11.06 成 绩 评阅人 软件学院 一 实验目的与意义实验四 实验五 : 循环程序设计实验目的 : 1. 学会分析循环结构程序的组成部分和循环程序设计的分析思路 2. 掌握循环程序的编程与上机调试的方法 3. 学会循环控制指令 串操作指令的汇编格式与操作功能 4.

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

Tel:010-62981668-2930 1

Tel:010-62981668-2930  1 Access 93C46 with SPI function V1.0.0 Jan. 31, 2005 http://www.sunplusmcu.com Tel:010-62981668-2930 http://www.sunplusmcu.com E-mail:mcu@sunplus.com.cn 1 0 0...2 1...3 2...4 2.1...4 2.2...5 3...6 3.1 AT93C46...6

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_08.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_08.ppt THE 888 AND 886 MICROPROCESSORS AND THEIR MEMORY AND INPUT/OUTPUT INTERFACES The 888 and 886 Microprocessors and Their Memory and Input/output Interfaces 8. The 888 and 886 Microprocessors 8.2 Minimum-Mode

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

PTS7_Manual.PDF

PTS7_Manual.PDF User Manual Soliton Technologies CO., LTD www.soliton.com.tw - PCI V2.2. - PCI 32-bit / 33MHz * 2 - Zero Skew CLK Signal Generator. - (each Slot). -. - PCI. - Hot-Swap - DOS, Windows 98/2000/XP, Linux

More information

L15 MIPS Assembly

L15 MIPS Assembly Lecture 19: MIPS Assembly Language 程序的机器级表示主要内容 MIPS 指令格式 R- 类型 / I- 类型 / J- 类型 MIPS 寄存器 长度 / 个数 / 功能分配 MIPS 操作数 寄存器操作数 / 存储器操作数 / 立即数 / 文本 / 位 MIPS 指令寻址方式 立即数寻址 / 寄存器寻址 / 相对寻址 / 伪直接寻址 / 偏移寻址 MIPS 指令类型

More information

一 汇编语言计算机基础 从事计算机科学方面的工作, 汇编语言是我们必不可少缺的基础 我们的工作平台 研究对象都是机器, 而汇编语言是人和计算机沟通的最直接方式, 它描述了机器最终所要执行的指令序列 学习汇编语言可以让你充分获得底层编程的体验, 深刻理解机器运行程序的机理 二 基础知识 1. 汇编语言

一 汇编语言计算机基础 从事计算机科学方面的工作, 汇编语言是我们必不可少缺的基础 我们的工作平台 研究对象都是机器, 而汇编语言是人和计算机沟通的最直接方式, 它描述了机器最终所要执行的指令序列 学习汇编语言可以让你充分获得底层编程的体验, 深刻理解机器运行程序的机理 二 基础知识 1. 汇编语言 ABeen 汇编语言 学习摘要 ABeen 学习记录 --- 汇编语言篇 QQ: 155235900 1 / 8 一 汇编语言计算机基础 从事计算机科学方面的工作, 汇编语言是我们必不可少缺的基础 我们的工作平台 研究对象都是机器, 而汇编语言是人和计算机沟通的最直接方式, 它描述了机器最终所要执行的指令序列 学习汇编语言可以让你充分获得底层编程的体验, 深刻理解机器运行程序的机理 二 基础知识 1.

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

PCM-3386用户手册.doc

PCM-3386用户手册.doc PCM-3386 BBPC-4x86 10/100M PC/104 (Lanry technology Co. Ltd. Zhuhai) 38 1012836 (Address: Room 1012,Linhai Building,No. 38,west of Shihua Road,Zhuhai City,Guangdong Province,China) (post code)519015 (phone)0756-3366659

More information

《计算机应用基础》学习材料(讲义)

《计算机应用基础》学习材料(讲义) 计 算 机 应 用 基 础 学 习 材 料 ( 讲 义 ) Fundamentals of Computer Application 2014-3-22 JIANGSU OPEN UNIVERSITY 第 二 学 习 周 计 算 机 基 础 知 识 ( 一 ) 导 学 在 本 学 习 周, 我 们 主 要 的 任 务 是 认 识 计 算 机 你 将 知 道 计 算 机 是 什 么 时 候 产 生 的,

More information