安徽大学微机原理期末复习
1. 计算机的硬件组成和工作原理(程序存储与程序控制)
- 计算机硬件系统由控制器、运算器、存储器、输入设备和输出设备组成。
- CPU由ALU(算术逻辑运算单元)和CU(控制单元)构成。
- 冯·诺伊曼体系结构:内存、CPU、I/O通过总线进行通讯,内存负责存储数据和程序,CPU负责完成指令产生的算术运算和逻辑运算,I/O负责与外界通讯。
- 8086的CPU包括总线接口单元(BIU)和指令执行单元(EU)构成,BIU事CPU与外部存储器以及IO端口之间交换数据的接口电路,其负责从内存指定单元取出指令,送到6字节的指令队列中排队,等待执行。执行指令所需要的操作数,也有BIU从指定的内存单元中获取。EU负责执行指令,从BIU的指令队列中取出指令送到EU控制器。
- BIU包括:段寄存器、IP寄存器、指令队列、地址加法器、总线控制逻辑
- EU包括:通用寄存器、标志寄存器、ALU、EU控制器
2. 进制的转换;原码、反码、补码的含义。
BCD码和ASCII码(压缩与非压缩)
- 原码、反码、补码只针对负数,正数不会变化,并且在负数中,符号位不改变。
- 非压缩BCD码,四位二进制数表示一位BCD码,一个字节表示两位BCD码,即一个字节存放两个十进制数,如12H=0001 0010B,表示十进制数12。
- 压缩BCD码:一个字节存放一个一位十进制数,高四位不做规定(无效),低四位表示该二进制数。
- ASCII码占7位二进制位(扩展的占8个二进制位),选择四类国际上使用最多的字符,共128种。
计算机的字长、微处理器内部的结构
(EU、BIU、指令队列、标志寄存器)。
- CPU的位数:即处理器的字长。如16位处理器,是指数据总线条数和内部寄存器位数均为16位
- 一个字节有8个bit位,一个字有两个字节,16个bit位
- 8位的微处理器地址总线有16条;16位的处理器地址总线有20条;32位的处理器地址总线有32条。能访问的地址空间是 2 n b i t 2^n \ bit 2n bit(n为地址总线条数)
- 8086的指令队列为6字节,8088为4字节
- 8086的外部数据总线为16位,8088为8位
微处理器内部寄存器的功能,通用寄存器。段寄存器
- 通用寄存器:AX,BX,CX,DX
通用寄存器 | 专门用途 |
---|---|
AX | 累加器,乘除法中有专门用途 |
BX | 基址寄存器,用于存放偏移地址 |
CX | 计数寄存器 |
DX | 数据寄存器,乘除法以及I/O端口操作用 |
- 专用寄存器:IP,SP,FLAGS。IP是用户程序不可以进行存取操作的,只能用BIU自动修改。
- 段寄存器:CS(代码段);DS(数据段);SS(堆栈段);ES(附加段)
- DS:SI配合可以指向源串首地址,ES:DI可以指向目的串首地址。
- 通过SI、DI、BX、BP可以灵活在存储器中寻找操作数,并且只有BP、BX、SI、DI可以用在[ ]内进行单元寻址,且只有BX+SI、BP+SI、BX+DI、BP+DI的组合是合法的,SI+DI等是不允许的。
- 标志寄存器的几个标志:OF、DF、IF、TF、SF、ZF、AF、PF、CF
标志寄存器 | 专门用途 |
---|---|
CF | 进位标志,无符号加减运算以及移位操作有意义,当最高位产生进位时,置为1 |
PF | 奇偶校验。运算结果低8位有偶数个1,则置为1 |
AF | 辅助进位标志。8位加减运算时,低4位向高4位进位或借位时,其置为1。仅在BCD数运算时有意义 |
ZF | 零标志位。运算结果为0的时候置为1 |
SF | 符号标志。运算结果位负,置为1 |
OF | 溢出标志。仅带符号数运算有意义。最高位进位(借位) 次高位进位(借位) |
TF | 单步标志。若为1,CPU处于单步工作方式,每执行完一条指令产生一次单步中断 |
IF | 中断标志,若为1,则允许CPU响应可屏蔽中断 |
DF | 方向标志。DF=0:数据从低地址到高地址方向,SI、DI递增;DF=1:数据从高地址到低地址方向,SI、DI递减。 |
- 时钟周期、总线周期(时序),逻辑地址:段地址*10H+偏移地址=物理地址。
- 时钟周期,CPU中最小的周期,是CPU最基本的时间单位,由主频决定。( T = 1 f T=\frac{1}{f} T=f1)
- 总线周期:CPU访问(读或写)一次存储器或IO所花的时间称一个总线周期,一个总线周期通常包括四个时钟周期 T 1 T_1 T1 , T 2 T_2 T2 , T 3 T_3 T3 , T 4 T_4 T4
- T 1 T_1 T1 周期内,CPU将要访问的存储单元或IO的地址送到地址总线上。
- T 2 T_2 T2~ T 3 T_3 T3时,CPU与数据总线进行读/写操作。 T 3 T_3 T3之后,若外设速度跟不上CPU,即外设还未准备就绪,外设通过READY控制线告诉CPU,CPU则在 T 3 T_3 T3 之后插入一个等待周期 T w T_w Tw,若外设就绪,则通过使READY信号有效使CPU自动脱离等待状态而进入 T 4 T_4 T4。
- T 4 T_4 T4:从总线上撤销数据,各个控制信号和状态信号无效,禁止收发数据。
- T x T_x Tx:若一个总线周期之后不立即进入下一个周期则执行空闲周期。
- 指令周期由若干个机器周期组成,机器周期时间包含若干个时钟周期。
- 堆栈的概念;SP的指向,每次操作是2个字节,SS/SP的内容变化规律。
PUSH:SP先减2腾出空间然后数据入栈
POP:SP先加2,然后数据出栈
- 8086最大工作方式和最小工作方式的基本特点8086的存储器管理方式(BHE和A0)。最大工作方式和最小工作方式。最大工作方式中,地址锁存器8283,收发器8286,总线控制器8288和8259A的作用。
(1)最小工作模式下,存储器和所有的IO口的信号均有CPU产生,总线控制逻辑电路被减到最小。当最大工作模式的时候,构成较大规模的应用系统,包含两个或者两个以上的处理器。他们的控制信号必须由外部产生,需要加一个8288总线控制器共同形成系统总线信号。
(2)地址锁存器8283
(3)总线控制器8288
(4)收发器8286为必选器件
- 8086的管脚如READY,RESET,INTR,NMI,HOLD等。
- 8086与8088引脚的区别:8086是 M / I O ‾ M/\overline{IO} M/IO,而8088是 I O / M ‾ IO/\overline{M} IO/M;在8086中,有高8位总线允许信号 B H E ‾ / S 7 \overline{BHE}/S_7 BHE/S7,8088中有最小模式信号 S S 0 ‾ \overline{SS_0} SS0。
- 8086的 B H E ‾ \overline{BHE} BHE和 A 0 A_0 A0使得8086存在基地址库和偶地址库。
- 8086的地址/数据复用线是16位 A D 15 ~ A D 0 AD_{15}~AD_0 AD15~AD0;8088有 A D 7 ~ A D 0 AD_7~AD_0 AD7~AD0复用, A 8 ~ A 15 A_8~A_{15} A8~A15仅作为地址线使用。
- N M I NMI NMI:非屏蔽中断请求信号,输入,上升沿触发。
- I N T R INTR INTR:可屏蔽中断请求信号,输入,高电平有效。
- I N T A ‾ \overline{INTA} INTA:可屏蔽中断响应信号:可屏蔽中断响应信号
- H O L D HOLD HOLD:总线保持请求信号,输入,高电平有效。
- H L D A HLDA HLDA:总线保持响应信号,输出,高电平有效。
- C L K CLK CLK:系统时钟,输入,占空比为1/3。
- R E S E T RESET RESET:复位信号,输入,高电平有效。复位脉冲至少持续4个时钟周期。复位后,CS设置为0FFFFH,IP、DS、SS等清零,重启CPU。
- R E A D Y READY READY:数据“准备好”信号线,输入,高电平有效。
- T E S T ‾ \overline{TEST} TEST:等待测试信号,输入。与WAIT指令结合使用,执行WAIT指令时,每5个时钟周期测试一次TEST。
- A L E ALE ALE:地址锁存允许信号,输出,高电平有效。是8086/8088给地址锁存器的控制信号。
- D N E ‾ \overline{DNE} DNE:数据允许信号,输出低电平有效。该信号决定数据总线上的数据是否有效。
- D T / R ‾ DT/ \overline{R} DT/R:数据发送/接收信号,输出。该信号用来控制数据的传送方向。
- I O / M ‾ IO/\overline{M} IO/M存储器I/O端口控制信号,输出。该信号用来区分CPU是进行存储器访问还是I/O端口访问(对8086,电平定义不同)。
- W R ‾ \overline{WR} WR:写信号,输出,低电平有效。
- R D ‾ \overline{RD} RD:读控制信号,输出,低电平有效。当=0时,表示CPU正对存储器或I/O端口的读操作
- M N / M X ‾ MN/\overline{MX} MN/MX:最小/最大方式控制信号,输入。
- S S O ‾ \overline{SSO} SSO:系统状态信号输出。与IO/M信号和DT/R信号一起用来决定最小模式下当前总线周期的状态。
- 寻址方式(数据,堆栈,程序),要求会判断与地址转移有关的寻址方式及物理地址计算。
- 立即寻址:立即数作为操作数。如:MOV AL,26H
- 寄存器寻址:操作数包含在寄存器里面。如:MOV CL,AH。值得注意的是前后数据长度要匹配。可以操作的寄存器有:AX,BX,CX,DX
- 直接寻址方式:操作数在内存中,通过物理地址直接访问数据。如:MOV AX,[20000H]。这里有个默认的段,一般来说,没有指定段前缀的话都默认使用数据段寄存器DS。同时,有个段超越的概念,就是指定段寄存器,如:MOV AX,ES:[500H]
- 寄存器间接存志,指令中的寄存器中的值不是操作数本身,而是操作数的有效地址,如:MOV BX,[SI]。这类指令允许的寄存器是BX,BP,SI,DI。其中,指令若是用到了BP寄存器,则默认的段寄存器为堆栈段寄存器SS,否则是DS。
- 寄存器相对寻址:操作数的有效地址是一个基址或变址寄存器的内容与指令中指定的8位或16位位移量之和。如:MOV BX,[SI+100H]
- 基址变址寻址方式:例如:MOV AX,[BX+SI]
- 相对基址加变址: MOV AX,[AX+SI+200H]
- 段内转移与段间转移
类型 | 方式 | 寻址目标 | 指令举例 |
---|---|---|---|
段内转移 | 直接 | 立即短转移(8位) | JMP SHORT 标号 |
立即近转移(16位) | JMP NEAR PTR 标号 | ||
间接 | 寄存器(16位) | JMP BX | |
存储器(16位) | JMP WORD PTR [BX+500H] | ||
段间转移 | 直接 | 立即转移(32位) | 存储器(32位) |
- 常用指令;MOV、PUSH、POP、加法/减法/比较运算、串操作、逻辑运算、移位、循环(如LOOP、LOOPNE、LOOPE、REP等)、条件转移指令(如JG/JAE等),CALL和INT。对标志位的影响(如INC、DEC、MOV、加法指令等)。
- MOV: CS不能做目的操作数,IP不能做源操作数和目的操作数,目的操作数不能是寄存器,不能从段寄存器到段寄存器,不能从内存到内存。
- OFFSET:取偏移地址
- PUSH、POP:进栈和出栈,堆栈的最大容量为64KB
- XCHG:交换目的操作数和源操作数。段寄存器不能是操作数,不能直接交换两个内存。
- XLAT:转换表:将转换表的起始地址放在BX里面,将需要访问表的对应数据的位置(位移量)放在AL里,执行该指令后,根据位移量将对应表中结果放在AL里面。如一个表TABLE存放了2,4,8,16,若我要查表找到3的平方,则MOV AL,3,然后取表的地址,MOV BX,OFFSET TABLE,然后执行XLAT TABLE后,AL=8
- IN,OUT 端口地址: 读取或输出端口地址,端口地址可以是立即数,也可以存放在DX寄存器里
- LEA:取有效地址。LEA BX,TABLE = MOV BX,OFFSET TABLE,但有些情况必须用LEA。LEA要求源操作数必须是内存,目的操作数必须是一个除了段寄存器以外的一个16为寄存器。
- LDS:将双子指针送到寄存器和DS,通常用SI做目的操作数寄存器。如DS=1200H,(12450)=F346H,(12452)=0A90H,则LDS SI,[450H] 后,SI=F346H,DS=0A90H。
- LES:与LDS一样,不过高位部分给了ES,通常用DI做目的操作数寄存器。
- LAHF:标志传送指令,将标志寄存器的标志送到AH
- SAHF:与LAHF相反,将AH存的值送到标志寄存器
- PUSHF: 标志寄存器内容入栈,对标志寄存器无影响,同时修改堆栈指针SP=SP-2
- POPF:标志寄存器出栈,改变标志寄存器内容,同时修改堆栈指针SP=SP+2
- 算数运算指令:
类型 | 指令 | 功能 | 要求 |
---|---|---|---|
加法 | ADD | 加法 | 不能同为内存,目的操作数不能为立即数,类型必须一致,影响CF、OF、PF、SF、ZF、AF,(INC不影响CF)对于无符号数只关心ZF和CF,有符号数只关注OF,SF,ZF |
INC | 增量 | ||
ADC | 带进位加法 | ||
AAA | 加法的ASCII调整 | ||
DAA | 加法的十进制调整 | ||
减法 | SUB | 减法 | 目的操作数不能为立即数,影响CF、OF、PF、SF、ZF、AF,如果内存是操作数,那么必须说明类型是字还是字节 |
SBB | 带借位减法 | ||
NEG | 取负 | ||
CMP | 比较 | ||
AAS | 减法的ASCII调整 | ||
DAS | 减法的十进制调整 | ||
DEC | 减量 | 不影响CF | |
乘法 | MUL | 无符号乘法 | 格式:MUL 源操作数(不能为立即数) 与AL相乘,结果存在AX 与AX相乘,结果存在DX,AX 如果内存是操作数,那么必须说明类型是字还是字节 |
IMUL | 整数乘法 | ||
AAM | 乘法的ASCII调整 | ||
除法 | DIV | 无符号除法 | 格式:DIV 源 16位被除数放在AX 源可以是寄存器也可以是立即数和内存 AL是商,AH是余数 |
IDIV | 整数除法 | ||
AAD | 除法的ASCII调整 | ||
CBW | 字节扩展为字 | AL字节的符号扩充到AH | |
CWD | 字扩展为双字 | A把AX扩充到DX |
- 逻辑和移位
类型 | 指令 | 功能 |
---|---|---|
逻辑运算 | NOT | 取反 |
AND | 与 | |
OR | 或 | |
XOR | 异或 | |
TEST | 测试 | |
算数逻辑移位 | SHL/SAL | 逻辑/算术左移 |
SHR | 逻辑右移 | |
SAR | 算术由移 | |
循环移位 | ROL | 循环左移 |
ROR | 循环右移 | |
RCL | 带进位的循环左移 | |
RCR | 带进位的循环右移 |
- 字符串处理指令:源串位于当前数据段中,由DS寻址,SI做指针,允许源串使用段超越前缀修改段地址;目的串必须位于当前附加段中,不允许断超越前缀修改短地址,使用ES:DI。标志位DF决定数据传送方向。DF=0为递增方向,即每次串操作SI和DI增加,当DF=1时为递减方向,每次串操作SI,DI递减。
指令名称 | 字节/字操作 | 字节操作 | 字操作 |
---|---|---|---|
传送 | MOVS 目的串,源串 | MOVSB | MOVSW |
比较 | CMPS 目的串,源串 | CMPSB | CMFLAGS |
扫描 | SCAS | SCASB | SCASW |
转入 | LODS | LODSB | LODSW |
存储 | STOS 目的串 | STOSB | STOSW |
- 重复条件指令:REP:无条件重复;REPE/REPZ:相等/结果为零则重复;REPNE/REPNZ:不相等/不为零则重复。
- 循环条件控制:LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ、JCXZ(CX=0则转移)。
- 跳转指令JMP
指令助记符 | 测试条件 | 指令功能 |
---|---|---|
传送 | MOVS 目的串,源串 | MOVSB |
比较 | CMPS 目的串,源串 | CMPSB |
扫描 | SCAS | SCASB |
转入 | LODS | LODSB |
存储 | STOS 目的串 | STOSB |
-
重复条件指令:REP:无条件重复;REPE/REPZ:相等/结果为零则重复;REPNE/REPNZ:不相等/不为零则重复。
-
循环条件控制:LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ、JCXZ(CX=0则转移)。
-
跳转指令JMP
-
间接标志条件转移指令
-
中断指令、CALL指令、转移指令的差异:
JMP是无条件转移指令,CALL是子程序调用指令。指令JMP、CALL的区别在于,JMP指令控制程序直接跳转到目标地址执行程序,程序总是顺序执行,指令本身无堆栈操作过程。CALL指令跳转到指定目标地址执行子程序,执行完子程序后,会返回CALL指令的下一条指令处执行程序,执行CALL指令有堆栈操作过程。INT虽然也是一种远调用,但一般只用于调用中断例行程序(又称中断服务程序)。执行中断指令时,首先要入栈保存调用程序执行的现场,即当时的标志寄存器的值和断点的地址,然后,根据中断类型号(n×4)到中断向量表中取得中断例行程序的入口地址,分别送给IP和CS,以实现调用中断例行程序的功能。并且INT指令执行后,把IF和TF置0,但不影响其它标志位。 -
内存分类及特点,引脚模型,规格表示方式?存储器扩展,线选法、全译码、部分译码的特点。8088内存接口电路分析及设计。
(1) 存储器的分类:存储器分为内部存储器和外部存储器。其中外部存储器包括磁带、磁盘、光盘、闪存卡等。内存存储器分为随机存储器(RAM)和只读存储器(ROM),其中RAM断电丢失信息,ROM断电不丢失,RAM分为动态RAM(DRAM)和静态RAM(SRAM)。DRAM需要不断刷新数据保持数据。
(2)规格表示方式:单位是bit,如64K×4的规格是 2 6 ∗ 2 10 ∗ 2 2 = 2 18 2^6*2^{10}*2^2=2^{18} 26∗210∗22=218字节,表示内存的位数是4,字节宽度是64K。其代表的含义是这一个地址线访问半个字节,所以该内存所需的地址线是 l o g 2 64 + 10 = 16 log_264+10=16 log264+10=16根地址线,由于位数是4,则数据线是4根。
(3)存储器的扩展包括字扩展和位扩展,其中字扩展的含义是8K×8扩展为16K×8,位扩展的含义是8K×16。
(4) 线选法:直接用高位的某一位做片选信号,电路简单,地址空间浪费
大,部分地址线未参与译码会出现地址重叠现象,芯片较多的时候会出现可用地址空间不连续的情况。
(5) 全译码法:全部高位地址参与译码,每个存储单元的地址都是唯一
的,不存在地址重叠,译码电路复杂。
(6) 部分译码法:只对高位地址线的某几位进行译码,生成片选信号。部
分译码可以简化译码电路,但也存在地址重叠,浪费地址空间,对小系统影响较小。
(7) 需要掌握8088结合74LS138的全译码方式,线选法和部分译码只需了解特点。 -
I/O端口地址(固定,可变),译码电路设计(要求能根据38译码电路得到地址范围),指令IN和OUT。数据的传送方式及特点(程序控制(要求掌握查询方式)、中断、DMA。
(1) I/O寻址方式包括独立编址和内存映像
(2) 独立编址:内存地址空间与I/O地址空间相互分离,并且用地址线的低16位寻址IO端口,其中系统较小的时候(I/O设备少于256个),可以只用低8位(固定)。
(3) 内存映像:I/O地址占用部分内存地址,I/O地址生成方式与内存完全一样:由20条总线生成。所以,访问I/O设备与访问内存无区别,并且不能使用IN/OUT指令,而是内存传送指令。
(4) I/O端口的译码电路,利用74LS138设计译码电路。同内存译码电路类似。
(5) IN/OUT指令的用法 -
CPU与外设间的数据传送方式:主要有程序控制方式(无条件传送和条件(查询)传送)、中断方式和DMA方式三种,前两种是软件实现,DMA是硬件实现。中断和DMA需要了解概念,不考编程。重点掌握查询方式。
(1) 8259A的工作原理
(2) 一个I/O地址称为端口。
(3) I/O端口寻址分为直接寻址和间接寻址。直接寻址的目的操作数是8位立即数,访问的端口范围是00~FFH,共256个。间接寻址的目的操作数由DX提供,能访问64K个I/O端口。 -
中断的基本概念(申请(每条指令结束时都会检测INTR)、响应(入栈)、返回过程(出栈)各完成了哪些动作?)。8086CPU对中断请求响应优先级和过程,中断类型码(0~4号中断的作用)?中断类型号物理地址计算。
(1) 中断向量表位于存储器的前1024字节中,地址为00000H~003FFH
(2) 包含256个不同的4字节中断向量
(3) 中断向量与中断向量表:中断服务程序的入口地址成为中断向量,存储各个中断服务程序的连续地址空间成为中断向量表。
(4) 中断向量用0~255的中断类型号表示。8086/8088规定了前5个中断向量:INT 0:除法错;类型1:单步或陷阱(TF=1);类型2:非屏蔽硬件中断;类型3:断点中断;类型4:溢出中断。
(5) 中断优先级:除法错误、INT n、INTO –> NMI –> INTR -> 单步中断(优先级从高到低)
(6) 硬件中断:
- INTR可屏蔽中断(优先级较低),只有IF=1的时候才 允许响应此引脚的中断请求,CPU执行周期中,在最后一个周期会对INTR采样,若有中断请求则在下一个总线周期立即进入中断总线周期。
- NMI不可屏蔽中断(优先级较高),边沿脉冲触发,不受中断标志位IF的影响,自动产生类型号为2的中断(用来应对紧急情况如I/O出错,掉电、协处理器异常等)
(7) 中断响应过程:标志寄存器入栈 ->清除中断标志位IF和陷阱标志TF ->代码段寄存器CS压入堆栈 ->指令指针IP压入堆栈 ->取出中断向量内容,然后送入CS,IP,使下一条指令进入中断服务程序。
(8) IRET:中断返回。中断结束后,执行IRET,之后会恢复断点的CS,IP出栈,然后标志寄存器出栈,最后返回主程序。
- 8259的基本概念,内部寄存器及其功能(ISR, IMR, IRR);级联、屏蔽方式、优先级工作方式(优先级自动循环方式原理?)。初始化命令字与操作命令字,初始化流程?(不考编程)(不出大题)
- 8253的端口特性、每种工作方式及其特点;要求会编程。(方式2和方式3结合使用)
(1) 8253 的主要功能
1. 具有三个独立的16位计数通道;
2. 每个计数通道可按二进制或二-十进制计数;
3. 每个计数通道的计数速率可达2MHz;
4. 每个计数通道有六种工作方式;
5. 全部输入输出都与TTL电平兼容。
(2) 方式0——计数到零产生中断请求 (特点:1. 一次写入,不再重复;2. 在计数过程中,可由GATE信号控制暂停计数;3. 在计数过程中也可改变计数值。)
(3) 方式1—硬件可重复触发的单稳态触发器(特点:1. 在CPU写入计数初值后,计数器并不开始计数,直至门控信号GATE上升沿(即门控触发信号)出现,并在其下一个CLK脉冲的下降沿,CR的内容送入CE,同时使OUT输出变为低电平,然后开始对随后的CLK脉冲进行减1计数;2. 由于GATE上升沿的触发,使OUT输出端产生一个宽度为N个CLK周期的负脉冲。此后,若再次由GATE上升沿触发,则输出再次产生一个同样宽度的负脉冲。)
(4) 方式2——分频器(特点:1. 不用重新设置计数值,通道能连续工作,输出固定频率的脉冲。2. 如果计数初值为N,则每输入N个CLK脉冲,输出一个负脉冲。负脉冲宽度为1个CLK周期,重复周期为N倍的CLK周期。3. 如果在计数过程中,CPU重新写入计数值,则对于正在进行的计数无影响,而是从下一个计数操作周期开始按新的计数值改变输出脉冲的频率。)
(5) 方式3——方波发生器(特点:1. 若计数初值N为偶数,则输出波形是周期为N个CLK周期的对称方波;若计数初值N为奇数,则输出波形是周期为N个CLK周期的基本对称矩形波,其高电平持续时间比低电平持续时间多一个CLK周期。2. 如果在计数过程中,GATE信号变低,则暂停现行计数过程,直到GATE再次有效,将从计数初值开始重新计数。3. 如果要求改变输出方波的频率,则CPU可在任何时候重新写入新的计数初值,并从下一个计数操作周期开始改变输出方波的频率。)
(6) 方式4——软件触发选通(特点:1. 当写入控制字后,OUT输出为高。当写入计数初值后计数器即开始计数(相当于软件触发启动),当计数到0后,输出变低,经过1个CLK周期,输出又变高。2. 方式4不能自动重复计数,即这种方式计数是一次性的。3. 每次启动计数都要靠重新写入计数值,所以称为“软件触发选通”。)
(7) 方式5—硬件触发选通(特点:1. 设置了控制字后,输出为高。2. 在设置了计数初值后,计数器并不立即开始计数,而是由门控信号GATE的上升沿触发启动。3. 当计数到0时,输出变低,经过一个CLK周期,输出恢复为高,并停止计数。4. 要等到下次门控GATE信号的触发才能再计数,即方式5的计数是一次性的。)
(8) 方式2(分频器)、方式4(软件触发选通)和方式5(硬件触发选通),它们的输出波形相同,都是宽度为1个CLK周期的负脉冲。区别是,方式2是自动重复工作的,而方式4需由软件(设置计数值)触发启动,方式5需由门控GATE信号触发启动。
(9) 方式5(硬件触发选通)与方式1(硬件触发单稳),触发信号相同,但输出波形不同。方式1输出为宽度是N个CLK周期的负脉冲(计数过程中输出为低);方式5输出为宽度是1个CLK周期的负脉冲(计数过程中输出为高)。
(10) 在6种工作方式中,只有方式0在写入控制字后输出为低;其余5种方式,都是在写入控制字后输出为高。
(11) 6种工作方式中的任一种方式,只有在写入计数初值后才能开始计数。方式0、2、3、4都是写入计数初值后,计数过程就开始了。方式1、5在写入计数初值后,需由外部GATE信号的触发启动,才能开始计数过程。
(12) 6种工作方式中,只有方式2(分频器)和方式3(方波发生器)为自动重复工作方式,其他4种方式都是一次性计数,要继续工作需要重新启动。
(13) 当采用二进制计数时,如果是8位二进制计数(计数值≤256),则在8253初始化编程的传送指令“MOV AL, n”中,n可以写成任何进制数(二进制、十进制或十六进制)的形式;
(14) 如果是16位二进制计数(计数值≤65536),一种方法是先把计算得到的十进制计数初值n转换成4位十六进制数(即16位二进制),然后分两次写入8253的指定端口