微机原理与接口技术项目决战参考答案.docx
《微机原理与接口技术项目决战参考答案.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术项目决战参考答案.docx(38页珍藏版)》请在冰点文库上搜索。
![微机原理与接口技术项目决战参考答案.docx](https://file1.bingdoc.com/fileroot1/2023-6/2/8c704ce1-664e-4432-b66d-9637baa95843/8c704ce1-664e-4432-b66d-9637baa958431.gif)
微机原理与接口技术项目决战参考答案
项目一
一、选择题
1.A2.B3.A4.D5.D
6.C7.C8.B
二、填空题
1.控制器运算器
2.计算机的中央处理单元,负责解释和执行指令主存总线输入输出设备
3.2
三、计算题
1.数制和码制转化
(1)189.1875275.14BD.3
(2)11110111F7367
(3)111011110011010010736322244946
(4)1100000
2.FFH;5AH(正数)或A6H(负数,最高位为符号位)
3.如果用[X]补=(9F)16来求解,要考虑正数和负数。
4.
(1)无溢出
(2)无溢出
(3)无溢出
(4)有溢出,结果错
四、问答题
1.41611B101DF
2.ASCⅡ码的首位为0,而汉字编码的首位为1。
汉字编码,以GB2312码为例,是以两个ASCII字符为一个汉字编码,而且用的都是ASCII中扩展字符集中的编码组成,如果内码与当前程序使用的解码不一致,文字就不能正常显示,而显示成回ASCII的形式,这种情况称为乱码。
3.中央处理器cpu包括运算逻辑部件、寄存器部件和控制部件。
中央处理器从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。
它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。
4.微型计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
5.系统软件:
是软件的基础,所有应用软件都要在系统软件上运行。
Windows系列:
windows2000、windowsXP、windows7、Dos、LinuxUnix等;
应用软件:
能够实现某种特定任务的软件,例如:
office系列金山WPS杀毒软件工具软件等
项目二
一、选择题
1.A2.D3.A4.D5.C
6.D7.C8.D9.C10.C
11.D12.D13.D14.D15.A
16.A17.C18.B19.D20.D
二、填空题
1.负责完成CPU与存储器或I/O设备间的数据传送;执行命令
2.CFPFAFZFSFOF
3.取指令、译码、读写操作数
三、计算题
1.物理地址=32000H,可参阅图2.14。
2.
(1)MOVAX,[1024H];直接寻址,数据段,11024H
(2)MOVAX,TABLE;直接寻址,数据段,10500H
(3)MOVAX,100H[BX];基址寻址,数据段,10300H
(4)MOVAX,TABLE[BP][SI];相对基址加变址,数据段,10900H
(5)MOVAX,1234H;立即寻址
(6)MOVAX,ES:
[1234H];直接寻址,附加数据段,11234H
(7)MOVAX,10H[EAX];基址寻址,数据段,10410H
(8)MOVAX,10H[EAX*2];变址寻址,数据段,10810H
(9)ADDAL,[EAX][SI];基址变址寻址,数据段,10500H
(10)SUBEAX,TABL[BP];基址寻址,SS段,10900H
四、程序分析
1.已知DS=1300H,AX=1234H,BX=1200H,CX=01BCH,SI=0020H,DI=0032H,存储单元(14281H)(14280H)=0A426H,(14235H)(14234H)=3000H,(14233H)(14232H)=0634H,(14233H)(14232H)=0634H,(14231H)(14230H)=5678H,下列各程序段执行结果如何?
(
(1)LEABX,50H[BX][SI];传送的是有效地址,BX=1270H
MOVAX,10H[BX];物理地址=14280H,AX=0A426H,
(2)XCHGCX,30H[BX];交换指令,CX=5678H,(14281H)(14280H)=01BCH
XCHG50H[BX][SI],AX;交换指令,AX=0634H,(14271H)(14270H)=1234H
2.已知SS=1234H,SP=00B0H,执行下列指令后,试指出SP和CX的值,并绘出堆栈区数据变化图。
CX=0F80H;SP=00AEH;变化图可参阅图2-15。
3.已知AL=93H,CF=1,试指出下列每条指令执行后CF、ZF、SF、PF和AF的状态。
(1)MOVAL,50H;数据传送,CF、ZF、SF、PF和AF不受影响
(2)ADDAL,80H;CF=1,ZF=0,SF=0,PF=0,AF=0
(3)SUBAL,0A0H;CF=1,ZF=0,SF=1,PF=1,AF=0
(4)ADCAL,0F8H;CF=1,ZF=0,SF=1,PF=0,AF=0
(5)SBBAL,18H;CF=1,ZF=0,SF=0,PF=0,AF=0
(6)INCAL;CF=1,ZF=0,SF=1,PF=0,AF=0,该指令不影响CF
(7)DECAL;CF=1,ZF=0,SF=1,PF=0,AF=0,该指令不影响CF
(8)NOTAL;不影响标志位
(9)ANDAL,80H;影响PF、SF和ZF标志位
(10)ORAL,0FH;影响PF、SF和ZF标志位
4.以下程序段执行后AX寄存器的值是多少?
MOVAX,0008H;AX=0008H
ADDAL,09H;0011H
AAA;AX=17,参阅44页
5.已知AX和BX中为有符号数,试问在什么条件下执行以下各条指令后,程序转向不同的目标地址?
ADDAX,BX
JOPROG1;OF=1时,转移
JNCPROG2;A≥B时,转移
JSPROG3;SF=1时,转移
JNZPROG4;ZF=0时,转移
JMPPROG5;无条件跳转
五、程序编写
1.按要求编制程序段
(1)将AX寄存器的低四位置0;ANDAX,0FFF0H
(2)将EBX的高8位和低8位交换;XCHBH,BL
(3)将CX的内容乘以16;CX左移4次或者将CX内容导入其他寄存器,利用CX做数据寄存器,移动,再返回数据。
程序段如下:
MOVAX,CX
MOVCX,4
SALAX,CL;左移4次
MOVCX,AX
(4)将数据段中偏移地址为2000H中所存字传送到BX中。
MOVBX,[2000H]
2.使用查表指令将0~9转换成ASCII码。
解:
程序段如下:
DATASEGMENT
TABLEDB30H,…….39H;10个数,注意这里没有显示,
;如果要显示,或者要每个显示出来,需要参阅例3-9
LEABX,TABLE
MOVAL,06H;假设为06号元素
XLAT
3.AX、BX和CX中为有符号的16位二进制数,现要求求出最大值,并存储在MAX单元中,试编写程序段。
解:
程序段如下:
CMPAX,BX
JGENEXT;AX≥BX,转移
XCHGAX,BX;否则,数据交换,AX中存的是大数
NEXT:
CMPAX,CX;AX与CX比较
JGEDONE;AX≥CX,转移
XCHGAX,CX
DONE:
MOVMAX,AX;最大值存入MAX中
4.100个有符号的16位二进制数存储在以BLOCK为首地址的存储区中,现要求将其中的正数和负数分开,并分别存储在以POSI和MINU为首地址的存储区中,试编写程序段。
解:
注意:
该程序是比较的字,所以SI每次要加2。
程序参考如下:
DATASEGMENT
NUMEQU100;定义计数器定义100个数
BLOCKDWNUMDUP(?
);定义100个随机数
MINUSDW100DUP(?
);开放数据空间
POSIDW100DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,0;定位单元起始地址
MOVCX,NUM;将100送入计数器
L1:
MOVAX,BLOCK[SI];从第一个数据开始
TESTAX,8000H
JZNEXT1;ZF=1,说明为正数,转移
MOVMINUS[SI],AX;否则,为负数,存储
JMPPASS1
NEXT1:
MOVPOSI[SI],AX
PASS1:
INCSI
INCSI
LOOPL1
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
5.试编写一汇编程序段,使之实现:
在100个字符的数据串BLOCK中搜索字符“K”,若有,则将OK单元置1,否则置0。
解:
LEADI,BLOCK;目标字符串首地址送DI
MOVBX,DI;首地址暂存BX
MOVCX,100;串长度送CX
MOVAL,’K’;关键字符K的ASCⅡ码送AL
CLD
REPNZSCASB;扫描字符串,直到找到字符K或CX=0
JZFOUND;若找到,则转移
MOVOK,0;没找到要搜索的关键字,使存储单元OK为0
JMPDONE
FOUND:
MOVOK,1
HLT
项目三
一、选择题
1.A2.D3.C4.B5.A
二、填空题
1.机器的低级程序设计编译连接程序2.分支循环
三、按要求完成下列题目
1.给出下列语句中,求出指令立即数(数值表达式)的值:
(1)MOVAL,21HAND56HOR0AH;先AND,再OR,AX=0AH
(2)MOVAX,14ABH/16+1200H;先右移4位,再加,AX=134AH
(3)MOVAX,23HSHL4;左移4位,AX=0230H
2.画图说明下列语句分配的存储空间及初始化的数据值:
(1)BYTE_VARDB‘ABCD’,10,10H,11000011B,2DUP(—1,?
,5DUP
(2))
(2)WORD_VARDW20H,20,—5,2DUP(?
)
该题目参阅例3.3,注意分清字节、字的存储单元。
3.请设置一个数据段,按照以下要求定义变量:
(1)BYTE_VAR1为字符串变量,表示字符串“MYPC”
BYTE_VAR1DB‘MYPC’
(2)BYTE_VAR2为用十进制数表示的字节变量,这个数的大小为20
BYTE_VAR2DB20;注意,这里是字节变量,而不是赋值,下同
(3)BYTE_VAR3为用十六进制数表示的字节变量这个数的大小为20
BYTE_VAR3DB14H
(4)BYTE_VAR4为用二进制数表示的字节变量,这个数的大小为20
BYTE_VAR4DB10000100B
(5)WORD_VAR为20个未赋值的自变量
WORD_VARDW20DUP(?
)
(6)CHANGL_1为100的符号常量
CHANGL_1EQU100
(7)CHANGL_2为字符串常量。
代替字符串“PERSINALCOMPUTER”?
CHANGL_2EQU
四、程序填空
1.XORAH,AL
JZZERO
2.CMPAL,[BX]
JNZLOP1
五、编制程序题
1.编定程序段,用DOS的1号功能调用通过键盘输入一字符,并判断输入的字符。
如果字符是“Y”,则转向YES程序段;如字符是“N”,则转向NO程序段;如是其他字符,则转向DOS功能调用,重新输入字符。
YES和NO作为两程序段入口处的标号。
解:
参考程序如下:
CODESEGMENT
ASSUMECS:
CODE
BEGIN:
MOVAH,01h
INT21H
CMPAL,'Y'
JZYES
CMPAL,'N'
JZNO
JMPBEGIN
YES:
...
...
NO:
...
....
MOVAH,4CH
INT21H
CODEENDS
ENDBEGIN
2.在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。
解:
参考程序如下:
DATASEGMENT
BUF1DW-56,24,54,-1,89,-8,……
BUF2DW45,-23,124,345,-265,……
SUMDW10DUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVCX,20;计数器,循环20次
LEASI,BUF1;获取偏移地址
LEADI,SUM
PUSHSI
M1:
MOVAL,[SI]
MOVAH,[SI+1]
AND[SI],80H
JZM3;结果为0,说明是正数,转移
XORAX,OFFFFH;否则,取绝对值,也可以用neg指令
ADDAX,1
MOV[SI],AL;绝对值,放回原变量中
MOV[SI+1],AH
M3:
INCSI;指向下一个数据
INCSI
LOOPM1;将这20个数存放在BUF1开始的缓冲区中
POPSI
MOVCX,10
M2:
MOVAL,[SI]
MOVAH,[SI+1]
ADDAL,[SI+20]
ADDAH,[SI+21]
MOV[DI],AL
MOV[DI+1],AH
INCSI
INCSI
INCDI
INCDI
LOOPM2
CODEENDS
ENDSTART
3.编写一个程序,把从键盘输入的小写字母用大写字母显示出来。
解:
参考程序段如下:
NAMETURN
DATASEGMENT
ADB'PLEASEINPUT(a~z):
','$'
BDB0AH,0DH,'$'
DATAENDS
STACK1SEGMENTSTACK
DB90HDUP(?
)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CSEG,DS:
DSEG,SS:
SSEG
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETA;提示输入
MOVAH,09H
INT21H
MOVAH,01H;从键盘输入字符,存放在AL中
INT21H
MOVBL,AL;转移至BL中,进行转换
SUBBL,20H;转换
MOVDX,OFFSETB;回车,换行
MOVAH,09H
INT21H
MOVDL,BL
MOVAH,02
INT21H;输出
MOVAH,4CH
INT21H;结束
CODEENDS
ENDSTART
4.编写程序,当从键盘输入一个数时,根据下面函数关系计算出函数值,并显示出来。
Y=
该题修订一下,第三个改为5,使题目简单一点。
注意:
假设从键盘输入的就是数字,1位数。
否则,还要进行数据、字符的判断及位数处理。
解:
程序段如下:
MOVAH,01H
INT21H
CALLCUR_OFF;调用子程序,见P51例2-59
SUBAL,30H;变成十进制数值
MOVBL,AL
CMPBL,0H;和0比较
JGEMULS3;AL≥0,跳转
ADDBL,BL;BL=2X
JMPDONE
MULS3:
CMPBL,05H
JGMULS4
ADDBL,BL
ADDBL,AL;BL=3X
JMPDONE
MULS4:
ADDBL,BL
ADDBL,BL;BL=4X
DONE:
MOVAL,BL
ANDAL,F0H;屏蔽低四位
MOVCL,4
SARAL,CL
ADDAL,30H;转换为ASCII码
MOVAH,02H
MOVDL,AL
INT21H
MOVAL,BL
ANDAL,0FH;屏蔽高4位
ADDAL,30H
MOVDL,AL
MOVAH,02H
INT21H
5.在BUF单元开始的10个字单元中存放着10个4位压缩BCD码数,求BCD和,结果存放在RESULT开始的3个字单元中。
要求用子程序完成两个4位压缩BCD码数的相加,并且低位存放在前,高位存0放在后。
解:
参考例题3-22,基本一样。
项目四
一、选择题
1.A2.C3.C4.D5.A6.B
二、填空题
1.时钟周期2.锁存器数据收发器3.片内总线局部总线系统总线通信总线通信总线4.主频1000ns5.线选译码、部分译码6.32个存储器11位4位7.FFFFH
三、简答题
1.写总线周期读总线周期
2.参阅图2-1
地址总线(AB)数据总线(DB)控制总线(CB)
3.存储器容量、存储周期、制作工艺
4.目前,每一个集成片的存储容量终究是有限的,所以需要一定数量的芯片按一定方式进行连接才能组成一个完整的存储器。
在地址选择时,首先要选片。
只有当片选信号有效时,才能选中某一片,使此片所连的地址线有效,这样才能对这一片的存储元进行读写操作。
至于是读还是写,取决于CPU所给的命令是读命令还是写命令。
加快运算速度,调节主板与CPU工作问题
5.半导体存贮器与CPU的连接应注意:
①速度的配合;
②相应控制信号的连接;
③CPU总线的负载能力。
四、分析设计题
1.一个具有14位地址8位数据线的存储器,能存储多少字节数据,若由8K×4的芯片组成,共需多少芯片?
解:
16K字节4个芯片;算法参阅课本。
2.用16K×8的ROM为8088CPU扩展外部64K×8的ROM,其地址范围为40000H-4FFFFH,采用74LS138进行译码,写出详细设计过程并画出电路图。
解:
(1)计算所需芯片数四个
(2)地址分配与片选逻辑(3)连接芯片。
注意地址是从40000H到4FFFFH,因此A19A18=01,ROM有14根地址线,可以和CPU的14根地址线相连。
而余下的A17A16A15A14四根地址线就应该作为片选端。
A16A15A14可分别与CBA相连,A18与E3相连,A19A17与E1E2相连。
图略。
项目五
一、选择题
1.A2.C3.C4.D5.D6.D7.D8.C9.D10.B
二、填空题
1.控制2.状态寄存器控制寄存器3.连接CPU与外设之间的部件能传输信号,提供缓冲,满足接口两边的时序
4.空闲周期和有效周期单字节、数据块、请求传送、级连方式
三、简答题
1.
答:
因为外设的速度大多都比较慢,而计算机内部的速度都比较快,为了弥补速度差,引入了接口。
接口就相当于一个缓冲区,它能暂存一些数据(外设一般采用串行,等有一定量的数据,再一起并行传给主机,或接口处理机),从而达到主机跟外设之间的串-并转换,提供主机的工作效率。
cpu的速度很快,而外设的速度很慢,为了协调这两者,就出现了接口。
2.可参阅144页,主要有:
1)转换信息格式,如串并行数据转换。
2)提供CPU与外设之间的信号联络,如应答信号。
3)对传输的数据进行缓冲或锁存,以协调CPU与外设之间数据传送速度上的差异。
4)有片选和片内端口地址选择,以便CPU能同指定外设的指定端口进行信息传送。
5)实现电平和正负逻辑转换,使CPU与外设在电气特性上相匹配。
6)接收CPU写来的控制字,向CPU提供状态信息,实现中断管理。
7)对I/O端口进行寻址,提供时序控制。
3.可参阅145页、146页,独立编址和统一编址:
或者如下回答:
①独立编址(专用的I/O端口编址)----存储器和I/O端口在两个独立的地址空间中I/O端口的地址码较短,译码电路简单,存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制结构相互独立,可以分别设计
②统一编址(存储器映像编址)----存储器和I/O端口共用统一的地址空间,当一个地址空间分配给I/O端口以后,存储器就不能再占有这一部分的地址空间。
优点:
不需要专用的I/O指令,任何对存储器数据进行操作的指令都可用于I/O端口的数据操作,程序设计比较灵活;由于I/O端口的地址空间是内存空间的一部分,这样,I/O端口的地址空间可大可小,从而使外设的数量几乎不受限制
4.数据、状态、控制;数据口、状态口、控制口。
5.无条件传送方式,也称同步传送方式。
传送前,CPU不需要了解端口的状态,直接进行数据的传送。
8255方式0、DAC;
查询传送方式,也称为异步传送方式。
8255方式1、ADC;
中断方式8259、8255方式1、2
DMA方式8237
无条件传送通常用在可靠性要求不高的同步或开放性场合
6.程序查询模式:
检查条件及处理要占用CPU时间。
中断模式:
检查条件不占CPU时间,满足条件时进入中断子程,所以处理不占CPU时间。
该模式主要用于处理事件或事务。
中断控制方式虽然在某种程度上解决了占用CPU的问题,但由于中断次数多,因而CPU仍需要花较多的时间处理中断,而且能够并行操作的设备台数也受到中断处理时间的限制,中断次数增多导致数据丢失。
DMA方式较好地解决了上述问题。
这两种方式采用了外设和内存直接交换数据的方式。
只有在一段数据传送结束时,这两种方式才发出中断信号要求CPU做善后处理,从而大大减少了CPU的工作负担。
四、程序编写
1.CPU与外设采用查询方式传送数据的过程是怎样的?
现有一输入设备,其数据端口的地址位为FFE0H,并于端口FFE2H提供状态,当其D0位为1时表明输入设备好。
请编写采用查询方式进行数据传送的程序段,要求从该设备读取100B并输入到2000H:
2000H开始的主存中。
程序段如下:
MOVAX,2000H