微机原理及应用参考答案Word格式.docx
- 文档编号:21108594
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:22
- 大小:45.64KB
微机原理及应用参考答案Word格式.docx
《微机原理及应用参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理及应用参考答案Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
存储器芯片中的一个存储单元有多个地址。
译码简单;
③线选:
地址有可能不连续。
不需要译码。
四、硬件接口设计题
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:
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.假设某程序段中的数据定义如下:
DA1
…
01
00
DA2
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
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;
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。
请写出完整的汇编源程序。
参考程序如下所示:
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
INAL,80H
TESTAL,80H
JZAPOS
MOVBL,0FFH
JMPEXIT
APOS:
MOVBL,00H
EXIT:
MOVAH,4CH
4.内存中有X、Y两个数组:
X=32、-43、76,Y=-78、127、-128利用汇编语言编写完整的程序,计算这两个数组之和,即S(i)=X(i)+Y(i)
XDB32,-43,76
YDB-78,127,-128
SDB3DUP(0)
MOVBX,00H
MOVCX,3
AGAIN:
MOVAL,X[BX]
ADDAL,Y[BX]
MOVS[BX],AL
INCBX
LOOPAGAIN
5.在BLOCK开始有一个字节型数组,共有15个元素,利用汇编语言编写完整的程序,计算这个数组中奇数的个数,并将结果存入内存SUM单元。
DATASEGMENT
BLOCKDB15DUP(?
SUMDB00
DATAENDS
DATA
MOVSI,OFFSETBLOCK
MOVCX,15
CON:
MOVAL,[SI]
TESTAL,01H
JZNEXT
INCSUM
NEXT:
INCSI
LOOPCON
INT21H
6.在BUF开始有一个字节型数组,共有50个元素,利用汇编语言编写完整的程序,将该数组全部元素清零。
BUFDB50
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 参考答案