2024年5月31日发(作者:)
习题1(教材P56)
1.8086/8088微处理器地址总线有多少位?寻址范围是多少?
答:20位 A0-A19。寻址范围00000H-FFFFFH
2.8086/8088微处理器分哪两部分?各部分主要由什么组成?
答:执行单元EU和总线接口单元BIU。
EU包括:ALU、寄存器组、暂存器、标志寄存器、EU控制单元。
BIU包括:指令队列缓冲器、段寄存器及指令指针、总线地址加法器、总线控制
逻辑。
4.8086/8088微处理器中有几个通用寄存器?几个变址寄存器?有几个指针寄存器?几个段
寄存器?
答:8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。2个变址寄存器SI、
DI。2个指针寄存器SP、BP。DS、ES、SS、CS段地址寄存器。
5.8086/8088微处理器中有哪些标志位?它们的含义和作用如何?
答:零标志位ZF、进位标志CF、溢出标志位OF、辅助进位标志位AF、奇偶标
志位PF、符号标志位SF、方向标志位DF、中断允许标志位IF、跟踪标志TF。
6.试求出下列运算后的各个状态标志,说明进位标志和溢出标志的区别?
1278H+3469H
答:0001 0010 0111 1000
+0011 0100 0110 1001
0100 0110 1110 0001
ZF=0;SF=0;CF=0;OF=0;AF=1;PF=1。
54E3H-27A0H
答:0101 0100 1110 0011
+1101 1000 0110 0000(-27A0的补码)
10010 1101 0100 0011
ZF=0;SF=0;CF=1;OF=0;AF=0;PF=0。
3881H+3597H
答:0011 1000 1000 0001
+0011 0101 1001 0111
0110 1110 0001 1000
ZF=0;SF=0;CF=0;OF=0;AF=0;PF=1。
01E3H-01E3H
答:0000 0001 1110 0011
+1111 1110 0001 1101(
-01E3H的补码)
10000 0000 0000 0000
ZF=1;SF=0;CF=1;OF=0;AF=1;PF=1。
进位表示最高位产生进位。
1
﹢
C
n-1
溢出表示超出数的表示范围。OF=C
n
○
8.什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?
答:逻辑地址:产生实际地址的两个地址分量:首地址和偏移地址。物理地址:
内存单元地址。用户在编写程序时只使用逻辑地址。程序装到内存中使用物理
地址。物理地址可以通过逻辑地址求得。
9.设现行数据段位于存储器的B0000H到BFFFFH存储单元,DS段寄存器内容为多少?
答:DS=B000H
11.8086/8088微处理器工作在最小模式和最大模式时的主要特点是什么?有何区别?
答:最小模式只有一个CPU不需要总线控制器。最大模式有多个微处理器,必
须要总线控制器来对总线控制权进行分配。引脚MN/MX=1工作在最小模式。
MN/MX=0工作在最大模式。
13.80486地址总线宽度为多少?数据总线宽度为多少?
答:80486地址总线宽度为32位(分成4个块,每个块为8位字长,块有A1,A0
选择)有数据总线宽度为32位。
14.现有6个字节的数据分别为11H,22H,33H,44H,55H,66H,已知它们在存储器
中的物理地址为400A5H~400AAH,若当前的(DS)=4002H,请说明它们的偏移
地址值。如果从存储器中读出这些数据,至少需要访问几次存储器,各读出哪些
数据?
解:∵物理地址=(DS)×16+偏移地址,
∴偏移地址=物理地址-(DS)×16=400A5H~400AAH-40020H=85H~8AH
至少需要访问三次存储器,每次读出一个字,即2211H,4433H,6655H。
这六个数在存储器中的存放位置如图所示。
4002:0085
4002:0086
4002:0087
4002:0088
4002:0089
4002:008A
11H
22H
33H
44H
55H
66H
2
习题2(教材P105)
1.已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]~[20103H]依次存放12 24 56
78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器的
内容。
(1) MOV AX, 1200H
解:AX=1200H
(3) MOV AX, [1200H]
解:物理地址=DS×16+1200H=20000H+1200H=21200H,所以AX=4C2AH
(5) MOV AX, [BX+1100H]
解:物理地址=DS×16+BX+1100H=20000H+0100H+1100H=21200H ,所以AX=4C2AH
(7) MOV AX, [BX][SI+1100H]
解:物理地址=DS×16+BX+SI+1100H=20000H+0100H+0002H+1100H=21202H ,所以AX=65B7H
(2) MOV AX, BX
解:AX=0100H
(4) MOV AX, [BX]
解:物理地址=DS×16+BX=20000H+0100H=20100H,所以AX=2412H
(6) MOV AX,[BX][SI]
解:物理地址=DS×16+BX+SI=20000H+0100H+0002H=20102H,所以AX=7856H
2.指出下列指令错误
(1) MOV CX, DL
答:数据类型不匹配,CX是16位,DL是8位。
(2) MOV IP, AX
答:指令指针不能直接修改。
(3) MOV ES, 1234H
答:段地址寄存器不能直接置数。
(4) MOV ES, DS
答:段地址DS不能做源操作数。
(5) MOV AL, 300
答:300大于255,AL是8位的,最多只能存255
(6) MOV [SP], AX
答:SP不能做间接寻址寄存器。
(7) MOV AX , BX+DI
答:基址变址寻址必须打[]。
(8) MOV 20H, AH
答:立即数不能做目的地址单元。
3.已知数字0~9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、
12H、14H,它存放在于以TABEL为首地址(设为200H)的连续区域中。对如下程序段的
每条指令加上注释,说明每条指令的功能和执行结果。
LEA BX,TABLE ;取表的首地址送BX,执行后(BX)=200H
MOV AL,8 ;立即数8送AL,执行后,(AL)=8
XLAT ;查表,将表首地址+8((BX)+(AL))所对应单元内容送AL,
;执行后,(AL)=12H(8所对应的格雷码)
3
4.什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令?
答:堆栈是在内存中开的一个特殊的数据区,堆顶有堆栈指针SP与SS共同决定。
原则是:先进后出,
两个操作:入栈、出栈,对应指令:PUSH(入栈)、POP(出栈)。
5.已知SS=FFA0H,SP=00B0H,画图说明执行下列指令序列时,堆栈区和SP的内容如何
变化?
MOV AX , 8075H
PUSH AX
MOV AX , 0F79H
PUSH AX
POP BX
POP [BX]
FFA0:00AE SP→
FFA0:00AF
FFA0:00B0
FFA0:0000
57H
80H
xx
...
FFA0:00AC SP→
FFA0:00AD
FFA0:00AE
FFA0:00AF
FFA0:00B0
FFA0:0000
79H
0FH
57H
80H
xx
...
执行完
MOV AX , 8075H
PUSH AX 指令后
SP=00AEH
再执行完
MOV AX , OF79H
PUSH AX 指令后
SP=00ACH
FFA0:00AE SP→
FFA0:00AF
FFA0:00B0
FFA0:0000
再执行完
POP BX指令后
SP=00AFH
79H
0FH
57H
80H
xx
...
FFA0:00AE
FFA0:00AF
FFA0:00B0 SP→
FFA0:0000
79H
0FH
57H
80H
xx
...
再执行完
POP [BX] 指令后
SP=00B0H
解:
8.请分别用一条汇编语言指令完成如下功能:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
4
解:ADD DX, BX
(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,
并把结果送AL中。
解:ADD AL, [BX+SI] 或ADD AL, [BX][SI]
(3)用寄存器BX和02BH的寄存器相对寻址方式,把存储器的一个字和CX寄存器的内
容相加,并把结果送回存储器中。
解:ADD [BX+02BH] ,CX 或ADD 02BH [BX] ,CX
(4)把数0A0H与AL寄存器内容相加,并把结果送AL中。
解:ADD AL, 0A0H
10.指出下列指令错误
(1) XCHG [SI], 30H
答:立即数不能作为单元地址来保存数据,所以交换指令中的两个操作数必须是地址操作
数。
(2) POP CS
答:CS不能作为寻址寄存器使用
(3)SUB [SI], [DI]
答:算术运算指令中的两个操作数不能同时都在内存中
(4)PUSH AH
答:PUSH指令中的操作数必须是16位操作数,AH是8位
(5)ADC AX, DS
答:DS不能做源操作数,
(6)OUT DX, AH
答:只能使用AL(当端口数据位是8位)或AX(端口数据位是16位)与端口交换数据
(7)IN AL 3FCH
答:端口地址大于255时,必须有DX寄存器间接寻址。
20.假设DS=2000H,BX=1256H,SI=528FH,位移量TABLE=20A1H,[232F7H]=3280H,
[264E5H]=2450H,试问执行下列段内间接转移指令后,转移的目的地址是什么?
(1) JMP BX
(2) JMP TABLE[BX]
(3) JMP [BX][SI]
解:(1)JMP BX,目标地址的偏移量在BX中,所以转移的目的地址是CS:1256H(也可以
直接写成有效地址IP=1256H)。
(2) JMP TABLE[BX],目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)
+ TABLE中,所对应的物理地址=DS×16+(BX)+TABLE=20000H+1256H+20A1H=232F7H,该单元
存放的内容为3280H,所以JMP TABLE[BX] 转移的目的地址是CS:3280H(也可以直接写成
有效地址IP=3280H)
(3)JMP [BX][SI] 目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)+ (SI)
中,所对应的物理地址=DS×16+(BX)+(SI)=20000H+1256H+528FH=264E5H,该单元存放的内
容为4500H,所以JMP TABLE[BX] 转移的目的地址是CS:4500H(可以直接写成有效地址
IP=4500H)。
23.假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转
5
移指令实现以下判断:
(1)若DX>DI,转到ABOVE执行;
(2)若AX>SI,转到GREATER执行;
(3)若CX=0,转到ZERO执行;
(4)若AX-SI产生溢出,转到OVERFLOW执行;
(5)若SI≤AX,转到LESS_EQ执行;
(6)若DI≤DX,转到BELOW_EQ执行。
解:(1)CMP DX,DI
JA ABOVE
(2)CMP AX,SI
JG GREATER
(3)CMP CX,0
JE ZERO
(4)CMP AX,SI
JO OVERFLOW
(5) CMP SI,AX
JLE LESS_EQ
(6) CMP DI,DX
JBE BELOW_EQ
选做题
14题(P107).已知数据段500H~600H中存放了一字符串,说明下列程序段执行后
的结果。
MOV SI, 600H
MOV DI, 601H
MOV AX, DS
MOV ES, AX
MOV CX, 256
STD
REP MOVSB
24题(P108).有一个首地址为ARRAY的20个字的数组,说明下列程序的功能。
MOV CX, 20
MOV AX, 0
MOV SI, AX
SUM_LOOP: ADD AX, ARRAY[SI]
ADD SI, 2
LOOP SUM_LOOP
MOVE TOTAL, AX
25题(P109).按照下列要求,编写相应的程序段:
⑴起始地址为STRING的主存单元中存放有一个字符串(长度大于6),把该字符
串的第一和第六字符(字节变量)传送给DX,
解:
MOV SI, 0
6
MOV DL , STRING[SI]
MOV DH , STRING[SI+5]
⑵从主存BUFFER开始的4个字节中保存了4个非压缩的BCD码,现按低(高)
地址对低(高)位的原则将它们合并到DX中
解:
MOV SI, 0
MOV AL , BUFFER[SI]
AND AL, 0FH
MOV AH , BUFFER[SI+1]
AND AH, 0FH
MOV CL, 4
SHL AH, CL
ADD AL,AH
MOV DL,AL
MOV AL , BUFFER[SI+2]
AND AL, 0FH
MOV AH , BUFFER[SI+3]
AND AH, 0FH
MOV CL, 4
SHL AH, CL
ADD AL,AH
MOV DH,AL
⑶编写一个程序段,在DX 高4位全为0时,使AX=0;否则使AX=-1
解:
AND DX, 0F000H
JZ ZERO
MOV AX 0FFFFH;[-1]补码=FFFFH
JMP JEND
ZERO: MOV AX,0
JEND: HALT
26题(P109).按下述要求,分别给出3种方法,每种方法只用一条指令。
⑴使CF=0
解:
方法一:CLC
方法二:ADD AL, 0
方法三:SUB AL, 0
②使AX=0
解:
方法一:MOV AX, 0000H
方法二:AND AX, 0000H
方法三:SUB AX, AX
7
③同时使AX=0和CF=0
解:
方法一:SUB AX, AX
方法二:AND AX, 0000H
方法三:XOR AX, AX
8
习题3(教材P182)
1.伪指令语句与硬指令语句的本质区别是什么?伪指令语句有什么主要作用?
答:区别:伪指令语句是汇编程序可以识别和解释语句(CPU不能直接执行),
硬指令语句是CPU可以执行的语句。
伪指令语句主要作用是为汇编程序提供解释说明,它仅仅是在汇编过程中告
诉汇编程序如果进行汇编。
2.什么是标识符?汇编程序中标识符怎样组成?
答:是用户自己定义的符号名。在汇编程序中标识符有两种:标号标识符,用
在指令语句中,后面跟冒号,表示程序入口的逻辑地址。符号(或名字)标识
符,用在伪指令语句中,后面不跟冒号,通常是定义一个变量,或说明变量类
型。标识符一般不超31个字符,数字及常规符号($、@、?等)不能打头,也
不能使用保留字。标识不区分大小写。
4.汇编语句有哪两种,每个语句有哪4部分组成?
答:指令语句(又称执行语句)和伪指令语句(又称说明性语句)。指令语句4
部分包括,①标号:、②硬指令助记符、③操作数、④;注释。伪指令语句4部
分包括,①符号名、②伪指令助记符、③参数、④;注释。
5.汇编程序开发有哪4个步骤?分别利用什么程序完成,产生什么输出文件?
答:①编辑。使用文本编辑器。产生汇编源程序文件: 文件名.ASM。源文件是
文本文件。
②汇编。使用汇编程序,如MASM或ML,排除程序中的语法错误。产生目标
文件:文件名.OBJ。目标文件是二进制文件,是不能执行的文件。
③连接。使用LINK。产生可执行文件:文件名.EXE.
④调试。使用DEBUG。本身不产生文件,是对连接产生的可执行进行调试,
排除程序中的算法错误,保证可执行文件的正确性。
7.假设MYWORD是一个字变量,MYBYTE1和MYBYTE2是两个字节变量,指出下列语
句中的错误原因。
(1) MOV BYTE PTR[BX], 1000
答:数据类型不匹配,目的地址单元是字节单元,1000大于255。无法存放。
(2) MOV BX, OFFSET[SI]
答:OFFSET后只能跟标识符。
(3) CMP MYBYTE1, MYBYTE2
答:CMP的两个操作数不能同时在存储器中。
(4) MOV AL, MYBYTE1+MYBYTE2
答:运算符只能对常数进行操作,不能对变量进行操作。
(5) SUB AL, MYWORD
答:数据类型不匹配,AL是8位的,MYWORD是16位变量。
(6) JNZ MYWORD
答:MYWORD是变量,其指的单元中存放的是操作数,不能用做跳转入口。
8.OPRL是个常数,请问下列语句中两个AND操作有什么不同?
9
AND AL, OPRL AND 0FEH
答:第一个AND是指令语句,在程序运行时才执行,第二个AND是逻辑运算符,
是在汇编时就对两个常量完成的关系运算。
选做题
22题(P184).编写程序完成两个已知双精度(4B)A和B相加,并将结果存入双
精度变量单元SUM中(不考虑溢出)
A DD ?
B DD ?
SUM DD?
MOV AX, WORD PTR A
ADD AX, WORD PTR B
MOV WORD PTR SUM AX
MOV AX, WORD PTR A+2
ADDC AX, WORD PTR B+2
MOV WORD PTR SUM+2 AX
22题(P184).编写程序完成12H,45H,0F3H 6AF,20H,0FEH,90H,0C8H,57H和34H
共10字节数据之和,并将结果存入字节变量SUM中(不考虑溢出)。
DAT1 DB 12H,45H,0F3H6AF,20H,0FEH, 90H, 0C8H, 57H,34H
MOV CX, 10
MOV AL, 0
LEA SI ,DAT1
SUM_LOOP: ADD AL, [SI]
INC SI
LOOP SUM_LOOP
MOVE SUM, AL
25题(P185).编写一个程序段,将AX寄存器中的16位数连续4位分成一组,共
4组,然后把这4组数分别放在AL、BL、CL和DL中。
MOV BX, AX
AND AL, 0FH
MOV CL, 4
SHR BL, CL
AND BL, 0FH
MOV DL, AH
SHR DL, CL
AND DL, 0FH
MOV CL, AH
AND CL, 0FH
27题(P185).已知用于LED数码显示的代码表位为:LEDTABLE DB 0C0H,0FCH,0A4H,
0B0H,99H,92H,82H,0F8H,80H,90H,88H,
10
83H,0CCH,0C1H,86H,8EH
它依次表示0~9,A~F这16个数码的显示代码。现编写一个程序实现将LEDNUM
中的一个数字(0~9,A~F)转换成对应的LED显示码。
LEA BX LEDTABLE
MOV AL, LEDNUM
XLAT
26题(P185).编写一个程序,把从键盘输入的一个小写字母转换成大写字母显示
出来
MOV AH, 08H; 不带显示的键盘输入(字符以ASCII码存AL中)
INT 21H
AND AL, 1101 1111
MOV DL, AL;将要显示字符的ASCII码DL
MOV AH, 02H ;调显示
INT 21H
32题(P185).不用串操作指令,求主存0040H:0开始的一个64KB物理段中共有
多少空格?编写程序实现。
MOV AX,0040H
MOV DS, AX
MOV SI, 0
MOV CX,0
MOV DX,0
L0: MOV AL,[SI]
INC SI
CMP AL,20H ; 20H空格的ASCII码
JNZ L1
INC DX
L1: LOOP L0
HLT
11
习题4(教材
P280)
15.8255A有哪几种工作方式,对这些工作方式有什么规定?
答:8255A有三种工作方式。分别是方式0(基本的输入输出方式);方式1(选通的
输入输出方式);方式2(双向传输方式)。
方式0:不需要应答联络信号。A、B、C口都可以工作在方式0。
方式1:选通的输入输出方式,只有A、B端口可以工作在方式1,C端口作为A、B端口
的应答信号。而且是单向的,作为输入端口,就不能做输出端口,作为输出端口就不能做
输入端口。
方式2:双向传输方式,只有A端口可以工作在方式2,C端口做为A端口输入输出时的
应答信号,可以工作在输入,也可以工作在输出。
16.假设8255A端口地址为00C0~00C6H,要求:
(1)对8255A设置工作方式,A端口工作在方式1,输入;B端口工作在方式0,输出;
端口C的4为配合端口A工作,端口C的低4为方式0,输入。
(2)用置0∕置1,直接对PC6置1,对PC4置0
答:端口地址0000 0000 1100 0000 ~0000 0000 1100 0110。说明A口地址为00C0H,B
口地址为00C2H,C口地址为00C4H,控制字地址为00C6H。
(1)控制字为:1011X001B,即0B1H(X取0)
MOV AL,0B1H
MOV DX,00C6H
OUT DX,AL
(2)直接对PC6置1时的控制字为:0XXX1101B,即0DH
MOV AL,0DH
MOV DX,00C6H
OUT DX,AL
直接对PC4置0时的控制字为:0XXX1000B,即08H
MOV AL,08H
MOV DX,00C6H
OUT DX,AL
17.使用8255A作为开关和LED指示灯的接口。要求8255A的A口连接8个开关,B口连
接8个LED(发光二极管),用作指示灯,将A口的开关状态读入,然后送至B口控制指
示灯亮、灭。试画出接口电路设计图,并编写程序实现。
解:根据要求,设计电路如图所示。用PA7引脚上的开关控制PB7上的LED,PA0
引脚上的开关控制PB0上的LED。开关闭合输入低电平,开关打开输入高电平。高电平指
示灯亮。A端口地址为8000H,B端口地址为8001H ,C端口地址为8002H ,控制字寄
存器地址为8003H(假设未使用的地址线都取0)。
控制字:10010000B(C口工作在输出),即90H
参考程序:
MOV AL, 90H
MOV DX, 8003H
OUT DX, AL
LOOP: MOV DX, 8000H
IN AL, DX
MOV DX, 8001H
12
OUT DX, AL
JMP LOOP
+5V
D0~D7
PA7
8255A
WR
RD
WR
RD
A0
A1
CS
PB0
PB7
驱
A0
A1
A15
动
电
路
3.若8253芯片的接口地址为D0D0H~D0D3H,时钟信号为2MHz,现利用计数器0、1、2
分别产生周期为10us的方波,每隔1ms和10ms(1s)产生一个负脉冲,试画出系统的连线图。
并写出初始化程序。
-66
解:定时器0的计数初值=10×10×2×10=20,工作在方式3。控制字:00010111(17H)
-36
定时器1的计数初值=1×10×2×10=2000,工作在方式2。控制字:01110101(75H)
-36
定时器2的计数初值=10×10×2×10=20000=4E20H,工作在方式2。控制字:10110100
(B4H)。
6
注意:1s定时器2的计数初值=2×10=2000000(超过16位计数器计数范围65536,采样2
级计数,有计数1的输出OUT1作为计数器2的CLK2的计数脉冲。所以计数器2的计数常
数1000
初始化程序:
MOV AL,17H
MOV DX, 0D0D3H
OUT DX, AL
MOV AL,20
MOV DX, 0D0D0H
OUT DX, AL
MOV AL,75H
MOV DX, 0D0D3H
OUT DX, AL
MOV AX,00H
MOV DX, 0D0D1H
OUT DX, AL ;先送计数值低位
MOV AL,20H
OUT DX, AL ;再送计数值高位
MOV AL,0B4H
13
MOV DX, 0D0D3H
OUT DX, AL
MOV AX,1000
MOV DX, 0D0D2H
OUT DX, AL ;先送计数值低位
MOV AL,AH
OUT DX, AL ;再送计数值高位
A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
RD
WR
D
7
~D
0
4.某计算机系统采用8253的计数0作为频率发生器,输出频率500Hz,利用计数器1产生
1000Hz的方波,输入的时钟频率为1.19MHz。请问计数器0和计数器1工作在什么方式下?
计数初值分别是多少?
解:计数器0工作方式2,计数器1工作方式3下。
6
计数0初值=1.19×10÷500=2380
6
计数2初值=1.19×10÷1000=1190
5.利用8254的通道1,产生500Hz的方波信号。设输入时钟的频率CLK1=2.5MHz,端口
地址为FFA0H~FFA3H,试编制初始化程序。
解:计数器1工作方式3下。
6
计数1初值=2.5×10÷500=5000
控制字:01110111(77H)
初始化程序:
MOV AL,77H
MOV DX, 0FFA3H
OUT DX, AL
MOV AL,00H
MOV DX, 0FFA1H
OUT DX, AL ;先送计数值低位
14
74LS138
G
1
G
2A
Y4
G
2B
8253
CS
OUT
0
CLK
0
GATE
0
OUT
1
CLK
1
GATE
1
A
1
A
0
RD
WR
OUT
2
CLK
2
GATE
2
C
B
A
MOV AL,50H
OUT DX, AL ;再送计数值高位
6.某系统使用5254的通道0作为计数器,计满1000,向CPU发中断请求,试编写初始化
程序(端口地址自设)。
解:计数器0工作方式0下。(假设端口地址为FFA0H~FFA3H)
计数0初值=1000
控制字:00110001(31H)
初始化程序:
MOV AL,31H
MOV DX, 0FFA3H
OUT DX, AL
MOV AL,00H
MOV DX, 0FFA0H
OUT DX, AL ;先送计数值低位
MOV AL,10H
OUT DX, AL ;再送计数值高位
15
习题5(教材P208)
3.8259A的初始化命令字有哪些?各自如何定义?如何解决地址问题。
答:有4个。分别为ICW1、ICW2、ICW3、ICW4。
各自定义参考教材。
首先在偶地址(A0=0)送ICW1(D4=1),然后在奇地址(A0=1)根据顺序分别送ICW2→ICW3
→ICW4。其中ICW2必须送,单片不需要送ICW3,是否送ICW4有ICW1中的D0位是否
为1决定。D0=1送ICW4,并且8086系统必须送ICW4。
4.假设8259A的端口地址为92H、93H,如何用它的命令字来禁止IR3和IR5引脚上的请
求,又如何撤销这一禁止命令?
解:运用操作命令字OCW1来完成,该操作命令字是奇地址93H
IN AL 93H
OR AL,00101000
OUT 93H,AL
撤销:
IN AL 93H
AND AL,11010111
OUT 93H,AL
5.假设8259A的端口地址为92H、93H,按照如下要求对8259A设置初始化命令字,系统
中只有一片8259A,中断请求信号采用电平触发,中断类型码为60H~67H,用特殊嵌套,
不用缓冲方式,采用中断自动结束方式。
解:ICW1:00011011(1BH;一片8259A,中断请求信号采用电平触发,设置ICW4)
ICW2:60H(中断类型码60 H~67H)
单片不需要ICW3
ICW4:00010111(17H;用特殊嵌套,不用缓冲方式,采用中断自动结束方式)
MOV AL, 1BH
OUT 92H,AL
MOV AL, 60H
OUT 93H,AL
MOV AL, 17H
OUT 93H,AL
P352
2.A/D和D/A转换器在微机控制系统中起什么作用?
答:A/D负责将输入的模拟信号转换成数字信号供计算机处理。
D/A:负责将计算机处理完的数字信号转换为模拟信号去控制外部设备。
16
发布者:admin,转转请注明出处:http://www.yc00.com/web/1717086287a2733675.html
评论列表(0条)