微机原理与接口技术习题答案副本Word格式文档下载.docx
《微机原理与接口技术习题答案副本Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术习题答案副本Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
3.8设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
(1)SHRDX,1;
DX=3C62HCF=1
(2)SARDX,CL;
DX=03C6HCF=0
(3)SHLDX,CL;
DX=18A0HCF=1
(4)RORDX,CL;
DX=2BC6HCF=0
(5)RCLDX,CL;
DX=18B7HCF=1
(6)RCRDH,1;
DX=BCC5HCF=0;
3.9设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。
AXCFZFOFSFPF
(1)XORAX,VALUE;
134EH00001
(2)ANDAX,VALUE;
0821H00001
(3)SUBAX,VALUE;
F142H10011
(4)CMPAX,VALUE;
0A69H10011
(5)NOTAX;
F596HXXXXX
(6)TESTAX,VALUE;
0A69H00001
3.10设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和条件转移指令。
(1)CX值超过DX转移。
(2)AX未超过BX转移。
(3)DX为0转移。
(4)CX值等于小于DX转移。
(1)CMPCX,DX
JANEXT
(2)CMPAX,BX
JLENEXT
(3)CMPDX,0
JZNEXT
(4)CMPCX,DX
JBENEXT
3.11阅11阅读分析下列指令序列:
ADDAX,BX
JNOL1
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPL5
若AX和BX的初值分别为以下5种情况,则执行该指令序列后,程序将分别转向何处(L1~L5中的一个)。
(1)AX=13C6H,BX=80DCH
(2)AX=0B568H,BX=54B7H
(3)AX=42C8H,BX=608DH
(4)AX=0D023H,BX=9FD0H
(5)AX=9FD0H,BX=0D023H
(1)转L1
(2)转L1
(3)转L2
(4)转L5
(5)转L5
第四章汇编语言程序设计习题
4.5画出下列语句中的数据在存储器中的存储情况。
VARBDB34,34H,‘GOOD’,2DUP(1,2DUP(0))
VARWDW5678H,‘CD’
VARCEQU12
22H
34H
‘G’
‘O’
‘D’
1
78H
56H
‘C’
VARB
VARW
4.6按下列要求,写出各数据定义语句。
(1)DB1为10H个重复的字节数据序列:
1,2,5个3,4。
(2)DB2为字符串‘STUDENTS’
(3)DB3为十六进制数序列:
12H,ABCDH
(4)用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。
DB1DB16DUP(1,2,5DUP(3,4))
DB2DB‘STUDENTS’
DB3DW12H,0ABCDH
COUNTEQUDB2-DB1
4.10若自STRING单元开始存放有一个字符串(以字符‘$’结束);
(1)编程统计该字符串长度(不包含$字符,并假设长度为两字节)。
(2)把字符串长度放在STRING单元,把整个字符串往下移两个单元。
程序段为:
(1)MOVSI,OFFSETSTRING
XORBX,BX
CONT:
MOVAL,[SI]
CMPAL,‘$’
JZNEXT
INCBX
INCSI
JMPCONT
NEXT:
MOVAH,4CH
INT21H
(2)STRINGDB‘………….$’
COUNTEQU$-STRING
:
MOVSI,OFFSETSTRING
MOVCX,COUNT
ADDSI,CX
CONT:
DECSI
MOVAL,[SI]
MOV[SI+2],AL]
LOOPCONT
MOVSTRING,CX
MOVAH,4CH
4.11将字符串STRING中的‘&
’字符用空格代替,字符串STRING“ThedataisFEB&
03”。
程序为:
DATASEGMENT
STRINGDB‘ThedataisFEB&
03’
COUNTEQU$-STRING
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETSTRING
MOVCX,COUNT
MOVAL,‘$’
CMPAL,[SI]
JNZNEXT
MOVBYTEPTR[SI],‘’
INCSI
LOOPCONT
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
4.16键盘输入十个学生的成绩,试编制一个程序统计69~69分,70~79分,80~89分,90~99分及100分的人数,分别存放到S6,S7,S8,S9及S10单元中。
程序为:
DATASEGMENT
BUFDB10DUP(?
)
S6DB?
S7DB?
S8DB?
S9DB?
S10DB?
DATAENDS
CODESEGMENT
ASSUMECS:
START:
MOVDS,AX
MOVSI,OFFSETS6
XORAL,AL
MOVCX,0504H
CONT:
MOV[SI],AL
INCSI
LOOPCONT
MOVCX,10
MOVSI,OFFSETBUF
CONT1:
MOVAH,1
INT21H
SHLAL,CL
MOVBL,AL
MOVAH,1
SUBAL,30H
ORAL,BL
MOV[SI],AL
CMPAL,70H
JAENEXT1
INCBYTEPTRS6
NEXT1:
CMPAL,80H
JAENEXT2
INCBYTEPTRS7
NEXT2:
CMPAL,90H
JAENEXT3
INCBYTEPTRS8
NEXT3:
CMPAL,99H
JANEXT4
INCBYTEPTRS9
JMPNEXT5
NEXT4;
INCBYTEPTRS10
NEXT5:
INCSI
LOOPCONT1
MOVAH,4CH
CODEENDS
ENDSTART
第7章基本输入/输出接口习题
7.4现有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0为1时表明输入数据准备好。
试采用查询方式,编程实现从该设备读取100个字节数据并保存到2000H:
2000H开始的内存中。
程序段为:
MOVAX,2000H
MOVDS,AX
MOVSI,2000H
MOVCX,100
MOVDX,0FFE2H
CONT1:
INAL,DX
TESTAL,01
JZCONT1
MOVDX,0FFE0H
INAL,DX
INCSI
MOVAH,4CH
INT21H
7.5硬件如图7.5所示,试编程实现:
S0控制8个发光二极管1亮7暗,S1控制8个8个发光二极管7亮1暗,S2控制某一亮点(或暗点)以一定时间间隔循环向左移动,S3控制某一亮点(或暗点)以一定时间间隔循环向右移动,两个或两个以上开关闭合,则结束程序。
(省略伪指令)
BUF1DB01H
BUF2DB80H
…
MOVDX,200H
AGAIN:
XORBL,BL
MOVCX,8
RORAL,1
JNCNEXT
INCBL
CMPBL,2
JAEEXIT
CMPAL,0FEH
JZ1L7A
CMPAL,0FD
JZ1A7L
CMPAL,0FBH
JZZSHL
CMPAL,0F7H
JZYSHR
1L7A:
MOVAL,80H
OUTDX,AL
JMPAGAIN
7A7L:
MOVAL,7F
ZSHL:
MOVAL,BUF1
ROLAL,1
MOVBUF1,AL
CALLD500MS
YSHR:
MOVAL,BUF2
RORAL,1
EXIT:
MOVAH,4CH
第8章中断习题
8.2已知中断向量表表中地址0020H~0023H的单元中依次是40H,00H,00H,01H,
并知INT08H指令本身所在的地址为9000H:
00A0H。
若SP=0100H,SS=0300H,标志寄存器内容为0240H,试指出在执行INT08H指令,刚进入它的中断服务程序时,SP,SS,IP,CS和堆栈顶上三个字的内容(用图表示)。
执行后SS=0300HSP=00FAH
CS=0100HIP=0040H,堆栈顶上三个字的内容如下所示:
栈区
A2H
00H
90H
40H
02H
XX
00FAH
00FCH
执行后:
0300H:
00FEH
初始:
0300H:
01000H
8.3某一用户中断源的中断类型号为40H,其中断服务程序名为INTR40,请用两种不同的方法设置它的中断向量。
方法一:
MOVAX,0
MOVDS,AX
MOVAX,OFFSETINTR40
MOV[00C0H],AX
MOVAX,SEGINTR40
MOV[00C2H],AX
方法二:
MOVES,AX
MOVDI,40H*4
CLD
MOVAX,OFFSETINTR40
STOSW
MOVAX,SEGINTR40
8.5某一8086CPU系统中,采用一片8259A进行中断管理。
设8259A工作在全嵌套方式,发送EIO命令结束中断,边沿触发方式,IR0对应的中断向量号为90H,8259A在系统中的端口地址为FFDCH(A0=0)和FFDDH(A0=1),试编写8259A的初始化程序段。
初试化程序段为:
MOVDX,0FFDCH
MOVAL,13H
OUTDX,AL
INCDX
MOVAL,90H
OUTDX,AL
MOVAL,01
第9章可编程接口芯片及应用习题
9.1试按如下要求分别编写初始化程序,已知计数器0~2和控制字寄存器的端口地址依次为204H~207H。
(1)使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。
(2)使计数器0工作在方式1,按BCD码计数,计数值为3000。
(3)使计数器2工作在方式2,按二进制计数,计数值为02F0H。
初始化程序为:
MOVDX,207H
MOVAL,50H
OUTDX,AL
MOVDX,205H
MOVAL,80H
MOVAL,23H
MOVDX,204H
MOVAL,30H
MOVAL,0B4H
MOVDX,206H
MOVAL,0F0H
MOVAL,02
OUTDX,AL
9.2硬件如题9.2图,利用PC内部8253定时器0,并用中断方式实现每隔1s使发光二极管亮暗交替显示。
(PC内部8253输入时钟频率为1.1932MHz,8253定时器0端口地址为40H,控制寄存器端口地址为43H。
Y0为350H)。
定时器计数值=1.1932MHz÷
5=32864=83D5H
软件计数值:
50
程序为:
(硬件图见教材P345题9.2图)
MOVAL,34H
OUT43H,AL
MOVAL,0D5H
OUT40H,AL
MOVAL,83H
MOVBL,50
┇
T0中断服务程序为:
DECBL
JNZEXIT1
MOVAL,BUF
NOTAL
MOVBUF,AL
MOVDX,350H
EXIT1:
MOVAL,20H
OUT20H,AL;
(设8259A的端口地址为20H,21H)
IRET
9.3硬件如题9.3图,8253采用方式0,BCD码计数方式,初始值为1000,每按一次按钮S,计数器值减1。
试编程实现显示8253当前计数值,直至计数值为0。
8253端口地址范围为80H~83H。
(略。
在何处显示---屏幕/LED/液晶?
9.4图9.4为一简化的键盘/数码管显示接口电路,假设端口线a’~h’及1、2脚送“1”电平,可使显示点亮并能实现扫描,试问U1、U2及数码显示器的选用。
(1)U1为(同相驱动器/反相驱动器)。
(2)U2为(同相驱动器/反相驱动器)。
(3)数码显示器为(共阴/共阳)数码管。
(4)若A键闭合,则端口线3,4的电平为。
图9.4见教材P346
(1)选用同相驱动器
(2)选用反相驱动器
(3)选用共阴数码管
(4)若A键闭合,则端口线3,4的电平为0,1
9.5硬件如题9.5图,试编程实现循环检测S0、S1,当S0按下,数码管显示0,当S1按下,数码管显示1,S0、S1同时按下,则结束程序。
8255的端口地址范围为80H83H。
MOVAL,82H
OUT83H,AL
INAL,81H
TESTAL,03
JZEXIT
TESTAL,01
JZNEXT
MOVAL,3FH
OUT80H,AL
JMPAGAIN
NEXT:
TESTAL,02
JZNEXT1
MOVAL,06
NEXT1:
MOVAL,00
OUT80H,AL
MOVAH,4CH
第10章串行通信习题
10.6设异步传输时,每个字符对应一个起始位,7个信息位,1个奇偶校验位和一个停止位,如果波特率为9600,每秒能传输的最大字符数为多少个?
字符数=9600位/秒÷
10位/字符=960(字符/秒)
10.13要求8251A工作于异步方式,波特率系数为16,字符长度为7位,奇校验,2个停止位。
工作状态要求:
复位出错标志,使请求发送信号RTS有效,使数据终端准备好信号DTR有效,发送允许TxEN有效,接受允许RxE有效。
设8251A的两个端口地址分别为0C0H和0C2H,试完成初始化编程。
初始化程序为:
MOVAL,11011010B(DAH)
OUT0C2H,AL
MOVAL,00110111B(37H)
第11章模数、数模转换习题
11.3某8086系统中,A/D转换器ADC0809只使用一个模拟量输入通道,试设计其接口电路,并编写子程序。
子程序的功能是启动A/D转换,并以查询方式读入一个采样数据放在寄存器DL中。
设所设计的A/D转换器接口电路如下:
采样程序为:
CYSUBRPROC
OUT50H,AL
NOP
WAIT1:
INAL,51H
TESTAL,01
JZWAIT1
INAL,50H
MOVDL,AL
RET
CYSUBRENDP
11.4某8086系统中,由ADC0809构成A/D转换器,通过8255与CPU接口,如题11.4图所示。
试编写程序,以查询的方式巡回采样8个模拟量输入通道,每个通道16次。
采样数据存放在内存中。
题11.4图
程序段为:
MOVAL,10000001B(81H)
MOVDX,0FFDBH
LOP0:
MOVDI,OFFSETBUF
MOVBL,0
LOP1:
MOVCX,16
MOVAL,BL
MOVDX,0FFD8
MOVDX,0FFCAH
MOVAL,0C0H
NOP
LPO2:
TESTAL,01
JZLOP2
DECDX
INAL,DX
MOV[DI],AL
INCDI
INCBL
CMPBL,8