1、第一章 微型计算机系统概述 1.2 到目前为止,微处理器的发展共经历了几代? 从内部结构讲,历代微处理器有哪些不同? 到目前为止,微处理器的发展共经历了五代。 第一代(19711973 年) 为: 4 位和低档 8 位微处理器和微计算机。其特点是:采用 PMOS 工艺速度较低,基本指令执行时间为 1020s ,字长 4 位或 8 位,封装引脚为 16 条、24条,指令简单,运算功能较差。但价格低廉:主要用于面向消费的家用电器,计算器和进行简单控制等。 第二代(19731978 年) 为: 8 位的微处理器和微计算机。其特点是采用 NMOS 工艺,采用 10条双列直插引脚(DIP) ,集成度比第
2、一代产品提高 12 倍(8080 为 4900 个晶体管/ 片、 MC6800为 6800 个晶体管/ 片,Z80 为 10000 个晶体管/ 片) ,运算速度提高一个数量级。基本指令执行时间为 12s,指令系统比较完善,寻址能力有所增强。 第三代(19781981 年) 为:16 位微处器和微计算机。其特点是采用高性能的 HMOS 工艺。各方面性能比第二代又提高一个数量级,基本指令时间为 0.5s。所组成的微计算机巳经达到或超过中档小型机( 如 PDPII/45)的水平。 第四代(19811989 年 )为: 32 位微处理器和计算机。这一代产品属超大规模集成电路SLSI(Super Lar
3、ge Scale lntegration)。采用新的 NMOS 工艺,时钟频率高于 20MHz,微指令的执行时间可达 55ns。1989 年出现的 80486 集成度可达 100 万个晶体管 /片。 第五代(1990 年以后) 为:64 位微处理器和微计算机。1993 年 3 月 Intel 公司推出新一代 64位微处理器 Pcntium、 (简称 P5)集成度达 310 万个晶体管/ 片,其时钟频率达 6066MHz,组成 Pentium 586 微计算机 1.4 什么是微处理器?微处理器一般具有哪些功能? 微处理器主要由运算器和控制器组成,一般也称为中央处理器 CPU,微处理器是微型计算机
4、的核心,本身具有共同的特点。 微处理器一般具有以下功能: 可以进行算术和逻辑运算; 可保存少量数据; 能对指令进行译码并执行规定的动作; 能和存储器、外设交换数据; 提供整个系统所需要的定时和控制; 可以响应其他部件发来的中断请求。 第二章 计算机中的数制和编码 2.选择题 (1 )十进制数38 的八位二进制补码是( B )。 A)0101 1011 B) 1101 1010 C) 1101 1011 D)0101 1010 (2 )将十六进制数 163.5B 转换成二进制数是(D )。 A)1101010101 .1111001 B)110101010. 11001011 C)1110101
5、011 .1101011 D)101100011. 01011011 (3 )将十进制数 35 转换成二进制数是( A )。 A)100011 B ) 100111 C) 111001 D) 110001 (4 )将八进制数 154 转换成二进制数是( A )。 A)1101100 B ) 111011 C) 1110100 D) 111101 (5 )将二进制数 101101101.111101 转换成十六进制数是( B ) 。 A) 16A.F2 B) 16D.F4 C) 16E.F2 D)16B .F2 (6 )下列数据中( C )最小。 A)1011001B B ) 75D C) 37
6、O D)2A7H (7 )带、号的数,如 N1=1001010,称为( B ) 。 A)无符号数 B )真值 C )浮点数 D )机器数 (8 )表达式 11*4096+6*512+5*64+3*8+3 的结果以二进制表示时,含有( B )个“1 ”。 A)10 B ) 11 C)12 D )13 (9 )在( C )表示中,二进制数 1111 1111 表示十进制数1 。 A)原码 B )反码 C )补码 D )BCD 码 (10)十进制数 205.49 转换成二进制数为( C )。 A) 1011 0111.101 B)1100 1000 .011 C) 1100 1101.011 D)1
7、011 0111 .001 (11)补码1011 0110 代表的是进制负数是( A )。 A)74 B )68 C )54 D ) 48 (12)长度相同但格式不同的两种浮点数,假设前者阶码长,尾数短,后者阶码短,尾数长,其他规定均相同,则它们可表示的数的范围和精度为( B )。 A)两者可表示的数的范围和精度相同 B )前者可表示的数的范围大但精度低 C)后者可表示的数的范围大且精度高 D )前者可表示的数的范围大且精度高 第三章 8086 微处理器 3.1 填空题 (1 )8088CPU 内部结构按功能可分为 总线接口部件和执行部件 两部分。 (2 )根据功能不同,8086 的标志位可分
8、为 条件码标志和控制 标志。 ( 3)当存储器的读出时间大于CPU 所要求的时间时,为了保证CPU 与存储器的周期配合,就要利用 READY或数据未准备好 信号,使CPU 插入一个TW 状态。 (4 )当复位信号(RESET)来到时, CPU便结束当前操作,并对标志寄存器、 IP、 DS、 ES、SS及指令队列清零,而将CS 设置为 0FFFF H. (5)8086/8088 构成的微机中,每个主存单元对应两种地址: 物理地址和逻辑地址 。 (6)逻辑地址由段基址和 偏移地址 组成。 (7)8086 中 执行部件 的功能是负责指令执行。 (8) CPU中的 总线接口部件 ,根据EU 的要求,完
9、成CPU 与存储器或I/O 设备间的数据传送。 (9 )CPU 从主存取出一条指令并执行该指令的时间称为 总线周期 。 (10)在计算机出现溢出情况时, 标志 寄存器会记录这一情况。 (11 )8086CPU 的物理地址是指实际的 20 位主存单元地址,每个存储单元对应唯一的物理地址,其范围是 00000H0FFFFFH 。 (12)将逻辑地址转换为物理地址的公式是 物理地址= 段地址左移 4 位+ 偏移地址 。 3.5 什么是总线?什么是总线周期? 总线是一簇公共的信号线。它是计算机中传递信息代码的干线。按照工作性质不同划分总线有:地址总线,数据总线和控制总线。 8086 CPU通过总线对存
10、储器或 I/O端口进行一次访问所需要的时间称为一个总线周期。 3.7 在 8086 的微机系统中,为什么常用 AD0 作为低 8 位数据的选通信号? 在 8086 系统中,常将 AD0 信号作为低 8 位数据的选通信号,因为每当 CPU 和偶地址单元或偶地址端口进行数据交换时,在 T1 状态,AD0 引脚传送的地址信号必定为低电平,在其他状态则用来传送数据。而 CPU 的传输特性决定了只要是偶地址单元或偶地址端口交换数据,那么 CPU 必定通过总线的低 8 位即 AD7AD0 传输数据。可见,如果在总线周期的 T1 状态, AD0 为低电平,实际就指示了在这一总线周期中, CPU 将用总线低
11、8 位和偶地址单元或偶地址端口交换数据。 第四章 8086 指令系统 1.判断下列指令的正误(DATA、DATA1 均为变量名) (1 )MOV ES ,3F00H 错误 立即数不能直接送段寄存器 (2 )PUSH AL 错误 PUSH是字操作指令堆栈操作作为字操作 AL 改为 AX (3 )SHL AX,2 错误 移位次数大于 1,则把移位次数置于 CL 寄存器 MOV CL,2 SHL AX,CL (4 )IN AL ,DX 正确 从 DX 所指的端口中读取 1 个字节 (5 )MOV BX , SI 错误 不允许两个同为存储单元 (6 )JMP BX 正确 (7 )LEA BX ,DAT
12、A 正确 (8 )POP CS 错误 禁止对 CS 寄存器赋值 (9 )MOV AL , BX+10H 正确 (10)MOV DATA1 ,DATA 错误 不能两个内存单元之间直接交换数据 (11 ) XCHG CS, AX 错误 CS 和 IP 不能作为交换指令的源操作数也不能作为目的 (12)MOV BX , 1000 错误 不能两个内存单元之间直接交换数据 (13)XCHG BP ,IP 错误 同( 11) (14)PUSH CS 正确 CS寄存器的值可以推入堆栈,但不能从堆栈中弹出 1 个值到 CS (15)POP CS 错误 不能从堆栈中弹出 1 个值到 CS (16)IN BX ,
13、DX 错误 只能是累加器 AX (17)MOV BYTE PTR BX , 1000H 错误 1000 超过了一个字节的范围 (18)MOV DS, 1000H 错误 MOV AX, 1000H MOV DS, AX 不能直接向 DS中送立即数 (19)MOV CS, AX 错误 不允许使用 CS 寄存器 (20)MOV BX DI ,10 错误 必须指明是字节操作还是字操作 (21)IN AL, N ( N255) 错误 I/O 地址由 DX 给出。 (22)ADD AL, DATA BX 正确 3.A 5. 实现两个十六进制二进制的加法。要求加数放在 FIRST 开始的单元,被加数放在SE
14、COND 开始的单元,和数放在 SUM 单元。 MOV AX , FIRST MOV BX , SECOND ADD AX , BX MOV SUM , AX 7. 指出下列指令中,源操作数的寻址方式。 (1 )MOV ES , 3F00H 直接寻址 (2 )PUSH AX 寄存器寻址 (3 )SHL AX,1 立即数寻址 (4 )IN AL ,DX 间接端口寻址 (5 )MOV BX , SI 寄存器间接寻址 (6 )JMP BX 段内间接寻址 (7 )LEA BX ,DATA 直接寻址 (8 )POP SI 固定寻址 (9 )MOV AL , BX+10H 寄存器相对寻址 (10)MOV
15、DX ,DATBX SI 基址变址寻址 (11 )XCHG BX ,AX 寄存器寻址 (12)MOV AX ,1000 BP+DI 基址变址寻址 (13)XCHG BX ,AX 寄存器寻址 (14)PUSH BX 寄存器间接寻址 (15)POP BX SI 固定寻址 (16)INC BX 寄存器寻址 (17)MOV BYTE PTR BX , 100 立即数寻址 (18)MOV DS, 1000H SI 寄存器相对寻址 (19)MOV ES, AX 寄存器寻址 (20)MOV BYTE PTR BX DI ,10 立即数寻址 (21)IN AL, N (N255) 直接端口寻址 (22)ADD
16、 AL, DAT BX 寄存器相对寻址 8(1 ).AX=FC2AH ,SF=1 ,ZF=0 ,CF=1 ,OF=0 (2 )( 13754H)=20H ,CF=0 ,( 13755H)=10H ,OF=0 14.串操作指令与寄存器 SI( DI)及方向标志 DF 密切相关。试列表说明指令MOVSB/MOVSW、 CMPSB/CMPSW、 SCASB/SCASW、 LODSB/LODSW、 STOSB/STOSW和 SI、DI 及 DF 的关系。 MOVSB 传送一个字节,且 SI、 DI 自动 1 ,DF=0时+1 。 MOVSW 传送一个字,且 SI、DI 自动 2 CMPSB 比较两个字
17、节,且 SI、DI 自动1 。 DF=0 时+1 CMPSW 比较两个字,且 SI、DI 自动2 SCASB AL中的字节与ES:DI 所指的字节进行比较,不存结果,只要标志位, DI DI +1。 DF=0时,+1 。 SCASW AX中的字与 ES:DI所指的字进行比较,不存结果,保留标志位,DI DI +2。 LODSB 从 DS:SI指定的存储单元取一个字节送入AL,且SI SI+1。 LODSW 从 DS:SI指定的存储单元取一个字送入 AX,且SI SI+2。 STOSB 将 AL中的一个字节存入ES:DI 指定的内存单元,且D I DI+1。 STOSW 将 AX中的一个字存入
18、ES:DI指定的内存单元,且DI DI +2。 16.设当前 SS=2010H, SP=FE00H, BX=3457H,计算当前栈顶地址为多少?当执行 PUSH BX 后,栈顶地址和栈顶 2 个字节的内容分别是什么? (1 )当前栈顶地址为 SS*16+SP=20100+FE00=2FF00H (2 )执行 PUSH BX 后,栈顶地址为 2FF00H2 2FEFEH 2FEFEH 的内容为 57,2FEFFH 得内容为 34。 第五章 汇编语言程序设计 5.1.编写一个程序,从键盘接收 10 个十进制数字字符,然后将这些数字加密存储在内存的缓冲区 BUFFER 中,加密表如下: 输入数字:0
19、,1,2,3,4,5,6,7,8,9 密码数字:9,2,4,6,1,7,0,8,3,5 DATA SEGMENT TABLE DB 9,2,4,6,1,7,0,8,3,5 XX DB 7 YY DB ? DATA ENDS MOV BX,OFFSET TABLE MOV AH,0 MOV AL,XX ADD BX,AX MOV AL,BX MOV YY,AL 5.2.编写一汇编语言程序,实现将数据段中首地址为 1000H(偏移地址)的 100 个连续存放的字节数据搬移至该段内首地址为 1050H(偏移地址)的连续的 100 个内存单元中。 DATA SEGMENT ORG 1000H TABL
20、E DB 9,2,4,6,1,7,0,8,3,5, DB 0,7,8,5,8,9,#.;100 个字节 DATA ENDS MOV SI,1063H MOV DI,10B3H MOV CX,64H STD REP MOVSB 5.3 从100 个带符号数中寻找最大值,结果放在 MAX 单元中。 DATA SEGMENT DAT DB 0,1,8,27,64,-9,-5,6,77,-56 MAX DB ? COUNT EQU $-DAT DATA ENDS LEA BX,DAT MOV CX,COUNT-1 MOV AL,BX KKK: INC BX CMP AL,BX JL XX1 LOOP
21、KKK JMP EXIT XX1: MOV AL,BX JMP KKK EXIT: MOV MAX,AL MOV AH,4CH INT 21H 5.4 统计从01000H 内存单元开始的 100 个字 (WORD) 符号数中的正数、负数和零的字 (WORD)个数。 DATA SEGMENT ORG 1000H BUFFER DW 0,1,8,27,64,-9,-5,6,77,-56,9,34,-7,0 COUNT EQU 14 PLUS DB 0 ZERO DB 0 MINS DB 0 DATA ENDS LEA SI,BUFFER MOV CX,COUNT CLD CHECK:LODSW O
22、R AL,AL JS XX1 JZ XX2 INC PLUS JMP NEXT XX1:INC MINS JMP NEXT XX2:INC ZERO NEXT:LOOP CHECK 5.5 试编写一个汇编语言程序,求级数 12+22+32+的前n项和刚好大于 1000 的项数n。 CODE SEGMENT ASSUME CS:CODE START: MOV BX,0 MOV DX,0 LOP1: INC BX MOV CX,BX MOV AX,0 LOP2: ADD AX,BX LOOP LOP2 ADD DX,AX CMP DX,1000 JBE LOP1 MOV AH,4CH INT 21
23、H CODE ENDS END START 5.6 设有两个数组 A 和B,其中数据均为 20 个,两数组中的数据都按自小到大的顺序存放, 现在要将两个数组合并成一个数组 C,使数组 C的数据按自小到大的顺序存放。 DATA SEGMENT A DB 1,5,7,8,15 B DB 3,4,6,9,11 C DB 10 DUP(?) DATA ENDS LEA SI,A MOV CX,5 LEA BX,C KA: MOV AL,SI MOV BX,AL INC BX LOOP KA LEA SI,B MOV CX,5 KB: MOV AL,SI MOV BX,AL INC BX LOOP KB
24、 MOV CX,9 LOOP1: MOV DI,CX MOV BX,0 LOOP2: MOV AL,CBX CMP AL,CBX+1 JGE COTINUE XCHG AL,CBX+1 MOV CBX,AL COTINUE:INC BX LOOP LOOP2 MOV CX,DI LOOP LOOP1 第六章 存储器 3.用下列 RAM 芯片构成 32K8 的存储器模块,各需要多少芯片? (1) 1K8(2) 4K8(3) 1K4(4) 16K4 解: (1) 32 个 (2)8 个 (3) 64 个(4)4 个 4.为8086CPU 扩充一存储器,假设使用芯片 6116( 2K8RAM ),要
25、求: (1)地址从A0000H 开始,存储容量为 4K8 位,地址连续。 (2)画出电路连接图。 (3)使用汇编语言在其存储区域内存入全“A”字符,然后再读出,验证其存储是否正确。 A0A10OE WE61161#CERDOE WE61162#CED7D0A19A17A18A16A15A14A13A12A11WR与或非或或与非5.型号为 1K4 的静态芯片,应有多少条地址线?多少条数据线? 型号为 1K4 的静态芯片,应有 10 条地址线;4 条数据线? 6.试用 10241 位的芯片组成 1K8位存储空间,设计一种与 8 位CPU 连接的方案,并画图说明。 7.设计一个8086CPU 与存储
26、器连接图,要求: (1)CPU 工作在最小模式。 (2)EPROM 16K8,地址从 00000H开始(连续) 。 (3)RAM 16K8,地址从 0C000H 开始(连续) 。 8 设某微型计算机的内存 RAM 区的容量为 128K,若用 2164 芯片构成这样的存储器,需要多少片 2164?至少需要多少根地址线?其中多少用于片内寻址?多少根用于片间寻址? 片内地址线是为了对存储器芯片中的每一个存储单元都能寻址,CPU 为其提供的地址线。比如 6264 为 8K8 ,那么片内地址线为 13 根 A0A12。 2164 芯片为 64k1bit ,构成 128KB 那么需要 16 片,其中八片一
27、组,共两组。用于片内寻址的为 16 根,片间的为 1 根,总共 17 根。 第七章 输入 /输出接口 3.端口如何编址?在 8086 微型计算机系统中,端口与内存是统一编址还是单独编址? 端口有两种编址方式:端口统一编址和端口独立编址。 端口统一编址是把每一个端口视为一个存储器单元,并赋以相应的存储器地址。 端口独立编址是把所有 I/O 接口看作一个独立于存储的 I/O空间。 在 8086 微型计算机系统中,端口与内存是单独编址。 5.CPU 与外设之间传输的信息有哪几类?各有何特点? CPU 与外设之间传输的信息有三类:数据信息、状态信息、控制信息。 CPU 和外部设备交换的基本信息就是数据
28、,数据通常为 8 位或16 位。 状态信息反映了当前外设所处的工作状态,是外设通过接口送往 CPU 的。 控制信息是 CPU 通过接口传送给外设的,CPU 通过发送控制信息,控制外设的工作。 6.CPU 与外设之间传输信息的方式有哪几种?各有何特点? CPU 与外设之间传输信息的方式一般有四种:无条件传输方式、程序查询传输方式、中断方式、DMA方式。 无条件传送方式是指 CPU 对外设接口的读写随时都可以进行, 不需要等待某种条件的满足。无条件传送方式仅局限于外部控制过程的各种动作时间是固定且是已知的前提下,直接用 IN 或 OUT指令与外设进行传送数据。 程序查询传送方式是指 CPU 在与外
29、设传递数据前首先查询外设的状态(即条件), 若外设准备好才传送,若未准备好,CPU 就等待。CPU 要不断查询外设状态,占用大量 CPU时间。 在中断传送方式下,外设具有申请 CPU 服务的主动权,当输入设备将数据准备好或输出设备可以接收数据时,外设就可以向 CPU 提出中断请求,使 CPU暂时停下目前的工作而和外设进行一次数据传输。等输入操作和输出操作完成后,CPU继续进行原来的工作。 直接存储器存取方式 DMA(Direct Mem ory Access)。外设请求数据传送时,经过 DMA 控制器发出总线请求信号,CPU 响应后 DMA 控制器就控制了系统总线,送出存储器读写所需的地址和控
30、制信号,送出外设读写所需的控制信号,从而实现外设和存储器之间的直接数据传送。 7.中断传输方式和查询传输方式相比较, 有何优缺点?什么时候用查询传输方式?什么情况下使用中断传输方式? 中断传输方式和查询传输方式相比较,查询传输方式的优点是 I/O 接口简单,但是它的CPU 利用率低,不能满足实时控制系统对 I/O 处理的要求。而中断传送方式能具有如下特点:提高了 CPU的工作效率;外围设备具有申请服务的主动权;CPU 可以可外设并行工作;可适合实时控制系统对 I/O处理的要求。 中断传输方式一般适合于外设数量多、速度中等以下、数据量少的场合。 CPU 与外设不同步工作时,难以保证在 CPU 执
31、行输入操作时,外设已准备好,或执行输出操作时,外设施空闲状态,一般采用查询传输方式。 第八章 中断技术 1.选择题 (1)已知 8259A 与 8086 CPU 相连,其对应的终端类型码为 40H47H,那么在初始化时,CPU 送给8259A的 ICW2 值和 IR3 中断源被响应时,8259A 送给 CPU 的中断类型分别为(C) 。 A)40H 和 47H B)40H 和 40H C)40H 和43H D)43H 和 47H (2)8259A内中断类型号的数据长度为(A) 。 A)8 位 B)3 位 C)16 位 D)8 位或 16 位 (3)8259A中断控制器级联的方法最多可用 9片,
32、则(C) 。 A)最多可连接 72 个中断源 B)最多可连接 16 个中断源 C)最多可连接 64 个中断源 2.填空题 (1)单片 8359A可管理 8 级可屏蔽中断,6 片级联最多可管理 43 级。 (2)当中断控制器 8259A的A0 接向地址总线A1 时,若其中一个口地址为 0F2H,若某外设的中断类型码为 35H时,则该中断源应加到 8259A中的中断请求寄存器IIR的 IR5 输入端。 (3)8259A有两类命令字,分别是 预置命令字 和 操作命令字 。 (4)若用两片中断控制器 8259A芯片构成主从级联形式,则这两片 8259A芯片最多可直接管理 15 级外部中断源。 (5)在
33、 8086 构成的系统中,利用 8259A管理外设产生 16 级中断,则至少需要 3 片8259A。 (6)在中断响应过程中,8086往 8259A发两个INTA信号的作用是 一是使总线在此期间处于封锁状态;二是总线锁定信号lock撤除。 。 (7)8259A可采用级联的方式工作,在微机系统中可接 8 个从属的 8259A。 3.8259A 仅有两个端口,如何识别 4条 ICW 命令和 3 条OCW命令? 8259A的7个命令字分别是: 4个初始化命令字ICW1ICW4,3个操作命令字OCW1OCW3。其中 ICW1、OCW2 和 OCW3是写入偶地址的,它们依赖于命令字中的 D4、D3 两个
34、标志位来区分;ICW2ICW4 都写入奇地址,它们总是紧跟于 ICW1 后写入的,8259A 收到 ICW1 后,便能根据 ICW1 的内容逐一识别跟在后面的其他初始化命令字;OCW1 也是写入奇地址,但它是初始化设置后,在工作过程中的任意时刻都可以写入的,也就是说,在初始化完成后,写入奇地址的命令字都是 OCW1。 另外还需要注意的是,在 8259A 片内还有几个寄存器是可以读的,它们是中断请求寄存器 IRR、中断服务寄存器 ISR 和中断屏蔽寄存器 IMR。IMR 可以通过输入指令随时从奇地址端口获取,而 IRR、ISR则都是从偶地址端口读取的,但必须事先设置相应的 OCW3。为了保证获取
35、正确的信息,在每次读偶地址端口前,都要重新设置正确的 OCW3。 4.若某外设的中断类型码为 68H 时,试问: (1)该中断源对应的中断矢量表的入口地址为多少? (2)若该中断源对应的中断矢量表中对应得四个字节(从小到大地址顺序)的内容分别为00H,66H,88H,0A0H,则该中断源的中断服务程序入口地址为多少? 解: (1)68H4=01A0H 该中断源对应的中断矢量表的入口地址为 0A10H。 (2)偏移量 IP 的值为 6600H,段地址 CS 的值为 0A088H,该中断源的中断服务程序入口地址为,0A088:6600。即0A6E80H。 5.什么是中断向量表? 若 8086 的外
36、部中断是通过 8259A 与CPU 连接的, 在响应中断时完成哪些工作?如何进入中断服务程序的? 所谓中断向量,实际上就是中断处理子程序的入口地址,每个中断类型对应一个中断向量。8086 的中断系统是以位于内存 0 段的 03FFH 区域的中断向量表为基础的,中断向量表中最多可以容纳 256个中断向量。 8.8259A的中断屏蔽寄存器IMR和8086/8088的中断允许标志IF有什么区别? 在中断响应过程中,它们怎样配合起来工作? IF 是 8086 微处理器内部标志寄存器的一位,若 IF=0,8086 就不响应外部可屏蔽中断请求 INTR 引线上的请求信号。8259A有 8 个中断请求输入线
37、,IMR 中的某位为 1,就把对应这位的中断请求 IR 禁止掉,无法被 8259A 处理,也无法向 8086 处理器产生 INTR 请求。 第九章 可编程并行接口 8255A 1.填空题 (1) 8255A端口C按位置位复位控制字的 D1D2D3 位用来指定置位或复位的端口C的具体位置。 (2)8255A端口C按位置位复位控制字的 D0 位决定对端口C的某一位置位或复位。 (3)8255A端口A工作在方式2 时,使用端口C的 PC3-PC7 作为与CPU和外部设备的联络信号。 (4)8255A与CPU连接时,地址线一般于CPU的地址总线的 A0 连接。 (5)8255A控制字的最高位D7= 1
38、 时,表示该控制字为方式控制字。 (6)8255A的端口A的工作方式是由方式控制字的 D4 位决定。 (7)8255A的端口B的工作方式由方式控制字的 D2 位决定。 (8)Intel8255A是一个 可编程并行接口 芯片。 (9)8255A内部有 三 个输入/输出端口。 (10)8255A的三个端口中只有端口 C 没有输入锁存功能。 2.8255A 的方式 0 一般使用在什么场合?在方式 0 时,如果使用应答信号进行联络,应该怎么办? 方式 0 的特点是只要 RD、WR 信号有效,就有数据传送,一般用在随时传送数据的场合。若使用在应答信号进行联络,可用 C 口进行联络。对 C 口进行操作,一
39、般 C 口高 4 位用作选通 STB 线, C 口低 4 位用作状态输入 RDY 线。 3.当 8255A 工作在方式 2 并采用中断时,CPU 如何区分是输入或输出引起的中断? 在输入输出均允许中断的情况下,可在中断服务程序中查询状态字,判断 OBF 和 IBF 的状态,当 OBF 有效时是输出,而当 IBF 有效时便是输入。 4.设8255A的 4 个寻址地址号为 0060H0063H,试编写下列各种情况下的初始化程序。 (1)将A 组和 B 组设置成方式 0,A口、B 口为输入,C 口为输出。 (2)将A 组工作方式设置成方式 2,B 组为方式1,B 口作为输出。 (3)将A 口和 B
40、口均设置成方式 1,均为输入,PC6和 PC1 为输出。 (4)将 A 口工作在方式 1,输入;B 口工作在方式 0,输出;C 口高 4 位配合 A 口工作低 4位为输入。 解: (1)初始化程序: MOV DX,0063H MOV AL,92H OUT DX,AL (2)初始化程序: MOV DX,0063H MOV AL,C4H OUT DX,AL (3)初始化程序: MOV DX,0063H MOV AL,B6H OUT DX,AL (4)初始化程序: MOV DX,0063H MOV AL,B8H OUT DX,AL 6.若 8255A 的端口 A 定义为方式 0,输入;端口 B 定义
41、为方式 1,输出;端口 C 的上半部定义为方式 0,输出。试编写初始化程序(口地址为 80H83H) 。 MOV DX,0083H MOV AL,94H OUT DX,AL MOV DX ,80H IN AL,DX MOV DX,81H OUT AL,DX MOV DX,82H OUT AL,DX 7.假设一片8255A 的使用情况如下:A 口为方式 0输入,B 口为方式 0 输出。此时连接的 CPU为 8086, 地址线的 A1、 A2分别接至 8255A的 A0、 A1, 而芯片的 CS非来自 A3A4A5A6A7=00101,试完成 8255A 的端口地址确定和初始化程序。 8255A
42、的端口地址为 A0A7。控制字为 90H。 MOV AL,90H MOV DX,0A6H OUT AL,DX MOV DX,0A0H IN AL,DX MOV DX,0A2H OUT AL,DX 第十章 可编程定时器/ 计数器 3.对8253 定时/计数器各通道的初始化包括哪些内容?设 8253 的端口地址为 360H,362H,364H,366H, 试对其 3 个通道进行初始化编程, 使计数器 0 设置为方式 1, 计数初值为 2500H;计数器 1 设置为方式 2,计数初值为 3000H;计数器 2 设置为方式 3,计数初值为 1000H。 8253 定时/计数器各通道初始化主要包括设置控
43、制字、 赋初值、发锁存命令和读计数值。CLK 为时钟信号,GATE 为门控信号。 8253 的控制字格式 D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD 计数器 0 Mov al, 22H Mov dx, 366H Out dx, al Mov dx , 360H Mov al, 25H Mov dx, al 计数器 1 Mov al, 64H Mov dx, 366H Out dx,al Mov dx , 362H Mov al, 30H Mov dx, al 计数器 2 Mov al,A7H Mov dx, 366H Out dx,
44、 al Mov dx , 364H Mov al, 10H Mov dx, al 4.设某系统中的8253的端口地址为3F0H3F6H, 若要将计数器1设置为方式2, CLK1为2MHz,要求 OUT1 输出 1kHz 的连续脉冲;计数器 2 设置为方式 0,其 CLK2 端输入外部计数事件,每计满 1000个脉冲后向 CPU 发中断请求,使编写满足上述条件的初始化程序。 CLK1=2MHz,OUT1为1k Hz,初值 N1=2M/1 K=2000 N2=1000 计数器1 MOV AL,65H MOV DX,3F6H OUT DX,AL MOV DX,3F2H MOV AL,20H OUT
45、DX,AL 计数器2 MOV AL,0B1H MOV DX,3F6H OUT DX,AL MOV DX,3F4H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL 5.若将 8253 的计数 1 和计数 2 连续串接(OUT1 和 CLK2) ,CLK1 接 2MHz 时钟脉冲,两计数器均工作于方式 2,BCD计数,试计算 OUT2 输出信号的最大周期。 N1=10000 N2=10000 T1=10000/2M=1/200 T2=10000*(1/200)=50S 6.试按如下要求分别编写 8253 的初始化程序, 已知 8253 的计数器 02 和控制字
46、I/O地址依次为04H07H。 (1)使计数器 1 工作在方式 0,仅用 8 位二进制计数,计数初值为 128; 01010000 (2)使计数器 0 工作在方式 1,按BCD 码计数,计数值为 3000; 00100011 (3)使计数器 2 工作在方式 2,计数值为 02F0H。 10110100 第十一章 DMA 控制器 8237 1.填空题 (1 )8237 一共占用 16 个输入/ 输出端口地址。 (2 )8237 的方式控制字中选择通道的是 D1D0 位。 (3 )8237 种控制地址的变化方向是由工作方式寄存器的 D5 位决定的。 (4 )当 8237 的各个通道采用循环优先权方
47、式时,刚服务过的通道优先级变为 最低 。 (5 )当 8237 用于存储器间数据传输时,传送一个字节需要 一 个周期。 2.选择题 (1)8237有 4 个通道(CH0CH4) ,对于 PC 机,通道 CH2用于(C) 。 A)动态 RAM刷新 B)保留 C)软盘 D)硬盘 (2)8237 用作存储器与存储器之间的数据传送时,从源地址中读出的数据通过( C)送到地址单元中去。 A)CPU 的通用寄存器 B)8237 中的读写缓冲器 C)8237 的暂存器 D)8237 中的现行字节寄存器 (3)在 DMA方式下,CPU与总线的关系是( C ) 。 A)只能控制数据总线 B)只能控制地址总线 C
48、)成隔离状态 D)成短接状态 (4)采用 DMA 方式,在存储器与 I/O设备间进行数据传输;对于 PC 机,数据的传送要经过( C ) 。 A)CPU B)DMA 通道 C)系统总线 D)外部总线 第十二章 串行通信和串行接口 2.什么是串行传送的全双工和半双工? 使用同一条传输线既作为输入又作为输出时,虽然数据可以在两个方向上传送,但通信双方不能同时进行发送和接收数据,这种数据传送方式称为半双工。 数据的接受和发送分流分别由两条不同的传输线传送时,通信双方都能在同一时刻进行发送和接收数据,这种数据传送的方式称为全双工方式。 5.设异步通信方式下,1个起始位、7个数据位、偶校验和一个停止位,试画出传送字符“C”的波形。 加上一个起始位,1 个停止位,偶校验,第一位为低电平,表示起始位;地 28 位为数据位,表示传送的是字符“C”的编码是 43H,即 1000011B(在字符帧中低位在前) ;第9 位为1 时偶校验位,