第一章习题答案
一、选择题
1.十进制数 66 转换成二进制数为_______。 A. 11000010 B.01100110 C.11100110 D.01000010
答案:D
2.十进制数 27.25 转换成十六进制数为_______。 A. B1.4H B.1B.19H C.1B.4H D.33.4H 答案:C
3.下列数中最小的是________。
A. (101001)2 B. (52)8 C. (2B)16 D. (50)10 答案:A
4.若一个数的 BCD 编码为 00101001,则该数与______相等。 A. 41H B.121D C.29D D. 29H 答案:C
5.十进制数 9874 转换成 BCD 数为________。 A. 9874H B. 4326H C. 2692H D. 6341H 答案:A
6.BCD 数 64H 代表的真值为_______。 A. 100 B.64 C.-100 D.+100 答案:B
7.十六进制数 88H,可表示成下面几种形式,错误的表示为_______。
A. 无符号十进制数 136 B.带符号十进制数-120 C.压缩型 BCD 码十进制数 88 D.8 位二进制数-8 的补码表示 答案:D
8.若[A]原=1011 1101,[B]反=1011 1101,[C]补=1011 1101,以下结论正确的是______。 A. C 最大 B. A 最大 C.B 最大 D.A=B=C 答案:B
9.8 位二进制补码表示的带符号数 1000 0000B 和 1111 1111B 的十进制数分别是____。 A. 128 和 255 B. 128 和-1 C. -128 和 255 D. -128 和-1 答案:D
10.微机中地址总线的作用是___________。
A.用于选择存储器单元 B.用于选择进行信息传输的设备 C.用于指定存储器单元和 I/O 设备接口单元的选择地址 D.以上选择都不对 答案:C
11.计算机中表示地址使用____。 A.无符号数 B.原码 C.反码 D.补码 答案:A 二、填空题
1.计算机的主机由_______、控制器、主存储器组成。 答案:运算器
2._______确定了计算机的 5 个基本部件:输入器、______、运算器、_______和控制器,
程 序和数据存放在______中,并采用二进制数表示。 答案:冯.诺依曼、输出器 存储器 存储器
3.10110.10111B 的十六进制数是_______,34.97H 的十进制数是______,将 114.25 转换为二 进制数为_______。
答案:16.B8H、52.6055、1110010.01 4.(640)10=(______)2=(________)16 答案:101000 0000 280
5. (256.375)10=(______)2=(________)16 答案:10000 0000. 011 100.6
6.(10111100.1101)2=(______)10=(________)16 答案:188.8125 BC.D
7.二进制数 1000 0001B 若为原码,其真值为_____;若为反码,其真值为_____;若为补码, 其真值为_____。 答案:-1 -126 -127 8.一个 8 位的二进制整数,若采用补码表示,且由 3 个“1”和 5 个“0”组成,则最小的十 进制数为______。
答案:-125 1000 0011
9.在微机中,一个浮点数由_____和_____两个部分构成。 答案:尾数和阶码
10.若[X]原=[Y]反=[Z]补=90H,试用十进制分别写出其大小,X=_____;Y=_____;Z=_____。 答案:-16 -111 -112 三、问答题
1. 在计算机中为什么都采用二进制数而不采用十进制数?二进制数有哪两种缩写形式? 答案:二进制数具有运算简单、电路简便可靠等多项优点。计算机的逻辑器件均采用高低电 平来表示。二进制数的 0 和 1 正好和逻辑电平的高低相吻合,且二进制数使用很方便,还能 节省元器件,4 个元器件的不同组合就能表示 16 个数。 八进制和十六进制 2.什么是程序计数器 PC?
答案:CPU 内部都有一个程序计数器 PC(或指令指针计数器 IP) ,用来存放将要从存储器中 取出执行的下一条指令所在存储空间的位置(指向下一条将要执行的指令) 。它具有自动加 1 的功能。
3.已知[X]补=1001 1101B,[Y]补=1100 1001B,[Z]补=0010 0110B,计算[X+Y]补=?,并指出是 否溢出;计算[X-Z]补=?,并指出是否溢出。
答案:[X+Y]补=0110 0110 溢出 [X-Z]补=0111 0111 溢出 4.将下列十六进制数的 ASCII 码转换为十进制数。
(1) 313035H (2)374341H (3)32303030H (4)38413543H 答案:103H=259 7CAH=1994 2000H=8192 8A5CH=35420
第二章习题答案
一、选择题
1.8086/8088CPU 内部有一个始终指示下条指令偏移地址的部件是_______。 A. SP B.CS C.IP D.BP
答案:C
2. 指令队列的作用是_________。
A.暂存操作数地址 B.暂存操作数 C.暂存指令地址 D.暂存预取指令 答案:D
3. 8086/8088 下列部件中与地址形成无关的是______。 A. ALU B. 通用寄存器 C. 指针寄存器 D. 段寄存器 答案:A
4.对于 8086,下列说法错误的是_______。
A.段寄存器位于 BIU 中 B.20 位的物理地址是在 EU 部件中形成的 C.复位后 CS 的初值为 FFFFHD.指令队列的长度为 6 个字节 答案:B
5.8086/8088 中 ES、DI 分别属于_______。 A. EU、BIU B. EU、EU C. BIU、BIU D. BIU、EU 答案:D
6.BIU 与 EU 工作方式的正确说法是_______。
A. 并行但不同步工作 B.同步工作 C. 各自独立工作 D. 指令队列满时异步工作,空时同步工作 答案:A
7.在执行转移、调用和返回指令时,指令队列中原有的内容_______。 A.自动清除 B.用软件清除 C.不改变 D.自动清除或用软件清除 答案:A
8.下列说法中,正确的一条是______
A. 8086/8088 标志寄存器共有 16 位,每一位都有含义。 B. 8088/8086 的数据总线都是 16 位。 C. 8086/8088 的逻辑段不允许段的重叠和交叉 D. 8086/8088 的逻辑段空间最大为 64KB,实际应用中可能小于 64KB。 答案:D
9.8086/8088 工作于最大模式,是因为_____。
A.可以扩展存储容量 B.可以扩大 I/O 空间 C.可以构成多处理器系统 D.可以提高 CPU 主频
答案:C
10.8088/8086 最大模式比最小模式在结构上至少应增加_____。 A.中断优先级控制器 B.总线控制器 C.数据驱动器 D.地址锁存器 答案:B
11.组成最大模式下的最小系统,除 CPU、时钟电路,ROM,RAM 及 I/O 接口外,至少需增 加的芯片类型为______。
a. 总线控制器 b. 总线裁决器 c. 地址锁存器 d. 总线驱动器 A.b,d B.a,b,c C. a,d D.a,c,d 答案 C
12.工作在最小模式时,对 CPU 而言,下列信号皆为输入信号的是______。 A. HOLD 、 、READY B. 、 、READY C. 、HOLD、 D. 、HOLD、READY 答案:A
13.在最小工作模式下,8088/8086CPU 在每个时钟脉冲的______处,对 HOLD 引脚上的信号 进行进行检测。
A) 上升沿 B) 下降沿 C) 结束位置 D) 中间位置 答案:A
14.LOCK 引脚的功能是____。
A.总线锁定 B.地址锁定 C.数据输入锁定 D.数据输出锁定 答案:A
15.与存储器(或外设)同步以及与协处理器同步的引脚信号依次为_______。 A.READY、 B.READY、HOLD C. 、RESET D. 、 答案:A
16.工作在最大模式时,下列信号皆为输出信号的是_______。 A.QS0、QS1、 B.QS0、 、 C.QS1、 、S0 D. 、QS1、 答案:A
17. 8086/8088 最大模式时, 引脚有效时的正确含义是_____。
A.能中断 CPU 的工作 B.能进行 DMA 操作 C.其它总线部件不能占有总线 D.暂停 CPU 的工作 答案:C
18.工作在最大模式时, 经总线控制器 8288 将对应 CPU 最小模式时的三个引脚状态进行组合, 产生控制和命令信号,这三个引脚应为________。 答案:C
19.8088/8086 中,关于总线周期叙述不正确的是_______。
A.总线周期通常由连续的 T1~T4 组成 B.在读写操作数时才执行总线周期 C.总线周期允许插入等待状态 D.总线周期允许存在空闲状态 答案:B
20.在 8086 读总线周期中,进入 T3 后发现 READY=0,需要插入等待状态,则在插入等待状 态时其引脚的高地址 A19~A16_______。
A.表示读数据对应的高 4 位的地址 B.表示 CPU 当前工作状态 C.处于高阻状态 D.处于不定状态 答案:B
21.设 8086/8088 工作于最小模式,在存储器读、写周期中,总线 AD15~AD0 上数据开始有 效的时刻(不插入 Tw)分别是______。 A. T2、T2 B.T2、T3 C.T3、T4 D.T3、T2 答案:D
二、填空题
1.8086/8088CPU 在结构上由两个独立的处理单元_______和_______构成,这两个单元可以 _____工作,从而加快了程序的运行速度。 答案:EU BIU 并行
2.8086 是 Intel 系列的 16 位处理器,从功能上,它分为两个部分:即总线接口单元和执行单 元。总线接口单元由_______、_______、_______、_______、_______等寄存器和 20 位地址 加法器和 6 字节指令队列构成。执行单元有 4 个通用寄存器,即______;4 个专用寄存器, 即____、_____、_____、______等寄存器和算术逻辑单元组成。 答案:AX、BX、CX、DX SP、BP、DI、SI
3.任何 CPU 都有一个寄存器存放程序运行状态的标志信息,在 8086 中,该寄存器是_____。 其中,根据运算结果是否为零,决定程序分支走向的标志位是____。
答案:FR ZF
4.8086/8088CPU 中标志寄存器的 3 个控制位是_____、_____、______。 答案:DF IF TF
5.逻辑地址 9B50H:2C00H 对应的物理地址是______。 答案:9E100H
6.在任何一个总线周期的 T1 状态,ALE 输出_____。 答案:高电平
7.8086 有两种工作模式,即最小模式和最大模式,它由______决定。最小模式的特点是 _______,最大模式的特点是________。
答案: CPU 提供全部的控制信号 需要总线控制器 8288
8.8086CPU 可访问的存储器的空间为 1MB,实际上分奇数存储体和偶数存储体两部分,对于 奇数存储体的选择信号是________,对于偶数存储体的选择信号是_______,对于每个存储 体内的存储单元的选择信号是___________。 答案: A0 A19~A1
9.在 8086 的最小系统,当 , , 时,CPU 完成的操作是_______。 答案:I/O 读
10.在最小模式下,执行“OUT DX, AL”指令时, 、 、 、 的状态分别是___。 答案:0, 0, 1, 1
11.8086CPU 从偶地址读写两个字节时,需要_____个总线周期,从奇地址读取两个字节时, 需要_____个总线周期。 答案:1 2
12.8086 在存取存储器中以偶地址为起始地址的字时, , ,A0 的状态分别是____。 答案: 1 0 0
13.8086 向内存地址 1200BH 写一个字节数据时,需要一个总线周期,在该总线周期的 T1 状 态, 为______,A0 为_____。 答案:0,1
14.假设某个总线周期需插入两个 Tw 等待状态,则该总线周期内对 READY 信号检测的次数 是_______。 答案:3
15.8086CPU 上电复位后,CS=_____,IP=_____,DS=_____,标志寄存器 FR=_____。 答案:0FFFFH,0,0,0
16.8088/8086 的复位信号至少要维持______个时钟周期。 答案:4
17.8086CPU 工作在最小模式下,控制数据流方向的信号是____、____、____、____、____。
答案: 、 、 、 、
18.当存储器的读出时间大于 CPU 所要求的时间时,为了保证 CPU 与存储器的周期配合,就 要利用______信号,使 CPU 插入一个_____状态。 答案:准备好(READY) 等待(Tw)状态 19.当 8086/8088 工作于最大模式时,QS1=1,QS0=0,其表示指令队列的状态为______。 答案:队列为空。
20.在 T2、T3、Tw、T4 状态时,S6 为_____,表示 8086/8088 当前连在总线上。 答案:低电平
21.8086/8088 提供的能接受外中断请求信号的引脚是_____和_____。 两种请求信号的主
要不 同处在于是否可______。 答案:INTR NMI 屏蔽
22.一台微机的 CPU,其晶振的主振频率为 8MHz,二分频后作为 CPU 的时钟频率。如果该 CPU 的一个总线周期含有四个时钟周期,那么此总线周期是_____us。 答案:0.125
23.某微处理器的主频为 20MHz,由 2 个时钟周期组成一个机器周期,设平均 3 个机器周期 可完成一条指令,其时钟周期和平均运算速度分别为_____。 答案:50ns,3.33MHz 三、问答题
1. 8086/8088CPU 在结构上由哪两个独立的处理单元构成?这样的结构最主要的优点是什 么?
答案:在微机中,一条机器指令由操作数和操作码构成,再由若干指令构成程序。微处理器 执行一条指令的完整步骤需要两个阶段:取指和执行。取指是从内存中取出指令,执行是分 析指令要求实现的功能,读取所需的操作数,执行指令规定的操作。传统的 8 位处理器采用 顺序执行的方式,各条指令的执行按以上两个阶段交替执行。也就是说,首先取一条指令, 然后执行该指令,之后再取下一条指令,再执行,如此重复,直到整个程序执行完毕。 在 8086 中,为了加快程序的执行速度,采用了重叠执行的方式,各条指令的执行过程是重 叠进行的。 每条指令的执行过程也包括取指和执行两个阶段, 但是相邻两条指令的执行过程 有一部分是同时进行的。在执行一条指令时,可以同时取出下一条指令。在当前指令执行完 毕后, 就可以立即执行下一条指令。 显然, 这种重叠执行的方式大大加快了程序的执行速度。 为了实现指令的重叠执行方式,8086/8088 微处理器内部分为两个独立的功能部件:执行单 元 EU 和总线接口单元 BIU,执行单元 EU 专门负责指令的执行,总线接口单元 BIU 是从内存 指定区域取出指令送到指令队列缓冲器的。 和 BIU 两个功能部件并行工作, 执行的 BIU EU EU 在前一时刻取出的指令,与此同时,BIU 又取出下一时刻要执行的指令,由此能使大部分取 指令和执行指令的操作重叠进行, 大大缩短了等待指令所需的时间, 提高了微处理器的利用 率和整个系统的执行速度。 2.完成下列补码运算,并根据结果设置标志 SF、ZF、CF 和 OF,指出运算结果是否溢出。 (1) 00101101B+10011100B (2)01011101B-10111010B (3) 876AH-0F32BH (4)10000000B+11111111B
答案:(1) C9H SF=1 ZF=0 CF=0 OF=0 未溢出 (2) 01011101B-10111010B =01011101B+01000110B A3H SF=1 ZF=0 CF=1 OF=1 有溢 出 求-Y 的补码,即正数-Y 的真值 (3) 876AH-0F32BH =876AH+0CD5H 943FH SF=1 ZF=0 CF=1 OF=0 未溢出 (4) 7FH SF=0 ZF=0 CF=1 OF=1 有溢出
3.存储器采用分段方法进行组织有哪些好处?
答案:8086 微处理器 CPU 中寄存器都是 16 位,16 位的地址只能访问大小为 64KB 以内的内 存。8086 系统的物理地址由 20 根地址线形成,怎样用 16 位数据处理能力实现 20 位地址的 寻址呢?要做到对 20 位地址空间进行访问,就需要两部分地址,在 8086 系统中,就是由段 地址和偏移地址组成的。而这两个地址都是 16 位,将这两个地址采用相加的方式组成 20 位地址去访问存储器。 在 8086 系统的地址形成中,当段地址确定后,该段的寻址范围就已经确定,其容量不大于 64KB。同时,通过修改段寄存器的内容,可达到逻辑段在整个 1MB 空间中浮动。各个逻辑 段之间可以紧密相连,可以中间有间隔,也可以相互重叠。 采用段基址和偏移地址方式组成物理地址的优点是: 满足对 8086 系统的 1MB 存储空间的访 问,同时在大部分指令中只要提供 16 位的偏移地址即可。
4.Intel 8086/8088 处理器芯片功能强大, 但引脚数有限, 为了建立其与外围丰富的信息联系, Intel8086/8088 处理器引脚采用了复用方式,说明其采用了何种复用方式? 答案:8086CPU 采用双列直插式的封装形式,具有 40 条引脚。由于受到引脚数量的限制, 8086 引脚安排采用了复用技术。它的复用方式有两种:一是采用分时复用技术,在不同的 时刻通过相同的引脚传送不同的信息,从而减少了引脚的数量;二是采用了两种工作方式, 在不同的工作方式下,部分引脚具有两种不同的引脚功能。
5.8086CPU 是怎样解决地址线和数据线的复用问题的?ALE 信号何时处于有效电平? 答案:为解决引脚少的问题,8086CPU 内部采用一个多路开关,使低 16 位地址线和 16 位数 据线共用引脚。因为当 CPU 访问存储器或外设时,先要给出访问单元的地址,然后才是读 写数据,因此在时间上是可以区分的。在总线周期的第一个时钟周期(T1 状态) ,输出低 16 位地址(记为 A15~A0) ,而在总线周期的其他时钟周期内传送数据。当 CPU 处于“保持响 应”状态时,这些引脚处于高阻隔离状态(即悬浮状态) 。 ALE 信号是地址锁存信号。 8086 在总线周期开始通过地址总线输出地址的同时, 通过该引脚 输出一个正脉冲, 其下降沿用于将地址信息写入外部的地址锁存器中。 在任何一个总线周期 的第一个时钟周期时,ALE 输出有效电平以表示在当前地址/数据复用总线上输出的是地址 信息,ALE 作为锁存信号,对地址进行锁存。ALE 端不能被浮空。 6.8086/8088 系统用的时钟发生器会产生哪些信号?
答案:8284A 是一个专用的时钟发生器,产生 4.77MHz 的标准时钟信号 CLK。此时钟信号作 为系统时钟,并经 CLK 引脚直接送到 8086,作为微处理器的时钟信号。同时 8284A 还对复 位和就绪信号实现内部的时钟同步,然后再输出,实施对 8086 的控制。所以,8086/8088 系统用的时钟发生器产生恒定的时钟信号 CLK,复位信号 RESET,准备就绪信号 READY。
7.说明 8086CPU 的 READY 输入信号和 信号的作用是什么?
答案: READY 输入信号实际上是由访问的存储器或外设发出的响应信号, 高电平有效。 READY 信号有效时,表示内存或外设准备就绪,马上就可以进行一次数据传输。CPU 在每个总线周 期的 T3 状态开始对 READY 信号开始进行采样。如果检测到 READY 信号为低电平,则在 T3 状态后插入等待状态 Tw,在 Tw 状态 CPU 也对 READY 信号进行采用,若 READY 信号仍为低 电平,则会继续插入等待状态 Tw,所以 Tw 状态可以插入一个或多个,直到 READY 变为高 电平,才进入 T4 状态,完成数据传输过程,从而结束当前总线周期。 测试信号, 低电平有效, 信号是和指令 WAIT 结合起来使用的, CPU 执行 WAIT 指令时, 在 CPU 处于等待状态,当 信号低电平时,等待状态结束,CPU 继续往下执行被暂停的指令。
第三章习题
一、选择题
1.寻址方式指出了操作数的位置,一般来说_______。
A.立即寻址给出了操作数的地址 B.寄存器直接寻址的操作数在寄存器内,而指令给出了存储器 C.直接寻址直接给出了操作数本身 D.寄存器直接寻址的操作数包含在寄存器内,由指令指定寄存器的名称
答案:D
2.寄存器寻址方式中,操作数在_________。 A.通用寄存器 答案:A
3.寄存器间接寻址方式中,操作数在_________。 A.通用寄存器 答案:C
4.下列指令中的非法指令是______。
A. MOV [SI+BX], AX C.MOV [0260H], 2346H 答案:B
5.设(SP)=0100H, (SS)=2000H,执行 PUSH BP 指令后,栈顶的物理地址是_____。 A.200FEH 答案:A
6.指令 LEA BX, TAB 执行后,其结果是______。 A.将 TAB 中内容送 BX C.将 TAB 的偏移地址送 BX 答案:C
7.下列正确的指令格式有______。 A.MOV [BX], 1 答案:D
8.设(AX)=C544H,在执行指令 ADD AH,AL 之后,______。 A.CF=0,OF=0 答案:C
9.若 AL、BL 中是压缩 BCD 数,且在执行 ADD AL, BL 之后,(AL)=0CH,CF=1,AF=0。 再执行 DAA 后,(AL)=_____。 A.02H 答案:B
10.执行下列程序后 AL 的内容为_____。 MOV AL, 25H SUB AL, 71H DAS A.B4H B.43H C.54H D.67H B.12H C.62H D.72H B.CF=0,OF=1 C.CF=1,OF=0 D,CF=1,OF=1 B.MOV AL, 0345H C.MOV ES: PTR[CX], 3 D. XLAT B.将 TAB 的段基址送 BX D.将 TAB 所指单元的存储内容送 BX B.0102H C. 20102H D.00FEH B.MOV CL, 280 D.MOV BX, [BX] B.堆栈 C.内存单元 D.段寄存器 B.堆栈 C.内存单元 D.段寄存器
答案:C
11.下列四条指令中,需要使用 DX 寄存器的指令是______。 A.MUL BX 答案:C
12.设(AL)=0E0H,(CX)=3,执行 RCL AL, CL 指令后,CF 的内容_______。 A.0 答案:B 13.下列四条指令中,错误的是______。 A.SHL AL, CX 答案: A
14.串操作指令中,有 REP 前缀的串操作指令结束的条件是________。 A.ZF=1 答案:D
15.对于下列程序段: AGAIN: MOV AL, [SI] MOV ES:[DI], AL INC INC SI DI B.ZF=0 C.CX>0 D.CX=0 B.XCHG AL, BL C.MOV BX, [SI] D.AND AX, BX B.1 C.不变 D.变反 B.DIV BL C.IN AX, 20H D.OUT 20H, AL LOOP AGAIN 也可用指令_______完成同样的功能。 A.REP MOVSB 答案:A
16.JMP WORD PTR [DI] 是________指令。 A.段内间接转移 答案:A 17.条件转移指令 JNE 的转移条件是_______。 A. ZF=1 答案:C
18.下列指令中,影响标志位的指令是_____。 A.从存储器取数指令 答案:D
19.假设外部设备的状态字已经读入 AL 寄存器,其中最低位为 0,表示外部设备忙。为了判 断外部设备是否忙而又不破坏其它状态位,应选用下列哪一组指令? A. C. RCR JZ AND JZ 答案:D
20.假定一组相邻字节的首地址在 BX 中,末地址在 DI 中,为了使下面的程序段能用来查找 出其中第一个非零字节,并把它存放在 AL 中,在横线处应填入的指令是什么? SUB INC DI, BX DI AL, 01H Label AL, 01H Label D. B.
CMP JZ TEST JZ AL, 00H Label AL, 01H
Label B.条件转移指令 C.压栈指令 D.循环移位指令 B.CF=0 C.ZF=0 D.CF=1 B.段内直接转移 C.段间间接转移 D.段间直接转移 B.REP LODSB C.REP STOSB D.REPE SCASB MOV NEXT: CMP LOOP MOV 答案:C CX, DI
INC BX BYTE PTR [BX], 0
NEXT AL, BYTE PTR [BX] B.SUB BX, BX C.DEC BX D.INC BX _________ A.MOV SI, CX
二、填空题
1.指令 MOV [BX+SI], AL 中的目的操作数使用______段寄存器,属于______寻址方式。 答案:数据段 基址加变址
2.8086 微机中,_______寄存器存放的是当前堆栈区的基地址。堆栈区的存取原则为_____, 在 8086/8088 系统中,栈区最大容量为_____。若(CS)=2000H,(DS)=2500H,(SS)=3000H, (ES)=3500H,(SP)=0100H,(AX)=2FA6H,则这个栈区的物理地址的范围为________,CPU 执行 PUSH AX 指令后,栈顶地址为_____,该栈顶单元存放的内容为_______。 答案:SS 先进后出 64KB PUSH BX POPF 指令执行完毕后,(SF, ZF, CF, OF)=______。 答案:7531H, 1,1,0,0
4.假设(DS)=1000H, (ES)=0200H, (BP)=0100H, (DI)=0200H, (10200H)=11H, (10201H)=12H, 执行指令 LEA DX, [BP][DI]后,(DX)=_______。 答案: 0300H
5.假定(DS)=4000H, (DI)=0100H, (40100H)=55H, (40101H)=AAH, 执行指令 LEA BX, [DI] 后,BX 中的内容是_______。 答案:0100H
6. 如果 TABLE 为数据段 3400H 单元的符号名, 其中存放的内容为 0505H, 当执行指令 MOV AX, TABLE 后,(AX)=_______;而执行指令 LEA AX, TABLE 后,AX=______。 答案:0505H,3400H
7. 若(DS)=3000H,(SI)=2000H,(DI)=1000H,(AX)=2500H,(34000H)=00H,(34001H)=34H, (34002H)=00H, (34003H)=50H, 变量 AREA 的值为 3000H, 执行指令 LDS SI, AREA[DI]后, SI 的内容是_______,DS 的内容是_______。 答案:3400H,5000H
8.已知(AL)=2EH, (BL)=6CH, 执行 ADD AL, BL 之后, (AL)=_____, (BL)=______, ZF=_____, AF=______,OF=_______,PF=_____,CF=______。 答案:9AH 6CH 0,1,1,1,0
9.CPU 对两个无符号 8 位二进制数进行加法运算后,结果为 0EH,且标志位 CF=1,OF=1, SF=0,其结果应为十进制数______。 答案:270
10.8086CPU 执行 SUB AH, AL 后结果为(AH)=85H,OF=1,CF=1。若 AH、AL 中为带符号 30000H~300FFH 300FEH A6H 3.若 (BX)=42DAH,则下列指令段数,则指令执行前_______寄存器中的数大。 答案:AH
11.若(AX)=7531H,(BX)=42DAH,则 CMP AX, BX 指令执行后,(AX)=_____,(SF, ZF, CF, OF)=_______。 答案:42DAH 1,0,0,0
12.设(AL)=1010 0000B,则执行 NEG AL 后,(AL)=________;设(AL)=1000 0000B,则执行 NEG AL 后,(AL)=________。 答案:60H 80H
13.假定(AX)=96H, (BX)=65H, 依次执行 ADD AX, BX 指令和 DAA 指令后,(AL)=___。 答案:61H
14.执行下列指令序列后,(AH)=____,(AL)=_____,CF=____,AF=____。 MOV AX, 0106H MOV BL, 08H SUB AL, BL AAS 答案:(AL)=08H,(AH)=0,CF=AF=1
15.设(AL)=98H,(BL)=12H, (AX)=_______ (OF)=_______ (CF)=_______ 而执行指令 IMUL BL 后, (AX)=_______ (OF)=_______ (CF)=_______ 答案:0AB0H 0F8B0H MUL AAM 答案:02H
17.CBW 指令是将_____的符号扩展到_____中,如果(AL)=0A4H,则执行 CBW 指令后, (AX)=______。
答案:AL XOR DEC MOV XCHG NEG AH 0FFA4H
18.执行下列程序段后,给出指定寄存器的内容。 AX, AX AX BX, 6378H AX, BX BX BL 1 1 1. 1 若执行指令 MUL BL 后,
16.已知(AL)=6, (BL)=7, 执行下述指令后,(AL)=______ AX 和 BX 寄存器的内容为_______。 答案:6378H 和 0001H
19.执行下列指令后: MOV MOV ROL DEC MOV MUL HLT AX, 1234H CL, 4 AX, CL AX CX, 4 CX 寄存器 AH 的值是______,AL 的值是 _____。 答案:8DH 00H
20.假设(DX)=10111001B,(CL)=03H,CF=1,执行 SHL DL, CL 后,(DX)=_____。 答案:10111001000B
21.下列指令段执行完毕后,(SI)=_______,(DI)=______。 STD MOV AX, 2500H MOV DS, AX MOV BX, 3500H MOV ES, AX MOV SI, 1500H MOV DI, 0400H MOV CX, 3 REP MOVSB 答案:14FDH
22.假设 ES 段中有一个字符串?12FG3LM5C? ,其名为 ARRAY。下面的程序段执行后 CX的值是______。 REPNE SCASB 24.已知(SS)=3000H, (SP)=0100H,执行下列程序后,(SP)=_______。 答案:5
23.假设(DS)=2000H,(BX)=1256H,(SI)=528FH,位移量 TABLE=20A1H,(232F7H)=80H, (232F8H)=32H,(264E5H)=50H,(264E6H)=24H: 执行指令 执行指令 执行指令 答案:1256H 3280H 2450H 24.
答案:00FEH
25.已知(IP)=1000H, (SP)=2000H, (BX)=283FH, 指令 CALL WORD PTR [BX] 的机器代码是 FF17H, 试问执行该指令后,内存单元 1FFEH 中的内容是______。 答案:02H 三、问答题
1.设 DS=1000H,ES=3000H,SS=4000H,SI=00A0H,BX=0700H,BP=0070H,执行指令为 MOV AX, [BX+5]。 (1)指令使用的是何种寻址方式? (2)源数据的逻辑地址和物理地址分别是多少? (3)若源数据为 1234H,则执行指令后上述各寄存器的内容是什么? 答案:基址寻址,基址寄存器是 BX,源操作数在数据段中,源操作数的逻辑地址是: EA=BX+5=0700H+5=0705H 源操作数的物理地址是:10705H 若源数据为 1234H,则执行指令后,AX 中的内容就为 1234H,其余寄存器的内容不变。
2.分别说明下列指令的源操作数和目的操作数各采用什么寻址方式,并写出指令中存储器操 作数的物理地址的计算公式。 (1)MOV AX, 2408H (2)MOV BX, [SI] (3)MOV [BP+100H],AX (4)MOV [BX+DI], '$' (5)MOV DX, ES:[BX+SI]
答案: (1)立即寻址,(AX)=2408H (2)寄存器寻址,物理地址:10H×(DS)+EA=10H×(DS)+(SI) (3)寄存器寻址,物理地址:10H×(SS)+(BP)+0100H (4)基址加变址寻址,物理地址:10H×(DS)+(BX)+(DI) (5)基址加变址,带有段超越前缀,物理地址:10H×(ES)+(BX)+(SI) 3.写出能完成下述操作的指令。
(1)将立即数 1234H 送至 DS 寄存器。 (2)将存储单元 3000H 和内容送至 4000H 单元。 (3)将累加器 AX 与寄存器 CX 中的内容对调。 答案: (1)MOV AX, 1234H MOV DS, AX
(2) MOV AX, [3000H] MOV [4000H], AX (3) XCHG AX, CX
4.编程:将数据段中以 BX 为偏移地址的连续 4 单元的内容颠倒过来。 答案: MOV AL, [BX] XCHG AL, [BX+3] MOV [BX], AL MOV AL,[BX+1] XCHG AL, [BX+2] MOV [BX+1], AL
5.已知(DS)=091DH, (SS)=(1E4AH), (AX)=1224H, (BX)=0024H, (CX)=5678H, (BP)=0024H, (SI)=0012H , (DI)=0032H , (09214H)=085BH , (09226H)=00F6H , (09228H)=1E40H , (1E4F6H)=091DH。试问下列指令或指令段执行后结果如何? (1)MOV CL, [BX+20H] (2)MOV [BP][DI], CX (3)LEA BX, [BX+20H][SI] MOV AX, [BX+2] (4)LDS SI, [BX][DI] MOV BX,[SI] (5)XCHG CX, [BX+32H] XCHG [BX+20H][SI], AX 答案: (1) CL=5BH (2)(1E4F6H)=5678H (3)(AX)=1E40H (4)(BX)=091DH
(5)(AX)=5678H, (09226H)=1224H
6.十六进制 0~9, A~F 对应的 ASCII 码为 30H~39H, 41H~46H, 依次放在内存以 TABLE 开始的区域,将 AL 中某一位十六进制数×H 转换为对应的 ASCII 码,请编写程序段。
答案: LEA BX, TABLE MOV AL, ××H XLAT
7.将 AX 寄存器清零有 4 种方法,试写出这 4 条指令。 答案:MOV AX, 00H SUB AX, AX AND AX, 00H XOR AX, AX
8.使用一条逻辑运算指令实现下列要求: (1)使 AL 高 4 位不变,低 4 位为 0。 (2)使 AL 最高位置 1,后 7 位不变。 (3)使 AL 中的 bit3、bit4 变反,其余位不变。 (4)测试判断 CL 中的 bit2、bit5、bit7 是否都为 1。 答案: (1) AND AL, 0F0H (2)OR AL, 80H (3)XOR AL 18H (4)TEST AL, 0A4H
9.试分析下面的程序段完成什么功能。 MOV CL, 4 SHL AX, CL
SHL BL, CL MOV AL, BL SHR DH, CL OR AL, DH
答案:将 AX 中间 8 位,BX 的低 4 位,DX 的高 4 位组成一个新字存放在 AX 中。 10.若要将源串 100 个字节数据传送到目标串单元中去,设源串首址的偏移地址为 2500H, 目标串首址的偏移地址为 1400H,请编写程序实现以下功能。 (1)完成源串到目标串的搬移。 (2)比较两串是否完全相同,若两串相同,则 BX 寄存器内容为 0;若两串不同,则 BX 指向 源串中第一个不相同字节的地址,且该字节的内容保留在 AL 的寄存器中。 答案: (1) CLD MOV CX, 100 MOV SI, 2500H MOV DI, 1400H REP MOVSB (2) CLD MOV CX, 100 MOV SI, 2500 MOV DI, 1400 REPE CMPSB JZ EQQ DEC SI MOV BX, SI MOV AL, [SI] JMP STOP EQQ: MOV BX, 0 STOP: HLT
11.下列指令段的功能是: 从内存 2000H:0A00H 开始的 2KB 内存单元清零。 请在下列空格中 填入合适的指令,程序指令完成后 DI 的内容是多少。 CLD MOV AX, 2000H _________ _________ XOR AL, AL _________ _________ HLT
答案:MOV ES,AX MOV DI, 0A00H XOR AL,AL MOV CX, 800H REP STOSB HLT
第四章习题答案
一、选择题
1.下列描述正确的是_______。
A.汇编语言源程序可直接运行 B.汇编语言属于低级语言 C.汇编程序是用汇编语言编写的程序,运行速度高,阅读方便,属于面向用户的程序语言。 D.汇编语言可以移植 答案:B
2. 分析下面的程序,变量 VAR2 的偏移地址是______。 DATA SEGMENT ORG 2 VAR1 DB 2,3,4 ORG $+3 VAR2 DW 1234H DATA ENDS A.02H B.04H C.05H D.08H 答案:D
3.为了使 MOV AX, VAR 指令执行后, 寄存器中的内容为 4142H, AX 下面哪一种数据定义会产 生不正确的结果?
A.VAR DW 4142H B.VAR DW 16706 C.VAR DB 42H, 41H D.VAR DW ‘AB’ 答案:C
4.下列伪指令中______是正确的。
A.ERR1:DW 99 B.ERR2 DB 25*60 C.COUNT EQU 20 D.ONE DB ONE 答案:C
5.执行下列指令后,寄存器 CL 的值是_______。 STR1DW ?AB? STR2DB 16 DUP(?) CNT EQU $-STR1 MOV CX, CNT MOV AX, STR1 HLT A.10H B.12H C.0EH D.0FH 答案:B 二、填空题
1.汇编语言的调试过程如下:建立以______为扩展名的源文件;生成以______为扩展名的目 标文件;生成以______为扩展名的可执行文件;使用 DEBUG 调试程序,调试可执行目标程 序。
答案:.asm .obj .exe 2.执行下列指令后, (AX)=______, (BL)=_______。 A DW ?EF? B DB ?ABCDEF? MOV AX, A MOV BL, B[3] HLT 答案:4546H 44H 3.执行下面程序段后,AL 中的内容是______。 BUF DW 1234H, 5678H, 0001H MOV BX, OFFSET BUF MOV AL, 2 XLAT 答案:78H
4.若符号定义语句如下,则 L=_______。 BUF1 DB 1, 2, ?12? BUF2 DB 0 L EQU BUF2-BUF1 答案:4
5.执行下列程序段后,BX 寄存器间址单元的内容是______。 ORG 1FFFH DB 4FH, 50H, 51H MOV BX, 1FFFH INC [BX] INC BX DEC [BX] 答案:4FH
6.对于下面的数据定义,各条 MOV 指令单独执行后,请填充有关寄存器的内容: TABLE1 DB ? TABLE2 DW 20 DUP(?) TABLE3 DB ?ABCD? ...... MOV AX, TYPE TABLE1; (AX)=___ MOV BX, TYPETABLE2; (BX)=____ MOV CX, LENGTH TABLE2; (CX)=_____
MOV DX, SIZE TABLE2 ; (DX)=_____ MOV SI, LENGTH TABLE3; (SI)=_______ 答案:1 2 20 40 1
7.下面是多字节加法程序,第一个数是 8A0BH,第二个数是 D705H。请填写出正确结果。 DATA SEGNEBT FIRST DB _____, _____, 0H SECOND DB _____,______ DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV CX, _____ MOV SI, 0 _________ NEXT: MOV AL, SECOND[SI] ADC FIRST[SI], AL INC SI LOOP NEXT MOV AL, 0 ADC AL, ______ MOV FIRST[SI], AL MOV AH, 4CH INT 21H CODE ENDS END START 答案:0BH 8AH 05H D7H 2 CLC 0
8.下面程序的功能是求有符号数中绝对值最小的数,并将最小绝对值存放在 DAT2 字节中, 填空使程序正确实现此功能。程序执行后,DAT2 单元中的内容是______。 DATA SEGMENT DAT1 DB 65H, 88H, 20H, 0F6H N EQU $-DAT1 DAT2 DB ? DATA ENDS CODE SEGMENT _________________ START: MOV AX, DATA __________ LEA SI, DAT1 MOV CX, N-1 MOV AL, [SI] TEST AL, 80H JZ LP0 NEG AL LP0: MOV DAT2, AL LP1: _________ MOV BL, [SI] TEST BL, 80H JZ LP2 NEG BL LP2: ________ JB LP3 MOV DAT2, BL MOV AL, BL LP3: ________ MOV AH, 4CH INT 21H CODE ENDS END START
答案: ASSUME DS:DATA, SS:STACK, CS:CODE MOV DS, AX INC SI CMP DAT2, BL LOOP LP1 DAT2 单元中的内容:0AH
9.填空说明在下列程序段执行过程中相应寄存器中的值。假设程序执行前 DS=3000H, SS=2000H,SP=3000H,AX=4567H,BX=1234H,CX=6789H。 AND BX, 00FFH CALL MYSUB NOP ;SP=________ ;AX=_______ ;BX=_______ PROC PUSH AX PUSH BX PUSH CX SUB AX, BX ;SP=______ POP CX POP AX POP BX NOP ;SP=______ RET MYSUB ENDP
答案:3000H 0034H 4567H 2FF8H 2FFEH 10.完善程序。 BUFFER 单元开始放置一个数据块, BUFFER 单元存放预计数据块的长度为 20H, BUFFER+1 单元存放的是实际从键盘输入的字符串的长度, BUFFER+2 开始存放的是从键盘 从 接收的字符,请将这些从键盘接收的字符再在屏幕上显示出来。 MOV DX, OFFSET BUFFER MOV AH, _______ INT 21H ;读入字符串 LEA DX, ______ MOV AL, ______ ;实际读入的字符串的字符个数 MOV AH, 0 ADD BX, AX MOV AL, ____ MOV [BX+1], AL MOV AH, _____ INC DX ;确定显示字符串的首址 INT 21H MOV AH, _____ ;系统返回 DOS INT 21H 答案:0AH BUFFER+1 [BX] '$'或 24H 9 4CH 三、问答题
1.变量和标号有哪些属性?它们的区别是什么?
答案:变量、标号还有常量是汇编语言中使用的操作数,是 3 种基本的数据项。变量和标号 都有段属性、偏移属性和类型属性 3 种属性,但含义不同。 变量通常指存放在存储单元中的值,在程序的运行中是可以修改的。所有的变量都具有 3 个属性。 (1)段属性:指变量所在段的段基址,此值必须在一个段寄存器中。 (2)偏移属性:指变量所在地址与所在段的段首地址之间的地址偏移字节数。 (3)类型属性:指变量中每个元素所包含的字节数。 标号是可执行指令语句的地址的符号表示,它可作为转移指令和调用指令 CALL 的目标操作 HLT MYSUB 数,以确定程序转向的目标地址,它也具有 3 个属性: (1)段属性:指标号所在段的段基址。标号的段是它所出现的那个代码段,由 CS 指示。 (2)偏移属性:指标号所在地址与所在段的段首地址之间的地址偏移字节数。 (3)类型属性:标号的类型属性指在转移指令中标号可转移的距离,也称距离属性。NEAR 和 FAR
2.指出下列伪指令语句中的错误: (1) DATA DB 395 (2)PRGM SEG …… PRGM ENDS (3)ALPHA EQU BETA (4) COUNT EQU 100 COUNT EQU 65 (5) GOON DW 10DUP(?) …… JMP GOON
答案: (1)字节变量,范围在 0~255 (2)定义段的伪指令为 SEGMENT (3)BETA 必须先定义 (4)EQU 不能重复定义,在下一次定义前必须用 PURGE 撤消 (5)转移指令必须转移到指令上,不允许转移到数据变量上。
3.一数据段如下: DATA SEGMENT PARA 'DATA' AT 46H QA EQU 255 QA1=QA GT 3000 QA2=0FFFH QA3 EQU QA2 XOR 255 QA4=88 MOD 5 QA5=88H SHR 2 QA6 EQU QA3/16+15 ORG 1060H G1 DB 32, QA, 98/2, NOT 25 G2 DW 0FF6H, OFFSET G2 G3 DW 3DUP(5) G4 DW SEG G1 SA EQU LENGTH G3 SB EQU SIZE G3 SC=TYPE G3 ORG 1200H F1 EQU THIS WORD F2 DB 11H, 22H, 33H, 44H FF DD 12345H DATA ENDS
(1)写出每个符号所对应的值 (2)画出内存分配图 (3)执行下列指令后,对应的寄存器的值为多少 MOV AX, WORE PTR FF AND AX, 0FFH MOV BX, WORD PTR G1 MOV BX, 255 AND 0FH ADD AX, OFFSET F2 MOV BX, F1
答案: (1) DATA SEGMENT PARA 'DATA' AT 46H QA EQU 255 ;QA=255 QA1=QA GT 3000 ;255 大于 3000,命题假,QA1=0 QA2=0FFFH ;QA2=0FFFH QA3 EQU QA2 XOR 255 ;QA3=0FFFH⊕0FFH=0F00H QA4=88 MOD 5 ;QA4=3 QA5=88H SHR 2 ;QA5=22H QA6 EQU QA3/16+15 ;QA6=10FH ORG 1060H G1 DB 32, QA, 98/2, NOT 25 G2 DW 0FF6H, OFFSET G2 G3 DW 3DUP(5) G4 DW SEG G1 SA EQU LENGTH G3 ;SA=3 SB EQU SIZE G3 ;SB=3×2=6 SC=TYPE G3 ;SC=2 ORG 1200H F1 EQU THIS WORD ;F1 的偏移地址为 1200H,类型为字 F2 DB 11H, 22H, 33H, 44H FF DD 12345H DATA ENDS (2)内存分配: DS:1060HG1 20H FFH 31H E6H DS:1064HG2 F6H 0FH 64H 10H DS:1068HG3 05H 00H 05H 00H 05H 00H DS:106EHG4 46H 00H …… …… DS:1200HF2 11H 22H 33H 44H DS:1204HFF 45H 23H 01H 00H (3)存储器的值: MOV AX, WORE PTR FF ;AX=2345H AND AX, 0FFH ;AX=0045H MOV BX, WORD PTR G1 ;BX=0FF20H MOV BX, 255 AND 0FH ;BX=000FH ADD AX, OFFSET F2 ;AX=1245H MOV BX, F1 ;BX=2211H
4.以下程序的执行结果是_______。 A DB ?1234? B DW 5 DUP(2,3 DUP(0)) C DW ?AB?,?C?,?D? L1: MOV AL, TYPE B MOV BL, LENGTH B MOV AH, SIZE A MOV BH, SIZE C MOV CL, TYPEL1 MOV CH, SIZE B
答案:AX=0102H, BX=0205H CX=0AFFH
5.有下列数据段,写出数据段中 MAX、VAL1、VAL2、LEND 符号所对应的值。 DATA SEGMENT MAX EQU 0FFFH VAL1 EQU MAX MOD 10H VAL2 EQU VAL1*2 BUFF DB 1,2,3,'123' EBUFF DB ? LEND EQU EBUFF-BUFF DATA ENDS 答案: MAX=0FFFH VAL1=000FH VAL2=001EH LEND 6
6.现有程序如下: DATA SEGMENT A DB 23 B DB 0F0H C DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV AL, A CMP AL, B JZ L JG M MOV C, -1 JMP EXIT L: MOV C, 0 JMP EXIT M: MOV C, 1 EXIT: MOV AH, 4CH INT 21H CODE ENDS END START 请回答:(1)该程序完成什么功能?(2)程序运行完后,C 中的内容是什么? 答案:判断两个有符号数,若 A=B,则 C=0;若 A>B,则 C=1;若 A
答案: DATA SEGMENT X DW 1234H Y DW 5678H Z DW 0 DATA ENDS STACK SEGMENT STACK ST1 DW 64 DUP(?) TOP EQU $-ST1 STACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK START: MOV AX, DATA MOV DS,AX MOV AX, STACK MOV SS, AX MOV SP, TOP MOV SUB JNC NEG NEXT: MOV MOV INT CODE ENDS END START AX, X AX, Y NEXT AX Z, AX AH, 4CH 21H 8.阅读下列程序,回答下列问题:
(1)程序执行后,RESULT 单元的内容为多少? (2)程序完成的功能是什么?
(3)该程序所占的数据区为多少个字节?
DATA SEGMENT FEN DB 85, -90, 64, -120, 95, 77, 88, 120, 60, 83 COUNT EQU $-FEN RESULT DB ? DATA ENDS STACK SEGMENT PARA STACK DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE, DATA:DATA, SS:STACK START: MOV AX,DATA MOV DS, AX MOV SI, OFFSET FEN MOV CX, COUNT DEC CX MOV AL, [SI] MOV RESULT ,AL TEST AL, 80H JZ LOP NEG AL LOP: INC SI MOV BL, [SI] TEST BL, 80H JZ NEXT NEG BL NEXT: CMP AL, BL JAE NEXT1 MOV AL, BL MOV BL, [SI] MOV RESULT , BL NEXT1: LOOP LOP CODE NOP MOV AH, 4CH INT 21H ENDS END START
答案:(1) -120
(2)将绝对值最大的数放入 RESULT 单元中 (3)11 字节
9.定理:从 1 开始的连续 n 个奇数之和等于 n2,如 1+3+5=32=9。设:在数据区有字节变量 N(0≤N≤255) 。试按此定理编写程序求 N2 并将结果存放于字变量 RESULT 中。 答案: STACK SEGMENT PARA STACK DW 100 DUP(?) STACK ENDS DATA SEGMENT N DB 5 RESULT DW ? DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA, SS:STACK START: MOV AX, DATA MOV DS, AX MOV AH, 0 MOV AL, N MOV CX, AX MOV BX, 0 MOV DX, 1 LOOP1: ADD BX, DX ADD DX, 2 LOOP LOOP1 MOV RESULT, BX MOV AH, 4CH INT 21H CODE ENDS END START
第六章习题
一、选择题
1.I/O 单独编址方式下,从端口读入数据可使用_____。 A. MOV B.OUT C.IN D.XCHG 答案:C
2.可用作简单输入接口电路的是______。 A.译码器 B.锁存器 C.方向器 D.三态缓冲器 答案:D
3.CPU 与 I/O 设备之间传送的信号有______。
A.控制信息 B.状态信息 C.数据信息 D.以上三种都有 答案:D
4.从硬件角度而言,采用硬件最少的数据传送方式是______。 A.DMA 控制 B.无条件传送 C.查询传送 D.中断传送 答案:B
5.从输入设备向内存输入数据时,若数据不需经过 CPU,其 I/O 数据传送方式是____。 A.程序查询方式 B.中断方式 C.DMA 方式 D.直接传送方式 答案:C
6.主机与外设信息传送的方式分别为查询方式、中断方式、DMA 方式。相比之下,中断方 式的主要优点是_______。 A.接口电路简单、经济,只需少量的硬件 B.数据传输的速度最快 C.CPU 的时间利用率高 D.能实时响应 I/O 设备的设备的输入输出请求 答案:D
7.在微机系统中,为了提高 CPU 系统数据总线的驱动能力,可采用_____。 A.译码器 B.多路转换器 C.双向三态缓冲器 D.采样保持器 答案:C
8.执行“IN AL, DX”指令后,进入 AL 寄存器的数据来自_____。 A.立即数 B.存储器 C.寄存器 D.外设端口 答案:D
二、问答题
1.CPU 与外设进行数据传送时,为什么需要 I/O 接口电路?I/O 接口电路的功能有哪些? 答案:CPU 与外部设备进行信息交换,是在控制信号的作用下通过数据总线来完成的。外部 设备的种类不同, 对信息传送的要求也不同, 这就给计算机和外设之间的信息交换带来以下 一些问题: (1)速度不匹配:CPU 速度高,外设的速度低。不同的外设速度差异大,如硬盘速度高, 每秒能传送兆位数量级,串行打印机每秒钟只能打印百位字符,而键盘的速度则更慢。 (2)信号不匹配:CPU 的信号为数字信号,数据采集输入的是模拟信号,需要对外部信号 进行模/数转换,才能被计算机处理;同样,计算机输出的是数字信号,需要输出模拟信号 时,必须要通过数/模转换。 (3)信号格式不匹配:计算机接收和处理的是并行数据,而有些外部设备的信号为串行数 据,这就需要使用接口电路进行串行数据和并行数据转换。 (4)另外为了提高 CPU 的传输效率,需要利用接口电路对外设进行控制。 作为连接 CPU 和外设的接口电路,它具有以下功能: (1)数据的寄存和缓冲功能 为了解决 CPU 和外部设备速度不匹配的问题,接口电路内部设置有数据寄存器或具有 RAM 功能的数据缓冲区, 使之成为 CPU 和外设进行数据交换的中转站。 无论输入还是输出数据, 传输的数据首先进入缓冲区,输入数据时等待 CPU 发出接收指令,输出数据时等待外设发 出的输出信号。 (2)信号转换功能为了解决 CPU 和外设之间信号电平不一致的问题, 可以通过设置电平转换接口电路来解决, 如采用 MAX232 等芯片实现电平转换。 为了解决 CPU 和外设之间串并行数据不匹配的问题,CPU 输出数据时,设置并变串接口电 路;CPU 输入数据时,设置串变并接口电路。 为了解决外设模拟量传输的问题,设置模/数转换(A/D)电路或数/模转换(D/A)电路。 (3)端口选择功能 CPU 通过接口电路对外部设备进行控制, 具体和哪一个外设进行数据交换, 首先要选通相应 的接口电路,而这一过程是通过地址选通来实现的,即接口电路有其独有的地址空间。不同 的接口电路占用的地址是不同的,占有的地址个数也是不同的。有的占有两个地址,有的占 有 4 个地址等, 以对应不同的外设。 一般来说, 接口电路的片选信号由高位地址信号来产生, 接口电路内部的选择由低位地址来决定。 CPU 的地址信号是一组单向的信号线,它们总是由 CPU 发出,因此 CPU 发出不同的地址信号就选择了相应的接口电路,也就选通了相应的外 部设备。 (4)接收和执行 CPU 的指令 CPU 的地址信号发出后,被选通的接口电路,根据 CPU 的读、写等指令输入输出数据信号 或输出控制信号。 (5)中断管理功能 为了提高 CPU 的效率,使得外设工作时,不影响 CPU 的执行,需要利用中断控制芯片来连 接多个外设。只有当外设需要 CPU 进行处理,才会通过中断控制器,给
CPU 发送中断请求 信号,CPU 接到该信号后,在满足相应中断允许的条件下,停止执行当前程序,转而去执行 中断服务程序,即处理外设事物。在这里接口电路就是中断控制器,用来管理这些需要 CPU 中断的外部设备。
2.计算机对 I/O 接口电路的编址有哪些方法?8086/8088 CPU 采用哪种编址方法? 答案:当接口电路的地址和存储单元的地址相同时,称为独立编址,也称 I/O 映射方式;当 接口电路的地址和存储单元的地址不同时,称为统一编址,也称存储器映射方式。 独立编址
3.CPU 与外设间进行数据传送有哪几种方式?简述各种方式的工作原理。
答案:无条件传送方式是最简单的传送方式,该方式应用于始终处于准备好状态的外设,即 CPU 输入或输出数据时不需要查询外设的工作状态,任何时候都可以输入输出。 查询传送方式在传送数据前,CPU 需要查询当前外设的状态,当查询到当前外设准备好,即 处于空闲状态时,CPU 就可以通过数据线和外设进行输入输出的操作; 当查询到外设当前的 状态为忙时,则等待,并继续查询,直到外设准备好,再传送数据。 4.假设一接口电路的地址信号为 A0,片选端为 ,占用两个地址,分别是 20H 和 21H, 试 利用 74LS138 译码器设计译码电路,并画出硬件电路设计图。 片选地址 片内地址 接口电路地址 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 1 0 0 0 0 0 20H 1 21H 5.若要求 74LS138 输出的译码地址为 0200H~0207H,0208H~020FH,……,0238H~023FH 等 8 组,可用于选通 8 个 I/O 芯片,试画出 74LS138 与 8086 最小系统连接图。 片外地址 内部地址 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 第1片 1 第2片 1 第3片 1 第4片 1 第5片 1 第6片 1 第7片 1 第8片 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 200H 207H 0 208H 20FH 0 210H 217H 0 218H 21FH 0 220H 227H 0 228H 22FH 0 230H 237H 0 238H 23FH
第七章习题
一、选择题
1.在程序控制传送方式中,_______可提高系统的工作效率。 A. 无条件传送 B. 查询传送 C. 中断传送 D.以上均可 答案:C
2.在 8086 的中断中,只有______需要硬件提供中断类型码。 A.外部中断 B.可屏蔽中断 C.不可屏蔽中断 D.内部中断 答案:B
3.在中断响应周期,CPU 从数据总线上获取______。
A.中断向量的偏移地址 B.中断向量 C.中断向量的段地址 D.中断类型码 答案:D
4.执行 INT n 指令或响应中断时,CPU 保护现场的次序是______。 A.FLAGS 寄存器(FR)先入栈,其次是 CS,最后是 IP B.CS 在先,其次是 IP,最后 FR 入栈 C.FR 在先,其后一次是 IP,CS D.IP 在先,其次是 CS,最后 FR 答案:A
5.在 PC/XT 中,NMI 中断的中断向量在中断向量表中的位置_______。
A.是由程序指定的 B.是由 DOS 自动分配的 C.固定在 0008H 开始的 4 个字节中 D.固定在中断向量表的表首
答案:C
6.中断调用时,功能调用号码应该_______。
A.写在中断指令中 B.在执行中断指令前赋给 AH C. 在执行中断指令前赋给 AX D. 在执行中断指令前赋给 DL 答案:B
7.若 8259A 的 ICW2 设置为 28H,从 IR3 引入的中断请求的中断类型码是_____。 A. 28H B.2BH C.2CH D.2DH 答案:B
8.8259A 有 3 中 EOI 方式,其目的都是为了_____。
A.发出中断结束命令,使相应的 ISR=1 B. 发出中断结束命令,使相应的 ISR=0 C. 发出中断结束命令,使相应的 IMR=1 D. 发出中断结束命令,使相应的 IMR=0 答案:B
9.8259A 特殊全嵌套方式要解决的主要问题是______。
A.屏蔽所有中断 B.设置最低优先级 C.开发低级中断 D.响应同级中断 答案:D
10.8259A 编程时,中断屏蔽可通过______设置。 A.ICW1 B.OCW1 C.OCW2 D.OCW3 答案:B
二、填空题
1.8086/8088 的中断系统,可以处理______种不同的中断。从产生中断的方法来分,中断可 分为两大类: 一类叫_____中断; 一类叫______中断。 硬件中断又可分为两大类: 一类叫______ 中断;另一类叫______中断。
答案:256 外部、内部 不可屏蔽中断 可屏蔽中断
2.8086 系统中断响应时,会将 , 和 压入堆栈,并将 和 TF 清零。 答案:FR CS IP
3.类型码为______的中断所对应的中断向量放在 0000H:0084H 开始的 4 个存储单元中, 若这 4 个存储单元中从低地址到高地址存放的数依次是___________,则相应的中断服务程序的 入口地址是 3322H:1150H。 答案:21H 50H 11H 22H 33H
4.已知 CS 的内容为 2000H,IP 的内容为 3000H,则 CPU 下一条要执行指令的物理地址是 ________;当紧接着执行中断指令 INT 15H 时,其中断类型码为______,该指令对应的中断 向量在中断向量表中的首地址为__________,假定该中断对应的中断向量是 4000H:2300H, 则执行该中断后 CPU 执行中断服务程序的首地址是______,此时 CS 中为_____,IP 中为 _______。
答案:23000H, 15H 54H 43200H 4000H 2300H 5.8259A 有两种中断触发方式:______和______。 答案:边沿触发方式 电平触发方式
6.若有 40 个外部中断申请信号,则至少需要______片 8259A 中断控制器。 答案:6
7.8259A 内部含有_____个可编程寄存器,共占用_____个端口地址。8259A 的中断请求寄存 器 IRR 用于存放_______,中断服务寄存器 ISR 用于存放_______。 答案:7 2 外部的中断请求信号 系统响应中断信号的状态
8.8259A 的初始化命令字包括_________,其中________和_______是必须设置的。 答案:ICW1~ICW4 ICW1 ICW2 9.中断服务程序的返回指令为 。
答案:IRET
10. 执行溢出中断的两个条件是 和 。 答案:OF=1, INTO
11.8086/8088 系统共能管理 个中断,中断向量表在内存中的地址从 到 。 答案:256 00000H~0003FFH
12. 已 知 SP=0100H, SS=0600H, 标 志 寄 存 器 Flags=0204H, 存 储 单 元 [0024H]=60H, [0025H]=00H, [0026H]=00H, [0027H]=10H,在段地址为 0800H 及偏移地址为 00A0H 开始的单元 中, 有一条指令 INT 9H (INT 9H 为 2 字节指令) 则执行该指令后, 。 SS= , SP= , IP= , CS= ,Flags= 。 Flags: OF DF IF TF SF ZF AF PF CF 答案: (SS)=0600H (SP)=00FAH (IP)=0060H (CS)=1000H (FR)=0004H 三、问答题
1.如何“屏蔽”可屏蔽中断?叙述 CPU 响应可屏蔽中断的过程。
答案: 由 CPU 的 INTR 引脚上的中断请求信号引起的中断称为可屏蔽中断。这种中断可以被 CLI 指 令屏蔽。 当中断接口电路中的中断屏蔽触发器未被屏蔽时, 外设可通过中断接口发出中断申请。 外设 向 CPU 发出中断请求的时间是随机的,而 CPU 响应可屏蔽中断需满足如下条件: (1)CPU 必须处于开中断状态,即 TF=1 状态; (2)系统中无总线请求; (3)系统中无不可屏蔽中断请求; (4)CPU 执行完现行命令。 2.设某中断的中断类型号为 12H,中断服务程序的段地址为 2020H,偏移地址为 3000H, 试编写程序段将中断向量装入中断向量表中。
答案: XOR AX, AX MOV ES, AX MOV DI, 12*4 ;DI 中为 n 号中断对应的中断向量表的偏移地址 MOV AX, 3000H CLD STOSW ;装入中断服务程序偏移地址 MOV AX, 2020H STOSW ; 装入中断服务程序偏移地址
3.8259A 具有两种中断屏蔽方式,普通屏蔽和特殊屏蔽方式。这两种屏蔽方式有什么特殊之 处,特殊屏蔽方式一般用在什么场合?
答案: (1)普通屏蔽方式:在普通屏蔽方式中,将 IMR 某位置 1,则它对应的中断就被屏蔽,从 而使这个中断请求不能从 8259A 送到 CPU。如果 IMR 位置 0,则允许该级中断产生。 (2)特殊屏蔽方式:在有些特殊情况下,希望一个中断服务程序能够动态地改变系统优先 权结构,就引入了特殊屏蔽方式。编程时 IMR 某位置位,就会同时使 ISR 的对应位复位。这 样就不只屏蔽了当前正在处理的这级中断,而且真正开放了其他级别较低的中断。当然,未 屏蔽的较高级中断也可得到响应。 特殊屏蔽中断一般用在中断服务程序执行过程中, 不仅用于响应优先级高于当前中断的中断 请求优先级,而且还能够应用于响应优先级低于当前中断的中断申请优先级的场合。
4.试简述 8259A 中断控制器是如何在特殊全嵌套方式 SNFM 下实现全嵌套的?
答案: 特殊全嵌套方式和普通全嵌套方式的区别在于: 在特殊全嵌套方式下, 当处理某一级中断时, 如果有同级的中断请求 8259A 也会给予响应,从而实现一个中断过程能被另一个具有同等 级的中断请求所打断。 特殊全嵌套方式一般用在 8259A 的级联系统中。在这种情况下只有主片的 8259A 允许编程 为特殊全嵌套方式。这样,当来自某一从片的中断请求正在处理时,主片除对来自优先级较 高的本片上其他 IR 引脚上的中断请求进行开放外,同时对来自同一从片的较高优先级请求 也会开放。使主片不封锁得到响应的从片的 INT 输入,以便让从片上优先级别更高的中断能 够得到响应。
5.请编写初始化程序。系统有一片 8259A,中断请求信号用电平触发方式,要用 ICW4,中断 类型码为 60H~67H,用特殊全嵌套方式,无缓冲,采用自动中断结束方式。设 8259A 的地 址为 92H,93H。
答案: MOV AL, 0001101B OUT 92H, AL MOV AL, 01100000B OUT 93H, AL MOV AL,
00010011B OUT 93H, AL
6.若 8086 系统采用单片 8259A 作为外部可屏蔽中断的优先级管理器,正常全嵌套方式,边 沿触发,非缓冲连接,非自动中断结束,端口地址为 20H,21H。其中某中断源的中断类型 码为 0AH,其中断服务子程序的入口地址是 2000:3A40H。 (1)请为 8259A 设置正确的初始化命令字,并编写初始化程序。 (2)中断源应与 IR 的哪一个输入端相连?中断向量地址是多少,中断向量区对应着 4 个单 元的内容是什么?
答案: MOV AL, 13H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL, 01H OUT 21H, AL 中断源应与 IRQ2 相连,矢量地址为 0028AH,地址中内容(由高向低) :20H,00H,3AH,40H
7.8086 微机系统中,如图例 7 所示硬件连接, 8259A 的主片采用特殊全嵌套,从片采用 一般全嵌套,主片和从片都是非自动中断结束,中断源都为边沿触发信号有效,主片的中断 类型码为 80H~87H,从片的中断类型码为 50H~57H。 1. 写出主片 8259A 和从片 8259A 的地址; 2. 写出主片 8259A 的控制字,并完成初始化编程; 3. 写出从片 8259A 的控制字,并完成初始化编程; 图例 7 1. 主片地址:F0H F1H 从片地址:C0H C1H 2. 主片: ICW1 ICW2 ICW3 ICW4
从片: ICW1 ICW2 ICW3 ICW4 11H 80H 80H 11H 11H 50H 03H 01H
3.主片初始化 MOV AL, 11H OUT 0F0H,AL MOV AL, 80H OUT 0F1H,AL MOV AL, 80H OUT 0F1H, AL MOV AL, 11H OUT 0F1H, AL
从片初始化: MOV AL, 11H OUT 0C0H,AL MOV AL, 50H OUT 0C1H,AL MOV AL, 03H OUT 0C1H, AL MOV AL, 01H OUT 0C1H, AL
第七章习题
一、选择题
1.在程序控制传送方式中,_______可提高系统的工作效率。 A. 无条件传送 B. 查询传送 C. 中断传送 D.以上均可 答案:C
2.在 8086 的中断中,只有______需要硬件提供中断类型码。 A.外部中断 B.可屏蔽中断 C.不可屏蔽中断 D.内部中断 答案:B
3.在中断响应周期,CPU 从数据总线上获取______。
A.中断向量的偏移地址 B.中断向量 C.中断向量的段地址 D.中断类型码 答案:D
4.执行 INT n 指令或响应中断时,CPU 保护现场的次序是______。 A.FLAGS 寄存器(FR)先入栈,其次是 CS,最后是 IP B.CS 在先,其次是 IP,最后 FR 入栈 C.FR 在先,其后一次是 IP,CS D.IP 在先,其次是 CS,最后 FR 答案:A
5.在 PC/XT 中,NMI 中断的中断向量在中断向量表中的位置_______。
A.是由程序指定的 B.是由 DOS 自动分配的 C.固定在 0008H 开始的 4 个字节中 D.固定在中断向量表的表首 答案:C
6.中断调用时,功能调用号码应该_______。
A.写在中断指令中 B.在执行中断指令前赋给 AH C. 在执行中断指令前赋给 AX D. 在执行中断指令前赋给 DL 答案:B
7.若 8259A 的 ICW2 设置为 28H,从 IR3 引入的中断请求的中断类型码是_____。 A. 28H B.2BH C.2CH D.2DH 答案:B
8.8259A 有 3 中 EOI 方式,其目的都是为了_____。
A.发出中断结束命令,使相应的 ISR=1 B. 发出中断结束命令,使相应的 ISR=0 C. 发出中断结束命令,使相应的 IMR=1 D. 发出中断结束命令,使相应的 IMR=0 答案:B
9.8259A 特殊全嵌套方式要解决的主要问题是______。 A.屏蔽所有中断 B.设置最低优先级 C.开发低级中断 D.响应同级中断 答案:D
10.8259A 编程时,中断屏蔽可通过______设置。 A.ICW1 B.OCW1 C.OCW2 D.OCW3 答案:B 二、填空题
1.8086/8088 的中断系统,可以处理______种不同的中断。从产生中断的方法来分,中断 可分为两大类:一类叫_____中断;一类叫______中断。硬件中断又可分为两大类:一类 叫______中断;另一类叫______中断。
答案:256 外部、内部 不可屏蔽中断 可屏蔽中断
2.8086 系统中断响应时,会将 , 和 压入堆栈,并将 和 TF 清零。 答案:FR CS IP
3.类型码为______的中断所对应的中断向量放在 0000H:0084H 开始的 4 个存储单元中, 若这 4 个存储单元中从低地址到高地址存放的数依次是___________,则相应的中断服务 程序的入口地址是 3322H:1150H。 答案:21H 50H 11H 22H 33H
4.已知 CS 的内容为 2000H,IP 的内容为 3000H,则 CPU 下一条要执行指令的物理地址 是________;当紧接着执行中断指令 INT 15H 时,其中断类型码为______,该指令对应 的中断向量在中断向量表中的首地址为__________,假定该中断对应的中断向量是 4000H:2300H,则执行该中断后 CPU 执行中断服务程序的首地址是______,此时 CS 中 为_____,IP 中为_______。
答案:23000H, 15H 54H 43200H 4000H 2300H 5.8259A 有两种中断触发方式:______和______。 答案:边沿触发方式 电平触发方式
6.若有 40 个外部中断申请信号,则至少需要______片 8259A 中断控制器。 答案:6
7.8259A 内部含有_____个可编程寄存器,共占用_____个端口地址。8259A 的中断请求 寄存器 IRR 用于存放_______,中断服务寄存器 ISR 用于存放_______。 答案:7 2 外部的中断请求信号 系统响应中断信号的状态
8.8259A 的初始化命令字包括_________,其中________和_______是必须设置的。 答案:ICW1~ICW4 ICW1 ICW2 9.中断服务程序的返回指令为 。 答案:IRET
10. 执行溢出中断的两个条件是 和 。 答案:OF=1, INTO
11.8086/8088 系统共能管理 个中断,中断向量表在内存中的地址从 到 。 答案:256 00000H~0003FFH
12. 已知 SP=0100H, SS=0600H, 标志寄存器 Flags=0204H, 存储单元 [0024H]=60H, [0025H]=00H, [0026H]=00H, [0027H]=10H,在段地址为 0800H 及偏移地址为 00A0H 开始的单元中,有一条指令 INT 9H(INT 9H 为 2 字节指令) 。则执行该指令后, SS= , SP= , IP= , CS= ,Flags= 。 Flags: OF DF IF TF SF ZF AF PF CF
答案: (SS)=0600H (SP)=00FAH (IP)=0060H (CS)=1000H (FR)=0004H 三、问答题
1.如何“屏蔽”可屏蔽中断?叙述 CPU 响应可屏蔽中断的过程。
答案: 由 CPU 的 INTR 引脚上的中断请求信号引起的中断称为可屏蔽中断。这种中断可以被 CLI 指令屏蔽。 当中断接口电路中的中断屏蔽触发器未被屏蔽时,外设可通过中断接口发出中断申请。 外设向 CPU 发出中断请求的时间是随机的,而 CPU 响应可屏蔽中断需满足如下条件: (1)CPU 必须处于开中断状态,即 TF=1 状态; (2)系统中无总线请求; (3)系统中无不可屏蔽中断请求; (4)CPU 执行完现行命令。 2.设某中断的中断类型号为 12H,中断服务程序的段地址为 2020H,偏移地址为 3000H, 试编写程序段将中断向量装入中断向量表中。
答案: XOR AX, AX MOV ES, AX MOV DI, 12*4 ;DI 中为 n 号中断对应的中断向量表的偏移地址 MOV AX, 3000H CLD STOSW ;装入中断服务程序偏移地址 MOV AX, 2020H STOSW ; 装入中断服务程序偏移地址
3.8259A 具有两种中断屏蔽方式,普通屏蔽和特殊屏蔽方式。这两种屏蔽方式有什么特 殊之处,特殊屏蔽方式一般用在什么场合?
答案: (1)普通屏蔽方式:在普通屏蔽方式中,将 IMR 某位置 1,则它对应的中断就被屏蔽, 从而使这个中断请求不能从 8259A 送到 CPU。如果 IMR 位置 0,则允许该级中断产生。 (2)特殊屏蔽方式:在有些特殊情况下,希望一个中断服务程序能够动态地改变系统优 先权结构,就引入了特殊屏蔽方式。编程时 IMR 某位置位,就会同时使 ISR 的对应位复 位。这样就不只屏蔽了当前正在处理的这级中断,而且真正开放了其他级别较低的中断。 当然,未屏蔽的较高级中断也可得到响应。 特殊屏蔽中断一般用在中断服务程序执行过程中,不仅用于响应优先级高于当前中断的 中断请求优先级,而且还能够应用于响应优先级低于当前中断的中断申请优先级的场合。
4.试简述 8259A 中断控制器是如何在特殊全嵌套方式 SNFM 下实现全嵌套的?
答案: 特殊全嵌套方式和普通全嵌套方式的区别在于:在特殊全嵌套方式下,当处理某一级中 断时,如果有同级的中断请求 8259A 也会给予响应,从而实现一个中断过程能被另一个 具有同等级的中断请求所打断。 特殊全嵌套方式一般用在 8259A 的级联系统中。 在这种情况下只有主片的 8259A 允许编 程为 特殊全嵌套方式。这样,当来自某一从片的中断请求正在处理时,主片除对来自优 先级较高的本片上其他 IR 引脚上的中断请求进行开放外,同时对来自同一从片的较高优 先级请求也会开放。使主片不封锁得到响应的从片的 INT 输入,以便让从片上优先级别 更高的中断能够得到响应。 5.请编写初始化程序。系统有一片 8259A,中断请求信号用电平触发方式,要用 ICW4, 中断类型码为 60H~67H,用特殊全嵌套方式,无缓冲,采用自动中断结束方式。设 8259A 的地址为 92H,93H。
答案: MOV AL, 0001101B OUT 92H, AL MOV AL, 01100000B OUT 93H, AL MOV AL, 00010011B OUT 93H, AL 6.若 8086 系统采用单片 8259A 作为外部可屏蔽中断的优先级
管理器,正常全嵌套方式, 边沿触发,非缓冲连接,非自动中断结束,端口地址为 20H,21H。其中某中断源的中 断类型码为 0AH,其中断服务子程序的入口地址是 2000:3A40H。 (1)请为 8259A 设置正确的初始化命令字,并编写初始化程序。 (2)中断源应与 IR 的哪一个输入端相连?中断向量地址是多少,中断向量区对应着 4 个单元的内容是什么?
答案: MOV AL, 13H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL, 01H OUT 21H, AL 中断源应与 IRQ2 相连,矢量地址为 0028AH,地址中内容(由高向低) :20H,00H,3AH,40H
7.8086 微机系统中,如图例 7 所示硬件连接, 8259A 的主片采用特殊全嵌套,从片采 用一般全嵌套,主片和从片都是非自动中断结束,中断源都为边沿触发信号有效,主片 的中断类型码为 80H~87H,从片的中断类型码为 50H~57H。 1. 写出主片 8259A 和从片 8259A 的地址;
2. 写出主片 8259A 的控制字,并完成初始化编程; 3. 写出从片 8259A 的控制字,并完成初始化编程;
8086 D7~D0IO /M A7A5A4A3A2A1A0INTA A6INTR G1 A B C 1 74LS138 CS A0D7~D0INT IR0IR1IR2IR3IR4IR5IR6IR7EN SP/ +5V INTA CAS0CAS2~ 8259A 8259AG2AG2B7Y6Y5Y4YCAS0CAS2~ IR0IR1IR2IR3IR4IR5IR6IR7EN SP/ CS A0D7~D0INT INTA 图例 7 1. 主片地址:F0H F1H 从片地址:C0H C1H 2. 主片: ICW1 11H ICW2 80H ICW3 80H ICW4 11H 从片: ICW1 11H ICW2 50H ICW3 03H ICW4 01H 3.主片初始化 MOV AL, 11H OUT 0F0H,AL MOV AL, 80H OUT 0F1H,AL MOV AL, 80H OUT 0F1H, AL MOV AL, 11H OUT 0F1H, AL 从片初始化: MOV AL, 11H OUT 0C0H,AL MOV AL, 50H OUT 0C1H,AL MOV AL, 03H OUT 0C1H, AL MOV AL, 01H OUT 0C1H, AL
第八章习题
一、选择题
1.可编程计数/定时器 8253 的工作方式共有______,共有_____个 I/O 口。 A. 3 种,4 B. 4 种,5 C. 6 种,3 D.6 种,4 答案:C
2. 若 8253 的通道计数频率为 1MHz,每个通道的最大定时时间为______。 A.10ms B.97.92ms C.48.64ms D.65.536ms 答案:D
3.当可编程计数/定时器 8253 工作在方式 0,在初始化编程时,一旦写入控制字后, _________。
A.输出信号端 OUT 变为高电平 B. 输出信号端 OUT 变为低电平 C. 输出信号保持原来的电位值 D.立即开始计数 答案:B
4.定时/计数器 8253 无论工作在哪种方式下,在初始化编程时,写入控制字后,输出端 OUT 便______。
A.变为高电平 B.变为低电平 C.变为相应的高电平或低电平 D.保持原状态不变,直至计数结束 答案:C
5. 8253 工作在方式 1 时,输出负脉冲的宽度等于______。
A.1 个 CLK 脉冲宽度 B. 2 个 CLK 脉冲宽度 C. N 个 CLK 脉冲宽度 D.N/2 个 CLK
脉冲宽度 答案:C
6.将 8253 定时/计数器的通道 0 设置为方式 3,产生频率为 10KHz 的方波。当输入脉冲 频率为 2MHz 时,计数初值为______。 A. 200 B.300 C.400 D.500 答案:A 二、填空题
1.8253 的计数器通道有______个,端口地址有_______个。 答案:3,4 2.8253 的最高计数频率为 。 答案:2MHz
3.8253 的数据引脚有_______位,内部有_______位的计数器初值寄存器。 答案:8 位 16 位
4.若 8253 的输入时钟 CLK1=1MHz,计数初值为 500,BCD 码计数方式,OUT1 输出为 方波,则初始化时该通道的控制字应为______。 答案:77H
5.如果 8253 通道 0 工作在方式 0,初值为 8H,当减法计数至 5H 时,GATE 信号变为低, 则 当 GATE 信号从新为高时,从 又开始计数。 答案:原来计数中断的位置
6.8253 端口地址为 40H~43H,通道 0 作为计数器,计数时钟频率为 1MHz。下面程序段 执行后,输出脉冲的宽度是______。 MOV AL, 36H OUT 43H, AL MOV AX, 20000 OUT 40H, AL MOV AL, AH OUT 40H, AL 答案:10ms 三、问答题
1.每个计数器和外设的连接引脚各是什么?简述其功能。
答案:计数器与外部相连的信号端有 3 个:CLK 、GATE 和 OUT。CLK 是计数器 的时钟脉冲输入端,最高频率为 2MHz;GATE 是计数器的控制信号,决定是否允许计 数;OUT 是计数器的输出信号,不同的工作方式有不同的输出信号。
2.某系统利用 8253 芯片进行定时计数,输入的时钟脉冲为 1MHz,定时时间为 10s,问需要几个计数器通道完成定时,每个计数器通道的计数初值为多少?
答案: 10×106=1000 0000 需要两个计数通道,计数初值分别为 1000 和 10000
3.8253 的 4 个端口地址为 208H、209H、20AH、20BH,采用计数器 0 定时,输入时钟 信号为外部事件,当外部事件记满 100 时,由计数器 0 输出中断请求信号,要求完成对 计数器 0 的初始化编程,并设计端口地址的译码硬件电路。 答案: 控制字 00010000H 片选地址 片内地址 接口电路地址 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 10000010 0 0 208H 0 1 209H 1 0 20AH 1 1 20BH MOV DX, 20BH MOV AL, 10H OUT DX, AL MOV AL,100 MOV DX, 208H OUT DX, AL & ≥1 CS A9A3A8A7A6A5A4M/IO RD WR IOR IOW D7~D0 至 DB A1A0A1A0GATE0+5V CLK0OUT0 外部事件计数 申请中断
4.如题图 8.1 所示硬件电路,试写出 8253 的 4 个端口地址,并写出计数器 1 的初始化 程序。 M/IO A9A8A7A6A5A4A3A2A1A0RDWR D7D08086 CPU G1 G2A Y3G2B C B A CS A1A0RD WR D7D0CLK1GATE1OUT18253 1MHz 方波 +5V 2KHz 方波 74LS138 & ≥ ≥ 题图 8.1 硬件电路连接
答案:地址: 片选地址 片内地址 接口电路地址 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 11000011 0 0 30CH 0 1 30DH 1 0 30EH 1 1 30FH 计数值: 1M/2K=500 控制字:01 10 011 1 方式 3 ,十进制,只写高位 MOV DX, 30FH MOV AL, 67H OUT DX, AL MOV AL,
05H MOV DX, 30DH OUT DX, AL
5.已知电路原理图如题图 8.2 所示。编写初始化程序,使在 OUT0 端输出图示波形。 题图 8.2
答案: 初值:1000 控制字:35H MOV AL, 35H MOV DX, 203H OUT DX, AL MOV AX, 1000H MOV DX, 200H OUT DX, AL MOV AL, AH OUT DX, AL
第九章习题
一、选择题
1.对 8255A 的 C 口执行按位置位/复位操作时,写入的端口地址是______。 A. 端口 A B.端口 B C. 端口 C D. 控制口 答案:D
2.要将 8255A 的 3 个 8 位的 I/O 端口全部设定为方式 0 的输入, 其设置的方式控制字为____。
A. 98H B.9BH C.9AH D.99H
答案:D
3.当 8255A 的 A 口工作在方式 1,B 口工作在方式 1 时,C 口仍然可按基本的输入输出方式 工作的端口线有_________条。 A. 0 B.2 C.3 D.5 答案:B
4.当 8255A 端口 PA、PB 分别工作在方式 2、方式 1 时,其 PC 端口引脚为_______。 A.2 位 I/O B.2 个 4 位 I/O C.全部用作应答联络线 D.1 个 8 位 I/O 答案:C
5.如果 8255A 的端口 A 工作在双向方式,这时还有_____根 I/O 线可作其他用。 A.11 B.12 C.10 D.13 答案:A
6.当 8255A 的 PC4~PC7 全部为输出线时,表明 8255A 的 A 端口工作方式是______。 A.方式 0 B.方式 1 C.方式 2 D.任何方式 答案:A
7.8255A 中既可以作为数据输入、 输出端口, 又可以提供控制信息、 状态信息的端口是____。 A. 端口 A B.端口 B C. 端口 C D. 控制口 答案:C
8. 8255A 的端口 A 和端口 B 工作在方式 1 输出时,与外部设备的联络信号将使用____信号。 A. INTR B. C. INTE D. IBF 答案:B 二、填空题
1. 当 8255A 的 A 口工作于方式 1 输入,B 口工作于方式 0 时,C 口的_____位可以作为输入 输出口使用。
答案:5 位
2.若要求 8255A 的 A、B 口工作在方式 1,作为输入,C 口作为输出,则输入 8255A 控制口 的控制字为______。 答案:B6H
3.若 8255A 的端口 B 工作在方式 1,并为输出口,置位 PC2 的作用为______。 答案:允许端口 B 输出中断
4.当数据从 8255A 的端口 C 往数据总线上读出时,8255 的几个控制信号 、A1、A0、 、 分 别是__________________。
答案:0 1 0 0 1 5. 8255A 在方式 0 工作时,端口 A、B 和 C 的输入输出可以有_______种组合。 答案:16 三、问答题
1.并行接口芯片 8255A 和外设之间有几个数据端口?在结构上有什么区别? 答案:3 个数据端口 这 3 个端口与外设的数据接口都是 8 位,但功能不完全相同。A 口有 3 种工作方式,B 口有 2 种工作方式, 口有 1 种工作方式。 口可以分两部分使用, C C 常用来配合 A 口和 B 口工作, C 口的高四位 PC7 ~ PC4 常用来配合 A 口工作, 口的低四位 PC3 ~ PC0 常用来配合 B 口工作。 C 各端口在结构上有所不同: 端口 A 包含 1 个 8 位的数据输入锁存器,1 个 8 位的数据输出锁存器; 端口 B 包含 1 个 8 位的数据输入缓冲器,1 个 8 位的数据输出锁存器; 端口 C 包含 1 个 8 位的数据输入缓冲器,1 个 8 位的数据输出锁存器。
2.8255A 的地址信号线是什么?共占用几个端口地址?
答案: 地址信号端 A1、A0,有 4 种组合: A1A0=00,选中端口 A 的寄存器; A1A0=01,选中端口 B 的寄存器; A1A0=10,选中端口 C 的寄存器; A1A0=11,选中控制字寄存器。
3.A 口工作于方式 0,输入,B 口工作于方式 1,输出,C 口的 PC1 作为输出联络口,PC2 作 为输入联络口,8255A 占用的 4 个端口地址为 80H ~ 83H,编写初始化程序,画出端口地址 的译码电路。
答案: 控制字:1 001 0 1 00 94H MOV AL, 94H OUT 83H, AL 4.8255A 的 A 口和 B 口都工作于方式 0,PC6 作为输入联络口,PC2 作为输出联络口。当检 测到 PC6 为“1”时,A 口输出数据 46H,并且 PC2 输出“1” 。设 8255A 的 4 个端口地址为 108H ~ 10EH,试编写以上操作程序段。 答案: 控制字:1 00 0 1 00 0 88H A 口方式 0 输出 C 口高 4 位输入 PC2 输出 1 0 000 010 1 05H MOV DX, 10EH MOV AL, 88H OUT DX, AL ;控制字 DEC DX NEXT: IN AL , DX TEST AL, 40H ;测试 PC6 JZ NEXT ;为 0,继续查询 MOV DX, 108H MOV AL, 46H OUT DX, AL ;A 口输出 MOV AL, 05H MOV DX, 10EH OUT DX, AL ;PC2 输出
5.如题图 9.1 所示电路,当 A 口连接的开关闭合时,相应的 B 口连接的发光二极管亮。 (1) (2) 写出 8255A 的 4 个端口地址; 编写程序完成以上操作。 题图 9.1 硬件电路连接
答案:地址:208H~20BH 控制字:1 00 1 0 0 00
A 口发生 0 输入 B 口方式 0 输出 MOV DX , 20BH MOV AL, 90H OUT DX, AL
MOV DX, 108H IN AL, DX ;
读 A 口 INC DX OUT DX, AL ;写 B 口
6. 如题图 9.2 所示电路, 口工作于方式 1 输出, B 作为 CPU 和打印机之间的并行接口电路。 设 8255A 的端口地址为 90H ~ 93H,编写程序完成将 RUF 开始的 1000 个字节的数据打印。 题图 9.2 B 口方式 1 输出
答案: 控制字 1 000 0 1 0 0 84H B 口方式 1 输出 允许 B 口中断,可以查询中断指示状态:PC2 置 1, 0 000 010 1 MOV AL, 84H OUT 93H, AL ;写控制字 MOV AL, 05H OUT 93H, AL ;写中断允许 LEA SI , RUF MOV CX, 1000 L1: MOV AL, [SI] ;将数据传送至 AL OUT 91H, AL ;从 A 口输出数据, 使 变为低电平 L2: IN AL, 92H ;从 C 口读取状态字 ;打印机取走数据后, 变为低电平,并将 变为高电平 AND AL, 01H ;判断 B 口是否提出中断申请 JZ L2 ;如果没有,继续检测状态字 INC SI ; DEC CX JNZ L1 HLT