微机原理及应用参考答案.docx
- 文档编号:7972345
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:22
- 大小:45.64KB
微机原理及应用参考答案.docx
《微机原理及应用参考答案.docx》由会员分享,可在线阅读,更多相关《微机原理及应用参考答案.docx(22页珍藏版)》请在冰豆网上搜索。
微机原理及应用参考答案
参考答案
第一章计算机中的数制和码制
第二章计算机概述
一、填空题
1.8
2.2
3.1024
4.25.5、11001.1、00100101.0101B
5.1000010B、42H、66H
6.41.625、29.AH
7.10001101B
8.11001001、11001010
9.-128~+127
10.系统软件、应用软件
11.电子管、超大规模集成电路
二、单选题
1.A2.C3.D
4.C5.A6.C
三、分析简答题
1.8086CPU的总线根据其中信息传送的类型可分为几种?
哪几种?
答:
8086CPU的总线根据其中信息传送的类型可分为三种种,
分别是:
数据总线、地址总线和控制总线
2.写出-25的原码、反码、补码,并将补码转换成十六进制数(设机器字长为8位)。
答:
X=-25=-11001B
X原码:
10011001B
X反码:
11100110B
X补码:
11100111B=E7H
3.举例说明什么是机器数,什么是真值?
答:
将符号数值化了的数称为机器数。
如:
-18=-10010B(真值);机器数为:
10010010B
第三章半导体存贮器
一、填空题
1.ROM、RAM
2.6个
3.8、4
二、单选题
1.A2.B3.D4.B
5.C6.C7.B
三、分析简答题
1.在对存储器芯片进行片选时,全译码方式、部分译码方式和线选方式各有何特点?
答:
①全译码方式:
存储器芯片中的每一个存储单元对应一个唯一的地址。
译码需要的器件多;
②部分译码方式:
存储器芯片中的一个存储单元有多个地址。
译码简单;
③线选:
存储器芯片中的一个存储单元有多个地址。
地址有可能不连续。
不需要译码。
四、硬件接口设计题
1.答:
(1)
(2)存储器类型为RAM总容量为4K×8
地址范围:
0#2000H-27FFH
1#2800H-2FFFH
2.答:
(9分)
(1)存储器类型:
RAM
该系统的存储器容量为:
6K×8位(或:
6K字节)
(2)1#芯片的地址范围:
1000H~17FFH
2#芯片的地址范围:
0800H~0FFFH
3#芯片的地址范围:
0000H~07FFH
3.1)1K×4
2)2K×8或2KB
3)地址分配范围
第一组:
A19~A10A9A8A7A6A5A4A3A2A1A0
最小地址0~0000000000000000H~
最大地址0~01111111111003FFH
第二组:
0~1000000000000400H~
0~11111111111007FFH
第四章微型计算机及微处理器的结构和组成
一、填空题
1.BIU、EU、指令的译码和指令执行
2.4、16、16、6、20
3.8、16
4.1、2
二、单选题
1.B2.B
三、分析简答题
1.8086/8088微处理器内部有那些寄存器,它们的主要作用是什么?
答:
执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。
AX、BX、CX、
DX一般作为通用数据寄存器。
SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。
总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。
段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。
IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。
2.8086/8088CPU内部包含有哪6个专用寄存器?
它们的主要功能是什么?
答:
有CS、DS、ES、SS、IP、PSW
CS(代码段寄存器):
用来存放当前代码段的基地址。
DS(数据段寄存器):
用来存放供程序使用的数据的一段存储区的基地址。
ES(附加段寄存器):
附加的数据段的基地址,
SS(堆栈段寄存器):
堆栈段的基地址。
IP:
16位寄存器。
指示代码段存储区域中下一条指令的段内偏移量。
PSW:
标志寄存器,用来指示微处理器的状态并控制其操作。
3.8086CPU状态标志位有哪些?
说明其符号、名称和含义
答:
(SF):
符号标志位,本次运算结果的最高位为1时,SF=1,否则SF=0
(ZF):
全零标志位,本次运算结果的为0时,ZF=1,否则ZF=0
(AF):
辅助进位标志位,本次运算中低4位向最4位有进位或借位时,AF=1,否则AF=0
(PF):
奇偶校验标志位,本次运算结果低8位中有偶数个“1”时,PF=1,否则PF=0
(CF):
进位标志位,本次运算中最高位有进位或借位时,CF=1,否则CF=0
(OF):
溢出标志位,本次运算过程中产生溢出时,OF=1,否则OF=0
4.执行下面两个数相加:
1010001101001101
+0011001000011001
1101010101100110
分析其结果对下列标志位有何影响:
(6分)
(SF)=1(ZF)=0(AF)=1
(PF)=1(CF)=0(OF)=0
第五章8086/8088CPU的引脚功能、系统组成及时序
一、填空题
1.16、20、分时复用
2.锁存地址
3.系统中只有一个处理器,CPU提供全部的控制信号;高电平
4.FFFF0H
5.逻辑地址、物理地址
6.物理地址
7.段基址、偏移地址、12345H
8.段寄存器、20
9.0000H:
0400H;0020H:
0200H
10.1M
11.高8位、低8位
二、单选题
1.B2.B3.B4.A5.B
6.C7.D8.B9.A10.C
11.D12.A13.B14.B15.C
三、分析简答题
1.8086对存储器的管理为什么采用分段的办法?
最大段和最小段的存储空间分别是多大?
20位的物理地址是如何形成的?
答:
8086CPU是一个16位的结构,内部寄存器及数据总线均为16位,16位地址只能寻址64KB空间。
无法送出外部所需的20位物理地址。
因此采用分段管理办法,来形成超过16位的存储器物理地址,扩大对存储器的寻址范围(1MB,20位地址)。
最大段:
64KB最小段:
16B
当CPU访问内存时,段寄存器的内容(段基址)自动左移4位(二进制),与段内16位地址偏移量相加,形成20位的物理地址。
2.简述8086CPU最小工作方式含义。
答:
8086CPU的最小工作方式是指:
系统中只有一个微处理器,即8086CPU,该方式构成的为单机系统,系统中所需要的控制信号全部由CPU提供,实现和存储器及I/O接口电路的连接,无需总线控制器8288的参与。
3.说明逻辑地址和物理地址的含义,两者之间有何关系?
已知逻辑地址3000H:
2345H,写出段地址、物理地址、偏移地址。
答:
逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成。
偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。
物理地址是8086芯片引线送出的20位实际的地址码,用来指出一个特定的存储单元。
物理地址=段基址*10H+偏移地址
段地址3000H、偏移地址2345H、物理地址3000H*10H+2345H=32345H
4.计算题:
某微机系统中内存的首地址为3400H,末地址为67FFH,求其内存容量并以K表示。
答:
内存容量=末地址-首地址+1=67FFH-3400H+1=3400H(字节)=13KB
5.8086/8088为什么采用地址/数据引线复用技术?
答:
考虑到芯片成本,8086/8088采用40条引线的封装结构。
40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。
第六章8086/8088CPU寻址方式及指令系统
一、填空题
1.操作码、操作数
2.00FEH、1000H
3.最高地址端
4.0FF2H、0056H
5.0214H、24514H、0306H、24306H
6.1、2000H
7.1
8.0FFH、00H
9.DX
二、单选题
1.A2.C3.D4.A5.C
6.B7.A8.B9.D10.A
11.B12.D13.B14.C15.C
16.C17.D18.C19.B
三、分析简答题
1.写出至少3种指令,使AX寄存器置零
MOVAX,00SUBAX,AXXORAX,AXANDAX,00H
2.用单条指令或程序片段,实现下述功能
(1)XORAX,0FF00HORAX,000FH
(2)MOVCL,4RORAL,CL(或ROLAL,CL)
(3)XCHGAX,BX
3.堆栈存储区由哪两个寄存器管理?
简述数据压栈和弹栈的过程。
答:
堆栈存储区由两个寄存器管理:
堆栈指针(SP)和堆栈段寄存器(SS)。
当一个字数据被压入堆栈时,SP首先减2,然后对栈顶存储单元进行16位字的写操作;其高8位数据被放在SP-1单元中,低8位数据被放在SP-2单元中。
当数据从堆栈中弹出时,低8位从SP单元移出,高8位从SP+1单元移出,然后SP+2。
4.举例说明与数据有关的寻址方式有哪些?
答:
1、
2、
3、立即寻址、寄存器寻址
、直接寻址
、寄存器间接寻址
、寄存器相对寻址
、基址加变址寻址、相对基址加变址寻址;例子略。
5.输入输出的寻址方式有哪几种?
举例说明
答:
有两种:
直接端口寻址,如INAL,05H;
间接端口寻址,如MOVDX,05HINAL,DX
6.答:
MOV指令是将源操作数即内存单元的内容传送到目的操作寄存器中;而LEA为取偏移量指令,它是将源操作数所在内存单元的偏移地址取出送目的寄存器;
MOVAX,TABLE;AX=3412H
LEAAX,TABLE;AX=0020H
7.分别指出下列指令中的源操作数的寻址方式。
(1)直接寻址
(2)立即寻址
(3)寄存器寻址
(4)基址加变址
(5)相对基址加变址寻址
(6)寄存器相对寻址
(7)寄存器间接寻址
(8)段内间接寻址
(9)直接端口寻址
(10)间接端口寻址
8.指出下列指令的错误
(1)源、目的操作数长度不匹配
(2)立即数不能做目的操作数
(3)CS不能做目的操作数
(4)SI、DI不能同时出现在一个[]中
(5)源、目的操作数长度不匹配
(6)源、目的操作数不能均为存储器操作数
(7)立即数不能直接送至段寄存器
(8)IN指令中目的操作数不能用BL(只能用AL或AX)
(9)IP不能做目的操作数
(10)DX不能间接寻址,可改为MOVSI,[BX]
(11)PUSH指令的操作数必须为16位(即:
按字操作)
9.设8086/8088CPU的SS=1050H,SP=0008H,AX=1234H,当执行指令:
PUSHAX后,寄存器SS、SP、AX内容分别是什么?
画图说明1234H在内存中的存放情况。
SS=1050HSP=0006HAX=1234H
(10506H)=34H(10507H)=12H
10.假设(DS)=2000H,(BX)=1256H,(SI)=528FH;位移量TABLE=20A1H,
(232F7H)=3280H,(264E5H)=2450H,则;
(1)IP=1256H
(2)IP=3280H
(3)IP=2450H
11.已知8086CPU各寄存器和有关内存单元内容如下:
指出执行下列指令后AX寄存器的内容:
(1)AX=1200H
(2)AX=43EFH(3)AX=3412H
(4)AX=BC9AH(5)AX=8765H
第七章汇编语言程序设计
一、填空题
1.‘d’
2.第一个AND是逻辑指令,第二个AND是逻辑与操作符
3.0FFFFH
4.03H
5.同一代码段内、不同代码段
二、单选题
1.A2.A3.D4.B5.A
三、分析简答题
1.汇编语言中的伪指令与执行指令有何不同?
答:
伪指令的功能主要用于完成变量定义、段定义等,变量名称后不能带‘:
’,它仅仅在汇编过程中告诉汇编程序应如何汇编,而不生成机器代码,即由汇编程序进行处理;执行指令可以完成数据传送、各种运算、字符串处理、程序控制等功能,标号后要跟‘:
’,这种指令由汇编程序翻译成对应的机器代码,最终由CPU执行处理。
2.试举例说明一条汇编语句可以有哪几部分组成?
各部分之间采用何种分隔符(定界符)相隔离?
答:
略。
3.指出下面程序片段中的错误。
MYDATASEGMENT
ADB122434错误1:
多个操作数之间必须用“,”分开
B:
DW‘12’错误2:
变量后面不能带冒号“:
”
MYDATAENDS
MYCODESEGMENT
ASSUMEDS:
MYDATA,CS:
MYCODE
MOVDS,MYDATA错误3:
立即数不能直接送进段寄存器
MOVAH,A
MOVAL,B错误4:
源、目的操作数字长不一致
MOVCX,A错误5:
源、目的操作数字长不一致
MOVAX,B
MOVIP,B错误6:
MOV指令中IP不能做操作数
4.改正下面程序片段中的错误或指出错误原因。
DATASEGMENT
ADB12、24、34错误1:
多个操作数之间用“,”分开
BDW‘12’,‘ABCD’错误2:
‘ABCD’改为‘AB’,‘CD’
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
MOVDS,DATA错误3:
立即数不能直接送进段寄存器
MOVDX,OFFSETA错误4:
DX不能用于间接寻址,可改为BX
MOVAL,[DX+2]错误5:
DX不能用于间接寻址,可改为BX
MOVBL,CX错误6:
源、目的操作数字长不一致
5.指出下面程序片段中的错误。
A1:
DB?
错误1:
变量后面不能带冒号“:
”
A2DW10
K1EQU1024
MOVAX,80
MOVK1,AX错误2:
K1为立即数,不能做目的操作数
MOVAL,A2错误3:
源、目的操作数字长不一致
MOVBX,A1错误4:
源、目的操作数字长不一致
MOVA1,K1错误5:
A1为字节变量,K1超出的范围
6.假设某程序段中的数据定义如下:
(1)
DA1
…
01
00
01
DA2
00
32
DA3
25
…
(2)变量DA1、DA2、DA3占用字节数分别为:
6、2、1;
COUNT=9表示数据段的长度为9个字节
7.假设某程序段中的数据定义如下:
A1占24个字节
A2占5个字节
A3占4个字节
L的值为33
L表示的意义:
变量A1、A2、A3所占的字节总数
8.对下面两个数据段,请分析偏移地址为10H和11H的两个字节中的数据是一样的吗?
为什么?
答:
不一样.分别是72H,04H和04H,72H.
因为字存储时低8位存放在低字节,高8位存在高字节。
9.若STR是字符串的首地址,指出下列程序的功能,并将语句加上注解。
LEABX,STR;取STR的偏移量放到BX中
MOVCX,20;_设置循环次数________
LP:
CMP[BX],‘*’
JNZNEXT;BX所指单元内容不为‘*’,则转移至NEXT
MOV[BX],‘$’;将BX所指单元用‘$’替代
NEXT:
INCBX;BX加1,指向下一个单元
LOOPLP;CX-1不等于0则转移至LP处,继续循环
HLT
程序的功能:
将STR开始的前20个字符中的‘*’用‘$’替代
10.填入适当指令或指令的一部分,完成指定功能。
MAX:
MOVBX,2000H
M0VAL,[BX]
M0VCX,63H(或99)
LOOP1:
INCBX
CMPAL,[BX]
JAELOOP2
MOVAL,[BX]
LOOP2:
DECCX
JNZLOOP1
M0V[2100H],AL
11.指出下列程序的功能,并将有分号(;)的语句加上简要注解
BUFDB100DUP(?
)
MOVBX,OFFSETBUF;取BUF的偏移地址,设置地址指针BX
MOVCL,64H
LP:
MOVBYTEPTR[BX],0;将BX所指向的内存单元清0
INCBX;BX内容加1,指向下一个内存单元
DECCL;CL内容减1
JNZLP;若计数器CL的内容不为0则转向LP继续循环
程序的功能:
将BUF单元开始的100个字节的存储单元全部清0
12.分析填空
MOVBL,09H;执行后BL=___09H______
MOVAL,05H;执行后AL=___05H______
ADDAL,BL;执行后AL=___0EH______
DAA;执行后AL=___14H______
BL=___09H______
13.分析填空
MOVAX,00H;执行后AX=00H
PUSHAX;执行后AX=00H
POPBX;执行后BX=00H
MOVAX,3F5FH;执行后AL=5FH
MOVCX,4
RORAL,CL;执行后AL=0F5H
ANDAL,0FH;执行后AL=05H
14.分析填空
假设(BL)=0E3H,变量VALUE中存放的内容79H,确定下列各条指令单独执行后的结果。
(1)BL=9AH
(2)BL=FBH
(3)BL=1CH
(4)BL=00H
(5)BL=C6H
15.阅读程序回答问题
(1)该程序的功能是计算BLOCK数据元素中奇数的个数,并存入RESULT中。
(2)程序执行后,RESULT单元的内容是5(奇数的个数)。
(3)第3行汇编后COUNT=10(BLOCK数组元素的个数。
(4)*处的完整指令应是MOVAX,DATA。
(5)**处的完整指令应是MOVSI,OFFSETBLOCK,该指令也可以用LEASI,BOLCK指令代替
四、程序设计题
1.内存中有X、Y两个数:
X=32,Y=-78利用汇编语言编写完整的程序,计算这两个数之和,并将结果存入内存S,即:
S=X+Y
参考程序:
DATASEGMENT
XDB32
YDB-78
SDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
ADDAL,Y
MOVS,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2.编程检测从外设端口71H输入的字节数据,若该数据≤20,则向73H端口送0H;若该数据>20,则向73H端口送0FFH。
请写出完整的汇编源程序。
参考程序如下所示:
CODESEGMENT
ASSUMECS:
CODE
START:
INAL,71H
CMPAL,20
JNGK1
MOVAL,0FFH
JMPK2
K1:
MOVAL,00H
K2:
OUT73H,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.编程检测80H端口输入的字节数据,若为正,将BL清0;若为负,将BL置为FFH。
请写出完整的汇编源程序。
参考程序如下所示:
CODESEGMENT
ASSUMECS:
CODE
START:
INAL,80H
TESTAL,80H
JZAPOS
MOVBL,0FFH
JMPEXIT
APOS:
MOVBL,00H
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
4.内存中有X、Y两个数组:
X=32、-43、76,Y=-78、127、-128利用汇编语言编写完整的程序,计算这两个数组之和,即S(i)=X(i)+Y(i)
参考程序:
DATASEGMENT
XDB32,-43,76
YDB-78,127,-128
SDB3DUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,00H
MOVCX,3
AGAIN:
MOVAL,X[BX]
ADDAL,Y[BX]
MOVS[BX],AL
INCBX
LOOPAGAIN
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
5.在BLOCK开始有一个字节型数组,共有15个元素,利用汇编语言编写完整的程序,计算这个数组中奇数的个数,并将结果存入内存SUM单元。
DATASEGMENT
BLOCKDB15DUP(?
)
SUMDB00
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETBLOCK
MOVCX,15
CON:
MOVAL,[SI]
TESTAL,01H
JZNEXT
INCSUM
NEXT:
INCSI
LOOPCON
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.在BUF开始有一个字节型数组,共有50个元素,利用汇编语言编写完整的程序,将该数组全部元素清零。
DATASEGMENT
BUFDB50
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 参考答案