微机原理复习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理复习大纲
复习范围:
1作业
2.书上例题
3•课堂上反复强调的内容
4•复习题
微机原理复习题
一、飆选择题
1. PC 机是(C)
A、单片机
B、单板机
C、微型计算机
D、微型计算机系统
2. CPU中运算器的主要功能是(D )
A、算术运算
B、逻辑运算
C、函数运算
D、算术运算和逻辑运算
3. 8086CPU中的段寄存器用来存放(C)
A、存储段的物理地址
B、存储器的逻辑地址
C、存储器的段基值
D、存储器的起始地址
4.8086系统中内存储器的地址空间为1M ,而在进行I/O读写时,有效的地址线是(B )
A、高16位
B、低16位
C、高8位
D、低8位
5. 8086CPU在进行写内存操作时,控制信号M/IO和DT / R是(D )
A、00
B、0 1
C、1 0
D、1 1
6.芯片8288在8086CPU系统中用作(C)
A、总线锁存器
B、总线驱动器
C、总线控制器
D、总线仲裁器
7.有一静态RAM芯片的地址线为A O~A9/数据线为D O~D3/则该存储器芯片的存储容量为(D)
A、2Kx4 位
B、1KB(B:字节)
C、2KB
D、1K X4位
8.在16位存储系统中,为了(C),存储字最好存放在偶地址。

A、便于快速寻址
B、节省所占的内存空间
C、减少执行指令的总线周期
D、减少读写错误
9.有一8086系统的中断向量表,在003CH : 003FH单元开始依次存放34H、FEH、00H
和F0H四个字节,该向量对应的中断类型码和中断服务程序的入口地址分别为(C)
A、0EH , 34FE : 00F0H
B、0EH , 0F000 : 0FE34H
C、0FH , 0F000 : 0FE34H
D、0FH , 00F0H : 34FEH
10.8259A可编程中断控制器中的中断服务寄存器ISR用于(A )
A、记忆正在处理中的中断
B、存放从夕卜设来的中断请求信号
C、允许向CPU发中断请求
D、禁止向CPU发中断请求
11.当8255A工作在方式1的输入状态时,8255A与外设之间的联络信号为(C )
A、IBF、ACK
B、OBF、ACK
C、IBF、STB
D、OBF、STB
12. 8253可编程定时/计数器的计数范围是(D )
A、0-255
B、1-256
C、0-32768
D、1-65536
13.可编程定时器/计数器8253的6种工作方式中”既可软件启动”又可硬件启动的是(B )
A、方式1,2; 8、方式2,3; (:、方式3,5; 。

、方式2,5
14.根据串行通信规程规定”收发双方的(B )必须保持相同。

A、夕唧时钟周期;
B、波特率因子;
C、波特率;
D、以上都正确
15. 8251A用作异步串行通信接口,如果设定波特率因子为16 ,而发送器与接收器时钟频率为19200Hz ,则波特率为(A )。

A、1200 波特;
B、2400 波特;
C、9600 波特;
D、19200 波特
16、10进制数-127的补码为(A )
A、10000001
B、10000000
C、00000001
D、11111111
17、指令MOV BX, DATA[BX]采用的寻址方式是(D \
A、立即寻址
B、寄存器间接寻址
C、直接寻址
D、寄存器相对间接寻址
18、已知AL二7EH, DL二8AH,执行CMP AL, DL指令后,标志寄存器中C、0、S、Z四标志的状态分别为(C L
A、0、0、1、0
B、0、1、1、0
C、1、0、1、0
D、1、0、0、0
19、已知BL二08H, DL二0E2H,执行XOR DL, BL指令后,DL寄存器中的数为(D )
A、132
B、20H
C、00H
D、0EAH
20、CPU响应中断后得至忡断类型码是9 ,则从(C )单元取出中断服务子程序的入口地址
A、0009H
B、00009H
C、00024H
D、0024H
21十进制数66转换成二进制数为(D )
A. 11000010
B. 01100110
C. 11100110
D. 01000010
22下列数中最小的是A
A. (101001)2
B. (52)8
C. (2B)16
D. (50)10
23 设(101)X=(41)16,求x二(C)
A.6
B. 10
C.8
D. 12
24用16位二进制补码表示一个带符号数,其最小数为(C ),如表示一个无符号数,其最小数为
(A)
A.O
B.-32767
C.-32768
D. -65536
25―个8位二进制整数,若用补码表示,由3个"0"和5个T 组成,则最小值为(C \
A.-120
B. -8
C.-113
D. -11
268086/8088加电复位后,执行的第一条指令的物理地址是(B \
A.OFFFFH
B. FFFFOH
C.0000H
D. 0240H
278086在执行MOV AL, [BX]指令的总线周期内,若BX存放的内容为2034H ,则BHE二
和AO的状态为D o
A.O , 1
B.O , 0
C.l , 1
D. 1,0
28在8086/8088CPU中,一个最基本的总线周期数由(①D )个时钟周期(T状态)组成,在T1 状态,CPU往总线上发送的是(②B )信息。

① A. 1 B. 2 C. 3 D.4
②A•数据 B.地址C.控制 D.其他
298086用于中断请求输入的弓I脚信号是(A X
A. INTR 和NMI
B.INT 和NMI
C.INTR 和INTA
D.INTE 和INET
308086CPU响应单个可屏蔽中断的条件是(D 1
A.CPU开中断
B.夕卜设有中断请求信号
C.夕卜设中断请求信号不屏廠
D.同时满足上述ABC条件,且正在执行的指令执行完毕。

31不需要访问内存的寻址方式是(B 1
A.直接寻址
B.立即数寻址
C.间接寻址
D.变址寻址
32条件转移指令JE NEXT,能转移到语句标号为NEXT执行的条件是(D \
A.ZF二0
B.CF二 1
C.CF=O
D. ZF=1
33实现Al寄存器中D7和D0都取反的指令是D
A. AND AL, 7EH
B.ORAL, 81H
C. TEST AL,81H
D. XOR AL,81H
二多项选择题
1• 8086CPU的下列寄存器中,不能用作寄存器间接寻址方式时的地址寄存器的有(ACD )。

A、AX
B、BX
C、CX
D、DX
E、SI
2. 8086有两种工作模式,即最大模式和最莫式,其中最小模式的特点是(ADE )。

A、8086提供全部控制信号
B、必须使用总线控制器8288
C、必须使用总线收发器
D、必须使用总线锁存器
E、构成单处理器系统
3.大部分DMAC都拥有(BCD )等传送方式。

A、直接传送方式
B、单字节传送方式
C、查询传送方式
D、成组传送方式
E、中断传送方式
4.要对可编程接口芯片进行读操作时,必须满足(AB )
A、CS二L
B、RD二L,WR二H
C、WR二L , RD二H
D、RD二L WR二L
E、RD=H , WR=H
5将累加器清零的正确指令是ABC
A.ANDAX, OOH
B. XOR AX, AX
C. SBBAX,AX
D. CMP AX,AX
三、判断题
1在8086最小方式的总线读时序图中在T2时钟周期时ADo-ADis总线上有一个高阻态。

(V )
2.对于可屏廠中断的嵌套处理原则是允许优先级高的中断打断优先级低的中断,允许同级中断相互打断,而不允许优先级低的中断打断优先级高的中断。

(x )
3. 8086CPU在收到外部中断请求信号以后,进人中断响应周期,通过IN指令读取中断类型号, 从而就可获得中断服务程序入口地址。

(x )
4.可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,但由于是由软件控制,在计数过程中必然会占用CPU的时间。

(x )
5.指令一般包括两部分:操作码和操作数。

(V )
6.—个总线周期有一个或若干个指令周期组成。

(x )
7.8086有一个16位标志寄存器,它包含了6个状态标志位和3个控制标志位。

(V )
8.—片8259A中断控制器最多能接收8个中断源。

(V )
98086CPU的逻辑段允许段的重尋和交叉。

(V )
108086CPU的标志寄存器FR是16位的,每一位都有定义。

(x )
11在8086的主存中,一个字节占用一个存储单元,一个字占用两个相邻的单元,字的高8位放在高地址单元,低8血攵在雌址单元。

(V )
128086CPU的ADO ~ AD15在执行指令时,先传数据,后传地址。

(x )
四、填空题
1(640)10=( 10 1000 0000 )2=( 280 )i6
2•每片8253包含有 3 个独立的16位计数通道,每个通道具有 6 种工作方式。

3.取指令时,8086会自动选择CS 值作为段基值,再加上由上提供的偏移量形成物理地址。

4.808 6/8088微处理器被设计为两个独立的功能部件: EU —和BIU
5.TEL 8086的当前CS二2000H ,IP二5678H,则将执行20位物理地址25678H 处的程序。

6.8086存储器组织中,逻辑地址由十六进制纟位构成的,物理地址又由十六进制5位构成。

7.—片8259A可管理_ 8—级中断,若级联三片从片则可以营理29 级中断。

&若DS二1200H ,则首前数环段的起始地址是12000H ,末地址是21FFFH 。

9.系统中数据传送的控制方式中程序控制的数据传送又分为条件查询和无条祥香荷。

10."串行通信”是扌裁据一位一位依次传送。

在串行通信中有两种基本的通信方式:即JS
__________ 和异步_____________ O
11.主机和I/O设备间的数据传送有程控、中断和DMA, IOP 三四种
方式,其中DMA和IOP_传送过程中CPU无需参与,而是由DMAC和IOP控制完成。

12 38.8086系统中,要求各个逻辑段必须从节的整数倍边界开始,即段首地址的低4位总是
0_。

将段首地址的高16位地址码称作段基址,存放在相应的段寄存器中。

13•由逻辑地址获得物理地址的计算公式为 ____________________ o
14.80X86系统中,堆栈是遵循后进先出原则。

15在8086最小模式的典型配置中,需 2 片双向总线收发器8286 ,因为8286数据线为8 位,而8086数据总线为16位______________________________ 。

16.8086/8088系统中I/O端口地址是二进制数16 位的,可寻址64K 个端口。

每个端口中含8 位的数据。

17.8086/8088的I/O指令中若采用直接寻址,要求端口地址必须在0-255 范围之内;若采用间接寻址,
则端口地址在0-65535 范围之内。

18位二进制补码所能表示的十进制数的范围为+ 127 ~ - 128 ,前者的补码为
(01111111 ),后者的补码为(10000000 )。

19已知段基址和偏移地址分别为2015H和0028H ,此存储单元的物理地址是(20178H \
20若8086的引脚MN/MX接+5V ,则当执行OUT指令时,其弓|脚信号M/IO二0 , RD二
1 , WR二_0 _________ (填写高、低电平1
21 8086工作于最小模式下,CPU完成存储器读操作时,信号M/IO= 1 ,RD二
0 _______ , WR二1 和DT/R二0 °若进行字节操作,单元地址为奇地址,
贝U BHE= 0 ,和A0二 1 °若进行字操作且该字地址为偶地址,则BHE二
0 _______ ,和A0 二0
22写岀一条指令完成下述功能1)将AH的最高3位清零其他位不变:ANDAHJFH ;刀_将AH的低4位置1 ,其他位不变:OR AH,0FH ;3)将AH的最低位取反,其他为
不变:XOR AH,01H
23宏汇编语言程序被汇编时,指令语句产生代码指令,伪指令语句不产生代码指令,宏指令_i吾句可能产生也可能不产生代码指令。

24调用程序、子程序传送参数的方法通常有墾_、寄存器和内存空间三种方法。

25伪指令EQU、DB、DW、MACRO的标号名字域必须有名字或标号的伪指令为
EQU, MACRO 。

26乘法指令MUL的指令格式只有一个源操作数,若源操作数的类型属性为字节,则目的操作数在AX中,若源操作数的类型属性为字,则目的操作数在DX,AX中。

27请给出标志寄存器中标志位OF、IF、SF、ZF、PF、CF的说明:OF溢岀、IF中断、SF宝号、ZF零、PF奇偶、CF逬位。

2&指令XLAT通常用于查表操作,在使用该指令前,应把表首的偏移首地址送入空,待转换的代码在表中的序号送AL。

29若要求不产生汇编错误,则字符串'ABC'只能出现在伪指令DB中。

30为下述情况各举一例。

⑴寄存器与存储单元内容相加送寄存器ADD AX,[1000H] °
⑵寄存器互送MOV AX,BX。

⑶将标志寄存器进栈PUSHF 。

⑷立即数与寄存器内容相加送寄存器ADD AH01H。

⑸将48H、5AH 存入字节数据区ARRAYB ARRAYB DB 48H f5AH
五.简答题
1 •在I / 0接口电路中,按主机与外设间传送的信息类型,端口可分为哪几类?CPU对这些端口
实彳亍卖操作还是写操作?
:I/O端口分为:数据口,状态口,控制口。

CPU可对麦读操作、
口进行读或写操作,对状态口进行
阴制口进行写操作
2.与并行通信相比较,串行通信有什么特点?
⑴串行通信适宜于远程数据传送;
(2)串行通信通常传送速度较慢;
⑶串行通信的费用较低,传输线少,可借用电话网络来实现远程通信• 3.8086/8088CPU响应任何一种中断时,都会自动的将IF和TF标志清零,其目的是什么? 答将IF标志清零的目的是在本次执行中断服务程序的过程期间,不要再响应其他的可屏蔽中断; 将TF标志清零的目的是不要单步执行中断服务程序。

4.CPU响应多种中断时,都要自动地保护断点,为什么?
答:”保护断点”是指主程序中当前被中断的指令的下一条指令所存放的存储单元的逻辑地址,
(称为断口地址,或断点地址,简称断点)包括段值和段内偏移量两部分(既CS和IP中的内容)作为返回地址被自动地压人堆栈中保护起来。

这样做的目的是使中断服务程序运行结束时,使程序能返回到主程序的断点处去继续执行。

5.当某一中断发生时,CPU如何能找到相应的中断向量?
答:当某一中断发生时,CPU只有在中断向量表中找准找到相应的中断向量,即相应的中断服务程序的人口地址,才能去执行相应的中断服务程序。

若能找准存放该中断向量的4个存储单元的地址,就意味看找到了该中断向量。

若把存放每个中断向量的4个单元的第一个单元的地址叫做向量地址,由于中断向量是按中断类型码n从0 -255的顺序存放的,故向量地址与中断类型码有如下关系:向量地址二0000 : Nx4。

如:0号中断的向量地址为0000 :0000 ,表示0号中断的中断向量存于地址为0000 :0000 开始的4
个单元中,1号中断的向量地址为0000 : 0004H ,表示1号中断的中断向量存于地址为以0000 : 0004H开始的4个单元之中,等等。

因此,任何f 中断的到来,CPU只要能得到它的中断类型号,就能找到它的中断向量。

把它的偏移量传送入IP ,段值送入CS ,即能执行相应的中断服务程序。

6.分别指出下列指令中源操作数的寻址方式:(5分)
A.MOV SI , 100 立即寻址
B.MOV CX , DATA [ SI] 寄存器相对寻址
C.MOV [SI] , AX 寄存器寻址
D.ADD AX , [ BX] [ DI ] 基址加变址寻址
E.POPHF 寄存器寻址
7.什么是中断?什么是中断向量?什么是中断向量表? INT24在中断向量表的什么位置?—个完整的中断过程有哪几个步骤?
答:中断是指CPU在正常运行时,由于内部、夕卜部事件或由程序的预先安排引起的CPU中断正在运行的程序,转而到内部、夕卜部事件预先安»的服务程序(中断子程序)中去执行。

中断向量是中断处理子程序的入口地址,每个中断类型对应一个中断向量。

中断向量表是中
断类型码和与此类型码相应的中断服务程序之间的一1连接链。

每一个中断服务程序入口地址的
IP和CS成为一个中断指示字或中断向量。

24*4二96二60H INT24 在中断向量表的0000 : 0060H ~ 0000 : 0063H 处。

—个完整的中断过程包括中断请求、中断排队、中断响应、中断处理和中断返回五个步骤。

8简述8086CPU由哪些寄存器组成。

答:4个16位的通用寄存器:AX累加器、BX基址寄存器、CX计数器、DX数据寄存器;
4个16位的专用寄存器:SP堆栈指针寄存器、BP基址指针寄存器、SI源变址寄存器、
DI目的变址寄存器;
f标志寄存器FR ;
4个16位的段地址寄存器:CS代码段寄存器、DS数据段寄存器、SS堆栈段寄存器、ES 扩展段寄存器;
F 16位的指令指针寄存器IP
9简述8086/8088系统中为什么要使用地址锁存器?
答:为获取并保持地址信息,系统中要使用地址锁存器。

因为8086/8088系统中低16位地址线与数据线分时复用,高4位地址线与状态线分时复用,在每个总线周期的T1状态期间,CPU通过20位地址线向外发送地址,然后在T2、T3、T4状态时传送数据或状态信息,而在一个完整的总线周期(T1-T4 )内,被访问的存储器或I/O端口始终需要完整的地址信息”这就要求在T1 状态时t也址有效期间由地址锁存器将地址信号锁存并保持”以供被访问的存储器或I/O端口在整个总线周期内使用。

10.已知SDRAM6264的片容量是8Kx8位,问它的夕卜部弓|脚中含多少根地址线和数据线?
答:从该芯片的容量可知,其内部含有8192个(8*1024 )存储单元,每个单元能存放一个字节数据,因为13根地址线才能对8192个存储单元寻址(2】3二8192 ),所以它有13根地址线,8 位数据线。

因为在读写每一个存储单元的8位二进制数时需要8位数据线。

六、简单分析、设计题
1、阅读如下程序段,回答提出的问题。

MOV AX , 3456
XCHG AX , BX
MOV AX , 3456
SUB AX , BX
JE DONE
KK : ADD AX , BX
DONE:
该程序段执行完JE DONE语句后,AX=_O_ , ZF=1_ , IP二DONE。

2请在程序段的每一空框内填入一语句(不彳昙修改其它语句),以实现下述功能:将字变量VARM1 中的非零数据左移到最高位为”1"止,左移次数存入字节变量VARB中,左移后的结果存入字变量VARW中。

MOV BL,0
MOV AX Z VARW1
ADD AX,0
JS DONE
GOON: INC BL
ADD AX,AX
JNS GOON
DONE: MOV VARW,AX
MOV VAR&BL
3为什么说8088CPU为准16为微处理器,而8086CPU为16为微处理器?
答:8088CPU的内部寄存器均为16位,可一次完成16位二进制的算术及逻辑运算,但外部数据总线为8位。

而8086则内部寄存器及外部数据总线均为16位,可一次完成16位二进制的算术及逻辑运算。

4已知,(DS) = 0120H , ( SS )二2000H , ( ES)二0FF2H , ( BX )二1000H , ( BP )二2000H , (SI二3110H , ( SP )二1004H ,试写出下面每条指令中存储器操作数的物理地址。

01
xa z xv aav
H000FX日AON
HCHzHO'XH AON
:畜彩丄弭*碍撕H 9808显丄拥麻9
•0二xa 0 =XD H80-二X日=xv
丄)GN dOOl
I'XCI 爼HS
xv z xa aav
XV DNI :丄)GN
HtzO'XG AON
HEO Z XD AOl^l
H乙0 'X日AOIAI
H10 'XH AON :丄时S z xa‘x〉xaxv'些率丄卿裁碍s
H000£ =X日’H000£ = XW H3ddO = dS f XV dOd X9 HSDd (乙)
H3ddO = dS XV HSAd ◎哥号W (I )
:回黑’H0002X日’H000乙二XV ' H0001⑨孰伽0 dS霁马睪#鬲爭聊H乙001乙乙-dS+9l*SSdHSCId(s)
HOIIS?d9+IS+9l*SSXD 1d9+ISl ans I)
HG01 吃£TS+XS+9口ssw'[£TS+xs]:ss aav
(£)
H33JI乙8l-d9+9l*SS[8l-dal 'X8 AOl^l
(乙)
01E31H0006+IS+X日+9USG [H0006+IS+Xa],_IV AOl^l(I)
HLT
执行结果
AX 二7FF0H BX 二8000H
对应标志位
ZF 二0 SF= 0 OF 二 1 CF 二 1 PF= 0 AF 二
7.下面程序段执行完以后,BX的内容是什么?
MOV BX, OOFFH
AND BX , OFFFH
OR BX , OFOFH
XOR BX, OOFFH
答:BX二OFOOH
8下列程序段咸什么工作?
DAT1 DB 30 DUP(?)
DAT2 DB 10 DUP(?)
I
I
I
MOV CX, 10
MOV BX , 20
MOV SI, 0
MOV DI, 0
NEXT : MOV AL, DAT1 [ BX ] [SI]
MOV DAT2 [ DI ] , AL
INC SI
INC DI
LOOP NEXT
答:把DAT1+20存储单元开始的10个字节搬到DAT2开始的连续10个存储单元中。

9 .设8086系统中,中断请求信号采用边沿触发方式,单片8259A,中断类型码高5位为01010 , 中断源接在IR2上,普通全嵌套方式,非自动结束方式,缓冲方式。

(设:ICW1 口地址为80, ICW2、ICW3、ICW4 口地址为81)编写初始化程序。

MOV AL , 13H OUT 80H , AL
MOV AL , 52H OUT 81H , AL MOV AL , 09H ICW1 ICW2
OUT 81H , AL ICW4
10 .已知(AX) = 0120H , ( BX)二 2000H , (CX)二 0FF2H , (DS) = 1000H f ( ES) = 2000H ,
存储器中的数据如图所示。

请写出下列指令单独执行时,对寄存器和存储器内容将产生什么影响?
答:该题实际上要求回答8条指令分别执行时的结果。

(I) MOV AX j BX ]
源操作数的物理地址为:10000H 十2000H 二12000H 执行结果(AX)二[12000H]二 9745H (2 ) MOV AX , ES :
[BX]
ES : [ BX]为讎越情况,源操作数物理地址为:20000H +2000H 二22000H
执行结果:(AX )二[22000H ]二 4433H
(3 ) MOV [BX ], CX
目的操作数的物理地址为:10000H +2000H 二12000H 故[12001H ] =OFH f [12000H] =0F2H 原来的内容不再是97H 及45H 了。

(4)LEA CX,[BX ]
源操作数的有效地址为BX 故(CX )二(BX )二2000H
(5 ) LDS DI z [1000H]
源操作数的物理地址是I0000H + I000H 二11000H ,故
(DS)二[1 I002H]二 I000H (DI)二[11000H]二 25I0H
(1) MOV AX , [BX]
(2 ) MOV AX , ES : [BX] (3 ) MOV [BX] , CX (4) LEACX f [BX]
(5 ) LDS DI r [I000H]
(6 ) LES SI, [OFFEH]
(7 ) XCHG AX Z BX
(8 ) XLAT
10FFEH 12000H 12020H 22000H
(6 ) LES SI , [OFFEH ]
源操作数的物理地址为I0000H + OFFEH二IOFFEH ,故
(ES) = [11000H]=2510H
(SI)二[IOFFEH]二0F45H
(7 ) XCHG AX, BX.
执行前(AX) = 0I20H , ( BX )二2000H
执行后(AX) = 2000H , ( BX )二0120H
(8 ) XLAT ;(AL) =「BX + AL J =[ 2000H + 0020H]
=[2020H ]
有效地址EA二2020H时,物理地址为12020H ,故执行XLAT指令后,(AL )二56H。

11.写出四条指令,分别能将AX寄存器清零。

答:①MOV AX r 0
②AND AX , 0
③SUB AX , AX
④XOR AX r AX
12下列指令是否有错?有则指出错误所在:
(2)MOV[BX] , [28A0H]
(3)MOV CS , AX
(4)MOV DS , ES
(5)MOV AL, DX
(6)MOV AX , 1OOO[BX]
错,立即数不能直接送段寄存器 错,双操作数指令的两个操作数不能
同时在内存中
错,不能用指令直接往CS 寄存器中传送数据
错,两个段寄存器之间不能传送数据 错,类型不匹配,寄存器长度不同 对
错,AX 寄存器不能用于间接寻址
错,以字母开头的十六进制数前面要加前导0
(7)MOV BX , [AX] (8)MOV
AL, C8H
(1) MOV DS , 117CH
(10 ) MOV AX r [SI-10]
七. 综合分析.设计题
1址为DATAB 开始的80个单元中存放某班80个学生的某课程成绩,要求:统计〉二90分、80-89 分、70-79分、60-69分、60分以下的人数,结果存放在BTRX 开始的5个单元中求平均成绩z 结果存放在LEVEL
中。

解:寄存器使用分配:90分以上在DH , 80分以上在DL , 70分以上在BH , 60分以上在BL , 60分以下在AH ,总分、均分都在[DI ]。

DAT SEGMENT
CONT DB 10
ADC [DI]f AL;累加总分
儿 PP7 ;不高于80分转PP7
INC DL ;80—-89分的人数加一 JMP STOR
(9 ) MOV AX , 00F1
错,十六进制数应加上后缀0
DATA DB 殂65,99,80" BUFFER DB ?,?,?,?,? LEVEL DB ?,?
DAT ENDS
XOR AH, AH XOR DX,DX XOR BX r BX LEASI.DATA LEA DI r LEVEL MOV CL CONT;
goon: MOV AL, [SI] 89,100,45,60,70
;统计结果清零
;统计结果清
总人数送循环计数器CX ;读原始数据
ADC [DI+1L0 CMP AL.90 JL PP8 ; INC DH JMPSTOR PP8:
CMP AL r 80
;计算囲立
不高于90分者转PP8
90-100分的人数加一
PP7: CMP AU70
儿PP6 ;不高于70分者转PP6
INC BH ;70—79分的人数加一
JMP STOR
PP6:CMP AL, 60
儿PP5 ;不咼于60分看转PP5
INC BL ;60—69分的人数加一
PP5:JMP STOR
INC AH ;低于60分的人数加一
STOR: INC SI;读下一个分数
LOOP GOON
;CX=CX-l f CX不为零转GOON,继续统计
LEASI,BUFFER ;回存统计结果
MOV[SILDH
INC SI
MOV[SILDL
INC SI
MOV[SIJ.BH
INC SI
MOV[SILBL
INC SI
MOV[SILAH
MOV AKWORD PTR [DI];计算平均成绩
MOV CLCONT
DIV CL
MOV LEVEL, AL ;回存平均成绩
HLT
2在BVFF单元中有一个BCD数A,试根据下列关系编写程序,计算结果存在DES中。

A <20z Y 二A+20;
A <60z Y=A-20;
A> 二60, Y 二 A.
DAT SEGMENT
BVFF DB 8 DES DB ?
DAT ENDS
MOV AL f BVFF
CMP AL f20
儿EXI
CMP AL f60
儿EX2
MOV AL, 80 JMP STOP
EXI:
MOV BL,3
MUL BL
JMP STOP
EX2:
SUB AL,20
STOP:
MOV DES, AL
HLT
3在DATA 之下存放100个无符号的8位数,找出其最大者并将其存放在KVFF 单元。

DAT SEGMENT
BUFFER DB ;自行定义100个数
据 KVFF DB
?

DAT ENDS
XOR DL,DL
LEA DI KVFF;
NEXTO: LEA SLBUFFER;
MOV CL 99;
比较次数为N-1次
NEXT1: MOV AL, [SI];
INC SI; CMP DUAL; JNC NEXT2; MOV DUAL;
NEXT2: DEC CL;
JNZ NEXT1; MOV [DI],DL; HLT
4编写10个字(16位二逬制数)之和的程序
解:ADD1为被加数,ADD2为加数,SUM 为和,CONT 为循环次数
LEASI f ADD1; LEAD!, ADD2; LEABX, SUM; MOV CL CONT;
DL 中始终存目前最大值
最大值存储
MOV CHO; 循环初始化CLC; 逬位清零
MADD1: MOV AXJSI];
働II 数1
ADC AX, [DI]
ADD SI,2; 移动源区地址指针 ADD DI,2; 移动目的区地址指针 MOV [BX],AX; 回存计算结果
ADD BX,2; 移动"和”存储区地址指针 LOO P MADD1;
循环控制 HLT;
暂停
5在某一系统中有8个开关K7 ~ K0要求不断检测它们的通断状态并通过发光二极管LED7 ~
LEDO 显示出来。

开关断开,相应的LED 点亮;开关合上,LED 熄灭。

选用8086 CPU , 8255A 和74LS138
译码器等芯片,构成应用电路。

如下图所示,8255A 的PA 口作输人口,8个开关 K7 ~ K0分别接PA7 ~ PA0o
PB 口为输出口,PB7 ~ PBO 分别连接显示器LED7 ~ LEDO 。

试进行
编程设置。

答:程序段如下:
CPU
(8086)
_______ K D7~D O PA
Sr-
PA 7
8255A
RD
RD PB。

W R
--------------------


PB.
PB 2
A
A
PB.
氏 -------------------- w
**0

口3 Ai
PB 4
地址
h
PB 5

PB
6
PB
• +5V a b c d e : f g h
J
L
2K X 4
74LS04
软~ ......
>1
LED
MOV AL , 90H ;方式选择控制字
OUT0F3H r AL;写人控制字
SET: IN AL,0F0H;从PA 口读开关状态
OUT0F1H, AL;PB 口控制比LED ,指示开关状态
JMP SET;循环检测
6. (1)某系统中,8253的端口地址为0B4H ~ 0B7H ,令计数器通道1工作在方式0 ,仅用8 位二进制数计数,计数初值为100 ,试进行初始化编程。

答:初始化程序段如下:
MOV AL.50H
OUT0B7H , AL;置控制字
MOV AL ,64H
OUT0B5H ,AL;置计数初值。

(2 )某片8253的计数器通道2工作在方式1,按BCD码计数,计数值为5000 ,该端口地址为0B4H ~0B7H ,请初始化编程。

答:初始化程序段如下:
MOV AL, 0B3H
OUT OB7H , AL;置控制字
MOV AL,OOH
OUT OB6H , AL
;置计数初值低8位。

MOV AL,50H
OUT OB6H , AL;置计数初值高8位。

7•对8255A进行初始化,要求A 口为输出工作方式0 ; B 口输入工作方式1 ; C 口高四位输入, 低四位输出。

(地址04A0H ~ 0A406H )
MOV AL , 8EH ;工作方式控制字
OUT 04 A3 H , AL ;控制字送控制口
8.求两个多字节数之和。

这两个数在21000H地址开始的内存单元中,连续存放,低位在小地址—端,结果放在这两个数之后。

设这两个多字节数均为八个字节长。

试画出程序流程图并编写相
应程序。

NAME DZJ-JAFA
DATA SEGMENT
DI DB 16 DUP (?)
SI DB 8DUP(?)
DATA ENDS
STAC SEGMENT
STA DB 50 DUP(?)
STAC ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATE,STAC:STA
ORG 1000H
START :MOV AX r 2000H
MOV DS , AX;数据段段基地址送DS
MOV SI, 1000H;第一个数指针送SI
MOV DI, 1008H;第二个数指针送DI
MOV BX , 1010H;结果指针送BX
MOV CX , 4;循环次数送ex
CLC;CF二0清零
AA :MOV AX, [SI];取F字到AX
ADC AX , [DI];AX+[DI]送AX
MOV[BX] , AX;结果存入[BX]
PUSHF;保护进位位
ADD SI, 2
ADD DI, 2
ADD BX, 2
POPF
LOOP AA
CODE ENDS
END START
9•用可编程并行接口芯片8255A作为打印机接口。

其中端口A工作于方式一,用于向打印机諭出打E 卩数据,端口C用作状态口和控制口。

编写程序,打印存储区为1200H ~ 1400H内所有字符的程序。

设8255A的口地址分别为端口 A : OFFFOH,端口 B : OFFFIH 端口 C : 0FFF2H ,控制口:0FFF3H。

OR
5000H;把程序定位在5000H
G
MOV DX, 0FFF3H;8255A控制端口地址
MOV AL,0A8H;端口A方式1,输出,PC4输入OUT DX , AL;控制字送控制端口
MOV CX , 200H;要打印字符的个数
MOV DI,1200H;存储区起始地址
CC
MOV AL, [DI];数据段偏移地址送AL
:
MOV DX, OFFFOH
OUT DX , AL;字岀
MOV DX , 0FFF2H;读打印机当前状态
AA :IN AL,DX;读打印机状态
AND AL,10H;®KBUSY{=^(PC4)
JNZ AA;忙等待
INC DI;指向下一个字符
LOOP CC
CPU 8255 打印机
HLT
10某8086系统中使用8237A完成从存储器到存储器的数据传送,已知源数据块首地址的偏移地址值为1000H ,目标数据块首地址的偏移地址为1050H f数据块长度为100字节,请编写初
始化程序。

可分为5步来作:
a)写工作方式控制字
MOV DX,工作方式寄存器端口
MOV AL, 41H ;工作方式控制字
OUT DX , AL
b)写操作方式控制字
MOV DX,命令寄存器端口
MOV AL, 01H ;操作方式控制字
OUT DX , AL
c)源数据块首地址送通道0地址寄存器
MOV DX ,通道0地址寄存器端口
MOV AX , 1000H
OUT DX , AL
MOV AL, AH
OUT DX , AL
d)目的数据块首地址送通道1地址寄存器
MOV DX ,通道1地址寄存器端口
MOV AX , 1050H
OUT DX , AL
MOV AL, AH
OUT DX , AL
e)数据块长度送通道1基字节数寄存器
MOV DX ”通道]基字节数寄存器端口
MOV AX , 64H
OUT DX , AL
11、编写8251异步模式下的接收和发送程序,完成256个字符的发送和接收,设端口地址:208H (数据端口),209H (控制端口),波特率因子16,1起始位,1停止位,无奇偶校验,每字符8 位。

(1)发送歸:
MOV DX,209H
MOV AL,40H ;复位命令。

OUT DX , AL
MOV AL , 01001110B ;模式字
OUT DX , AL
MOV SI r 0
OUT DX, AL
MOV CX , 256 MOV DI,0
NEXT : MOV DX f 209H IN AL , DX AND AL, 01H JZ NEXT MOV AL, [DI]
MOV DX , 208H
;发送256字节
;状态字
;TXRDY?
OUT DX r AL
;发送
INC DI
LOOP NEXT
(2 )接收程序: MOV DX f 209H MOV AL,40H ;复位
OUT DX r AL MOV AL, 01001110B ;模式字
OUT DX r AL
;控制字
OUT DX r AL
MOV CX, 256
;接收 256 字节
NEXT : MOV DX # 209H
IN AL, DX ;状态字
ANDAL, 02H ; RXRDY ?
JZNEXT
MOV DX , 208H
IN AL, DX ;接收1字符
MOV buf[SI] , AL
INC SI
LOOP NEXT
12、已知4500H开始的单元中放有100个单字节带符号数:
(1)若从头至尾每10个数一组,试编写一程序求每一组的和并依次放于6500H开始的
单元中;
(2 )编程统计100个数据中负数的个数和正数的个数分别存放于DX和BX中。

答:(1)LEA BX,[6500H](2)LEA SIJ4500H]
LEA SIJ4500H]MOV BX,0
MOV CH,10
LI: MOV CL,10MOV DX,0
MOV AL,0MOV CX,100
L2: ADD AL,[SI]LI:TEST[SI],80H是负数吗?
INC SI JZ ,L0
DEC CX INC DX统计负数
JN2:L2JMP L2
MOV [BXLAL L0:INC BX统计正数
MOV DX . 187H
;控制口地址
DEC CH JNZ
Ll
HLT
13. 某片8255A 的端口地址为00E0-00E3H ,设端口 A 、
B 都工作在方式0下,A 端口输出和 B 口输人,
C 口的高4位输出,C 口的低4位输人请对它进行初始
化编程。

方式选择控制字为:83H
D7 D6 D5 D4 D3 D2 DI DO
1 0 0 0 0 0
1 1
初始化程序如下:
MOV AL, 83H
OUT OE3H , AL
14•设在一个系统中,8255A 的端口地址为184H ~ 187H , A 口工作于方式1输出r 允许中断, B 口工作
于方式1输入,禁止中断,C 口剩余的两根线PC5、PC4位输人r 如图9-14所示,试 编写初始化程序。

图头14 AUK B 口、C 口工作方式1
答:方式选择控制字为:OAEH
初始化程序为:
INC BX
L2: INC SI
DEC CX JNZ
Ll
HLT
WR
B

A —
20
蔽 PC
: -—
STB R
Pq —- IBF B
D 0-D T
A
口 —
2


OBF A
PC <
PC ■— ACK A
A,
PC ; -—
I/O 入CS
控制字
D? D <( Dj D 4 D) D? D| D° 10
10
1
1 1 X
IA
口为tt
入 fB
口为
方式1 I
招定
j
为输入
fA
口为输出
-A 口为方
3tl f

式选择
任ft
MOV AL, OAEH
;方式「A 口输出z B 口输人 8255A
外部设备
OUT DX r AL
MOV AL f ODH
OUT DX , AL ; A 口允许中断
MOV AL, 04H
OUT DX r AL ; B 口禁止中断MOV DX . 187H ;控制口地址。

相关文档
最新文档