《微机原理接口技术》典型习题参考答案.docx
- 文档编号:29446965
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:25
- 大小:91.26KB
《微机原理接口技术》典型习题参考答案.docx
《《微机原理接口技术》典型习题参考答案.docx》由会员分享,可在线阅读,更多相关《《微机原理接口技术》典型习题参考答案.docx(25页珍藏版)》请在冰豆网上搜索。
《微机原理接口技术》典型习题参考答案
第2章2.14,2.27,2.40,2.46,2.49,2.52
第5章5.10,5.14,5.17,
第6章6.2,6.10,6.12,6.14
第7章7.9,7.11
第10章10.4,10.5
第2章
2.9
(1)读操作占一次总线周期(4个时钟+1个时钟的等待周期)共5个时钟周期
每个时钟周期=1/4MHz=0.25us,所以共需要0.25us*5=1.25us
(2)复位至少需要4个时钟周期,4*0.25us=1us
复位后内部除CS=FFFFH外,其它寄存器清0。
第一条指令的地址FFFF0H
2.10T1:
地址锁存T2:
地址撤销,准备数据
T3:
数据稳定到总线上T4:
读写总线上的数据
2.14
(1)数据段首地址DS*16=01500H,堆栈段首地址=SS*16=02500H,所以数据段中存放信息不能与堆栈段重合,故数据段末地址=0250H-1=024FFH
即数据段范围:
01500H~024FFH,4K字节
(2)堆栈段末地址=SS*16+SP=02500H+1200H=03700H
大小为1200H字节=4608字节,可存放16位的字4608/2=2304个
(3)代码段由于下限没有其它限制,故最大64KB
首地址=06400H,末地址=06400H+64KB-1=06400H+FFFFH=163FFH
所以代码段地址范围:
06400H~163FFH
(4)11F4H。
现在SP=0300H,则原来SP+12=0300H+0CH=030CH
2.40
处理器
主要参数
8088
8086
80286
80386
80486
Pentium
PentiumPro
PentiumII
PentiumIII
Pentium4
通过寄存器位数
16
16
16
32
32
32
32
32
32
32
段寄存器位数
16
16
16
16
16
16
16
16
16
16
外部数据线条数
8
16
16
32
32
64
64
64
64
64
外部地址线条数
20
20
24
32
32
32
36
36
36
36
存储器空间
1MB
1MB
16MB
4GB
4GB
4GB
64GB
64GB
64GB
64GB
寻址范围
0~FFFFFH
0-FFFFFH
0-FFFFFFH
0~
FFFFFFFFH
0~
FFFFFFFFH
0~
FFFFFFFFH
0~FFFF
FFFFFH
0~FFFF
FFFFFH
0~FFFF
FFFFFH
0~FFFF
FFFFFH
有符号数
表示范围
-215~215-1
-215~215-1
-215~215-1
-231~231-1
-231~231-1
-231~231-1
-231~231-1
-231~231-1
-231~231-1
-231~231-1
注:
数的表示范围仅与内部通用寄存器的位数(字长)有关,与外部数据线条数无关。
2.46
(1)G=0:
段界以字节为单位
地址范围:
089C0000H~089C003FH
大小为3FH+1=40H=64,可容纳64/2=32个汉字
(2)G=1:
段界以4K字节为单位
LIMIT=Limit×4K+0FFFH=0003FH×4K+0FFFH=40H×4K-1
段大小=LIMIT+1=40H×4K=40000H
段的末地址=089C0000H+40000H–1=089FFFFFH
注:
书上P.64例题的结果为0048FFFFH。
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):
Y0=0:
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):
Y1=0:
A13A12=01,A11~A1从全0到全1变化,但A0=0,所以范围:
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变化
所以以范围:
98000H~9FFFFH
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;4#首地址98000H,取段地址9800H偏移地址0
MOVDS,AX
MOVSI,0
MOVCX,1024*2;2KB
MOVAX,0B000H;7#首地址0B0000H,取段地址B000H,偏移地址0
MOVES,AX
MOVDI,0
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
OUTDX,AL;写除数高字节
MOVAL,00010010B
MOVDX,3F3H
OUTDX,AL
6.7MOVAL,80H
MOVDX,3FBH
OUTDX,AL
MOVAL,10H。
波特率7200的除数值=10H
MOVDX,3F8H
OUTDX,AL
INCDX
MOVAL,0
OUTDX,AL
MOVAL,00000011B
MOVDX,3FBH
OUTDX,AL
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;发送
INCSI
LOOPSWAIT
MOVDI,OFFSETRECIV
MOVCX,WORDPTRRLENGTH
MOVBL,0;计接收数据个数
RECEIVE:
MOVDX,3FBH
INAL,DX;取线路状态参数,判断接收有数据否
TESTAL,80H。
超时退出
JNZEXITP
TESTAL,01H;接收数据继续
JZRECEIVE;串口无数据等待
MOVDX,3F8H
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
OUT63,AL
(3)MOVAL,10100100B
OUT63,AL
6.10
(1)MOVAL,10011000B
MOVDX,0FEFFH。
控制口
OUTDX,AL
(2)MOVDX,0FEFEH。
C口
WAITL:
INAL,DX。
Ready
MOVDX,0FEFCH。
A口
INAL,DX
TESTAL,00100000B。
PC5
JZWAITL。
未准备好等待
MOVDX,0FEFCH。
A口
INAL,DX。
读输入设备数据
MOVES:
[DI],AL;写入指定内存单元
(3)MOVDX,0FEFEH。
C口
WAITP:
INAL,DX
TESTAL,01000000B;PC6(BUSY)
JNZWAITP
MOVAL,DS[SI]
MOVDX,0FEFDH;B口
OUTDX,AL;数据输出
(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
OUTDX,AL;报警
MOVSI,OFFSETSTRINGS
MOVCX,18。
18个字符
WAITB:
MOVDX,0FEFFH
INAL,DX
TESTAL,01000000B;BUSY=1?
JNZWAITB
MOVAL,[SI]
MOVDX,OFEFDH;B口
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位
ADDAL,30H。
转换成ASCII码
CALLSUBP
INCSI。
指向下一个单元
LOOPREPEAT
.EXIT
。
打印一个字符的子程序
SUBPPROCNEAR
MOVDX,0F1H。
B口地址
OUTDX,AL。
待打印字符(ASCII码)送B口(打印机端口)
INCDX
WAITP:
INAL,DX。
判BUSY=PC5
TESTAL,00100000B。
BUSY=PC5
JNZWAITP
MOVDX,0F3H
MOVAL,00000011B
OUTDX,AL。
PC1=1命令(/STB=1)
NOP
DECAL
OUTDX,AL。
PC1=0命令(/STB=0)
RET
SUBPENDP
6.12.MODELSMALL
.CODE
.STARTUP
MOVAL,00110110B。
CTC0命令字:
方波信号发生器方式
MOVDX,9F0FH。
8254控制口地址
OUTDX,AL
MOVDX,9F0CH。
CTC0通道地址
MOVAX,2000。
计数常数=2MHz*1000us=2000
OUTDX,AL。
实际收入低8位初值
MOVAL,AH。
取高8位
OUTDX,AL。
写高8位初值
MOVAL01010100B。
CTC1命令字:
速率发生器方式
MOVDX,9F0FH。
8254控制口地址
OUTDX,AL
MOVDX,9F0DH。
CTC1通道地址
MOVAL,2。
计数常数=2(最快)
OUTDX,AL。
写初值
MOVAL10110010B。
CTC2命令字:
负脉冲信号发生器方式
MOVDX,9F0FH。
8254控制口地址
OUTDX,AL
MOVDX,9F0EH。
CTC2通道地址
MOVAL,0。
计数常数=0000(最大值)
OUTDX,AL。
写初值
OUTDX,AL
.EXIT
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
OUTDX,AL。
写高字节初值
(3)将OUT0连接到CLK1,CTC1初值=1S/4ms=1000/4=250
MOVAL,01010110B。
ctc1控制字
MOVDX,0283H
OUTDX,AL
MOVAX,250。
初值=1S/4ms=250
MOVDX,281H。
CTC1通道
OUTDX,AL。
写初值
第7章
7.9
(1);主片初始化
MOVAL,00010001B;ICW1
OUT20H,AL
MOVAL,08H;中断类型号(ICW2)
OUT21H,AL
MOVAL,00000100B;ICW3
OUT20H,AL
MOVAL,00010001B;ICW4
OUT21H,AL
;从片初始化
MOVAL,00010001B;ICW1
OUT0A0H,AL
MOVAL,70H;中断类型号(ICW2)
OUT0A1H,AL
MOVAL,00000010B;ICW3
OUT0A0H,AL
MOVAL,00000001B;ICW4
OUT0A1H,AL
(2)
MOVAL,01101000B;主片OCW1
OUT21H,AL
MOVAL,00100000B;从片OCW1
OUT0A1H,AL
(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命令
INAL,20H;读主片ISR进AL中
MOVDS:
[SI],AL。
主片ISR存入内存
INCSI
INAL,21H。
读主片IMR
MOVDS:
[SI],AL。
主片IMR存入内存
MOVAL,0AH
OUT0A0H,AL;读从片IRR命令
INAL,0A0H;读从IRR进AL中
;MOVBL,AL。
从片IRR暂存BH
MOVES:
[DI],AL。
从片IRR存入内存
INCDI
MOVAL,0BH
OUT0A0H,AL。
读从片ISR命令
INAL,0A0H;读从片ISR进AL中
MOVES:
[DI],AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理接口技术 微机 原理 接口 技术 典型 习题 参考答案