《微机原理及接口技术》典型习题参考答案Word下载.docx
《《微机原理及接口技术》典型习题参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《《微机原理及接口技术》典型习题参考答案Word下载.docx(26页珍藏版)》请在冰点文库上搜索。
64
外部地址线条数
20
24
36
存储器空间
1MB
16MB
4GB
64GB
寻址范围
0~FFFFFH
0-FFFFFH
0-FFFFFFH
0~
FFFFFFFFH
0~FFFF
FFFFFH
有符号数
表示范围
-215~215-1
-231~231-1
注:
数的表示范围仅与内部通用寄存器的位数(字长)有关,与外部数据线条数无关。
相同颜色,表示之间有决定关系
2.46
(1)G=0段界以字节为单位,地址范围:
089C0000H~089C003FH
大小为3FH+1=40H=64,可容纳64/2=32个汉字
(2)G=1段大小=(界+1)*4K=40H*4K=40000H
段的最后一页起始地址=089C0000H+40000H=089A0000H,一页有4KB大小,因此
段的末地址=089A0000H+FFFH=089A0FFFH
书上P.64个末地址小加了FFFH(一页的界),结果为0048FFFFH(不是48F000H)
2.48
(1)DS*16+EAX=20000H+00003000H=00023000H
(2)DS*16+ESI=1A000H+00002000H=0001C000H
(3)SS*16+ESP=C0000H+0000A000H=000CA000H
(4)DS*16+EDI=12390H+0000A000H=0001C390H
2.49
(1)访问权=11110010B=F2H,段基地址=03000000H,段界=末地址-首地址=1FFFH<
10000H
所以G=0,D=1,AVL=1,段描述符=0350F20000001FFFH
(2)访问权=11110010B=F2H,段基地址=01000000H,段界=末地址-首地址=01800FFF>
10000H,所以G=1,D=1,AVL=1,段界=大小/4K=1800H=1800H
段描述符=01D0F20000001800H
2.51
(1)DS=0000000000001011B选中(TI=0)GDT表
GDTR=001000001FFFH,GDT首地址=00100000H,段描述符界=1FFFH,可容纳8KB,因此可放8KB/8=1K个描述符。
(2)段描述符首地址=00100000H+1*8=00100008H,段描述符=0240F210000003FFH
段首地址=02100000H,段界=03FFH,所以末地址=021003FFH
段的地址范围:
02100000H~021003FFH
(3)物理地址=段基地址+偏移地址=02100000H+00000002H=02100002H
(4)EAX中的内容为02100002开始的4个字节,故EAX=32303031H
(5)可从段描述符的应该说访问权字节及选择子分析:
RPL=11,访问权=F2H=11110010B,该段是用户访问的存在物理存储器中的未被访问过的向上增长的可写数据段。
2.52
(1)CR0=60000010H,PG=0,PE=0为实地址方式,所以:
物理地址=10030H+1230H=11260H,EAX=75392A00H
(2)CR0=60000011H,PG=0,PE=1分段的保护方式,所以:
段描述符首地址=0+1000H=00001000H,段描述符=0040F20100001FFFH
段基地址=00010000H,物理地址=00010000H+1230H=00011230H
EAX=32303034H
段大小=段界+1=1FFFH+1=2000H,可容纳8KB数据,访问权=F2=11110010H,该段是存在物理存储器中的未被访问过的向上增长的可写数据段。
(3)CR0=E0000011H,PG=1,PE=1分段且分页的保护方式,但线性地址已经给出:
线性地址=00000004H,页目录索引=0页索引=0
CR3=00001000H,页目录描述符首地址=00010000H,页描述符=00001FFFH
所以页表基地址=00001000H,页描述符首地址=00010000H,页描述符=00001FFFH
所以页基地址=00001000H,物理地址=00010000H+4H=00010004H
第5章
5.4SRAM引脚考虑
(1)数据线条数
(2)地址线条数(3)读信号和写控制信号、片选信号条数(4)电源,地线
8K*8表明,地址线条数=log28K=log2213=13条,数据线8条,读写信号线1条,片选项1条,电源和地2条,共计25条,但为了成对,因此至少26条引脚。
5.108K*8=213*8,ROM首地址=末地址-大小+1=5800H-8K+1=5800H-1FFFH=3801H
16KB=214*8,末地址=RAM首地址+大小-1=5801H-3FFFH=9800H
5.12由图知,地址线m=16,数据线=8条,容量=2m*n=216*8=64KB(实际为27512)
5.14需要8K*8/(2K*4)=8片,2片一组进行位扩展,然后对4组进行字扩展,即采用字位全扩展方法。
地址范围:
(I):
Y0=0:
A13A12=00,A11~A1从全0到全1变化,但A0=0,所以范围:
0000H~0FFEH(全为偶地址),共2KB
(II):
A13A12=00,A11~A1从全0到全1变化,但A0=1,所以范围:
0001H~0FFFH(全为奇地址),共2KB
(III):
Y1=0:
A13A12=01,A11~A1从全0到全1变化,但A0=0,所以范围:
1000H~1FFEH(全为偶地址),共2KB
(IV):
1001H~1FFFH(全为奇地址),共2KB
5.17题图改动:
M/IO加一非门后再接G2B。
(1)地址:
1#(Y0=0)A19A18A17A16A15=10000,A14~A0全0到全1变化
所以以范围:
80000H~87FFFH
2#(Y1=0)A19A18A17A16A15=10001,A14~A0全0到全1变化
88000H~8FFFFH
3#(Y2=0)A19A18A17A16A15=10010,A14~A0全0到全1变化
90000H~97FFFH
4#(Y3=0)A19A18A17A16A15=10011,A14~A0全0到全1变化
98000H~9FFFFH
5#(Y4=0)A19A18A17A16A15=10011,A14~A0全0到全1变化
6#(Y5=0)A19A18A17A16A15=10101,A14~A0全0到全1变化
A8000H~AFFFFH
7#(Y6=0)A19A18A17A16A15=10110,A14~A0全0到全1变化
B0000H~B7FFFH
(2)MOVAX,9800H;
4#首地址98000H,取段地址9800H偏移地址0
MOVDS,AX
MOVSI,0
MOVCX,1024*2;
2KB
MOVAX,0B000H;
7#首地址0B0000H,取段地址B000H,偏移地址0
MOVES,AX
MOVDI,0
CLD;
DF=0
REPMOVSB;
串操作
或MOVAX,9800H;
LP1:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
LOOPLP1
第6章
6.2
(a)A9A8A7A6A5A4A3A2A1A0=0001111111=7FH
(b)A9A8A7A6A5A4A3A2A1A0=1001010XXX所以地址:
250H~257H
6.6
MOVAL,80H;
设置波特率
MOVDX,373H;
A1A0=11的地址(线路控制寄存器)
OUTDX,AL
MOVAL,30;
1843200/(38400*16)除数
MOVDX,370H
OUTDX,AL;
写除数低字节
MOVAL,0
INCDX
写除数高字节
MOVAL,00010010B
MOVDX,3F3H
6.7MOVAL,80H
MOVDX,3FBH
OUTDX,AL
MOVAL,10H;
波特率7200的除数值=10H
MOVDX,3F8H
MOVAL,0
MOVAL,00000011B
SEND:
MOVDI,OFFSETTRANS
MOVCX,WORDPTRTLENGTH+4
MOVSI,OFFSETTRANS-2
MOVBYTEPTR[DI-2],55H
MOVBYTEPTR[DI-1],0AAH
MOVAX,DI
ADDAX,WORDPTRTLENGTH
MOVDI,AX
MOVBYTEPTR[DI+1],0AAH
MOVBYTEPTR[DI+2],55H
SWAIT:
MOVDX,3FBH
INAL,DX;
取线路状态
TESTAL,00100000B;
THRE发送保持寄存器空=1
JZSWAIT;
不空等待
MOVAL,[SI];
取数据
MOVDX,3F8H
OUTDX,AL;
发送
LOOPSWAIT
MOVDI,OFFSETRECIV
MOVCX,WORDPTRRLENGTH
MOVBL,0;
计接收数据个数
RECEIVE:
MOVDX,3FBH
INAL,DX;
取线路状态参数,判断接收有数据否
TESTAL,80H;
超时退出
JNZEXITP
TESTAL,01H;
接收数据继续
JZRECEIVE;
串口无数据等待
INAL,DX
INCBL;
接收一个数据,计数器加1
LOOPRWAIT
EXITP:
MOVAL,CL
CMPAL,BL
JNZERR_DEL
MOVERROR,0FFH
JMPRET1
ERR_DEL:
MOVERROR,0
RET1:
NOP
.EXIT
6.9
(1)MOVAL,10011010B
OUT63,AL
(2)MOVAL,11000100B
(3)MOVAL,10100100B
6.10
(1)MOVAL,10011000B
MOVDX,0FEFFH;
控制口
(2)MOVDX,0FEFEH;
C口
WAITL:
INAL,DX;
Ready
MOVDX,0FEFCH;
A口
INAL,DX
PC5
JZWAITL;
未准备好等待
INAL,DX;
读输入设备数据
MOVES:
[DI],AL;
写入指定内存单元
(3)MOVDX,0FEFEH;
C口
WAITP:
INAL,DX
TESTAL,01000000B;
PC6(BUSY)
JNZWAITP
MOVAL,DS[SI]
MOVDX,0FEFDH;
B口
数据输出
(4)START:
MOVDX,0FEFEH
INAL,DX
TESTAL,80H;
判断PC7
JNZBEEP
MOVDX,0FEFFH
MOVAL,0;
PC0=0置复位命令字
OUTDX,AL;
取消报警
JMPSTART
BEEP:
MOVDX,0FEFFH
MOVAL,1;
PC0=1
报警
MOVSI,OFFSETSTRINGS
MOVCX,18;
18个字符
WAITB:
MOVDX,0FEFFH
INAL,DX
TESTAL,01000000B;
BUSY=1?
JNZWAITB
MOVAL,[SI]
MOVDX,OFEFDH;
OUTDX,AL
INCSI
LOOPWAITB
STRINGSDB‘Grasptheburglar!
’
6.11MOVAL,1000100B
OUT0F3H,AL;
方式选择控制字
MOVSI,OFFSETPDATA
MOVCX,PNUM
MOVAL,00000010B;
PC1=0置复位命令字
OUTDX,AL
REPEAT:
MOVAL,[SI];
MOVBL,AL;
暂存BL
ANDAL,0F0H;
取高4位
PUSHCX
MOVCL,4
SHRAL,CL
ADDAL,30H;
转换成ASCII码
POPCX
CALLSUBP
MOVAL,BL;
取回原来的数据
ANDAL,0FH;
取低4位
CALLSUBP
INCSI;
指向下一个单元
LOOPREPEAT
.EXIT
;
打印一个字符的子程序
SUBPPROCNEAR
MOVDX,0F1H;
B口地址
OUTDX,AL;
待打印字符(ASCII码)送B口(打印机端口)
INCDX
WAITP:
判BUSY=PC5
TESTAL,00100000B;
BUSY=PC5
JNZWAITP
MOVDX,0F3H
MOVAL,00000011B
OUTDX,AL;
PC1=1命令(/STB=1)
NOP
DECAL
PC1=0命令(/STB=0)
RET
SUBPENDP
6.12.MODELSMALL
.CODE
.STARTUP
MOVAL,00110110B;
CTC0命令字:
方波信号发生器方式
MOVDX,9F0FH;
8254控制口地址
MOVDX,9F0CH;
CTC0通道地址
MOVAX,2000;
计数常数=2MHz*1000us=2000
实际收入低8位初值
MOVAL,AH;
取高8位
写高8位初值
MOVAL01010100B;
CTC1命令字:
速率发生器方式
MOVDX,9F0DH;
CTC1通道地址
MOVAL,2;
计数常数=2(最快)
写初值
MOVAL10110010B;
CTC2命令字:
负脉冲信号发生器方式
MOVDX,9F0EH;
CTC2通道地址
MOVAL,0;
计数常数=0000(最大值)
END
6.14
(1)由地址:
280H~283H知:
(地址不重叠,即全译码,I/O端口16条地址线全部要参与译码)
A15A14A13A12A11A10A9A8A7A6A5A4A3A2=00000010100000xxB
电路如下:
(2)OUT0产生2ms定时中断信号(方波)
MOVAL,00110110B;
ctc0控制字
MOVDX,0283H
OUTDX,AL
MOVAX,20000;
初值=5MHz*(2ms*2)=5000*4=20000
;
注意:
2ms仅为负脉冲宽度,因此一个周期=4ms
MOVDX,280H;
CTC0通道
OUTDX,AL;
写低字节初值
MOVAL,AH
写高字节初值
(3)将OUT0连接到CLK1,CTC1初值=1S/4ms=1000/4=250
MOVAL,01010110B;
ctc1控制字
MOVAX,250;
初值=1S/4ms=250
MOVDX,281H;
CTC1通道
第7章
7.9
(1);
主片初始化
MOVAL,00010001B;
ICW1
OUT20H,AL
MOVAL,0FH;
中断类型号(ICW2)
OUT21H,AL
MOVAL,00000100B;
ICW3
MOVAL,00010101B;
ICW4
;
从片初始化
MOVAL,00010001B;
OUT0A0H,AL
MOVAL,71H;
OUT0A1H,AL
MOVAL,00000010B;
MOVAL,00000001B;
OUT0A1H,AL
(2)
MOVAL,00101000B;
主片OCW1
OUT21H,AL
MOVAL,00100000B;
从片OCW1
(3)MOVSI,1000
MOVDI,2000
MOVAL,0AH
OUT20H,AL;
读主片IRR命令
INAL,20H;
读IRR进AL中
MOVBL,AL;
主片IRR暂存BL
MOVDS:
[SI],AL;
主片IRR存入内存
INCSI
MOVAL,0BH
OUT20H,AL;
读主片ISR命令
读主片ISR进AL中
主片ISR存入内存
INAL,21H;
读主片IMR
主片IMR存入内存
OUT0A0H,AL;
读从片IRR命令
INAL,0A0H;
读从IRR进AL中
从片IRR暂存BH
MOVES:
[DI],AL;
从片IRR存入内存
INCDI
OUT0A0H,A