微机原理简答题汇总推荐文档Word下载.docx
《微机原理简答题汇总推荐文档Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理简答题汇总推荐文档Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
XLAT;
表内位移放在AL,表转换结果放在AL
第1页共5页
DAA;
BCD调整的数据存放在AL
MUL源操作数;
AXJAL*源
DIV源操作数;
ALJAX/源的商
SCAS目的字符串;
AL/AX(字节/字操作)内容减去ES:
DI中的串元素
7.条件传送接口电路中至少应包括什么端口?
并简述条件传送的工作过程。
(3分)
条件传送端口至少应包含数据端口和状态端口。
条件传送过程:
先读取状态端口的信息,检测是否准备好交换数据,若已准备好,则与数据端口进行数据交换;
否则继续读取状态端口,直到数据准备好。
(包含两个端口的原因由其工作过程可以看出)
2.画出微型计算机的组成框图,并简述各部分功能。
(4分)
功能见本部分第一题
二、简答题关于8086CPU寻址方式以及指令对错的分析题
1.写出下列指令中源操作数的寻址方式。
(4分)
(1)MOVAXBX
寄存器寻址方式
(2)MOVAX[2000H]
直接寻址
(3)MOVAX[BX+DI]
基址加变址寻址方式
(4)MOVBXOFFSETBUFF
立即寻址方式
【解析】8086/8088有七种基本的寻址方式:
立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。
其中,后五种寻址方式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址)属于存储器寻址,用于说明操作数或操作数地址所在存储单元的地址。
这五种方式也就是确定存放操作数的存储单元有效地址EA的方法,这里所说的有效地址就是在前面一节讲存储器分段中所说的段内偏移地址。
除了这些基本的寻址方式以外,还有固定寻址、段间转移寻址和I/O端口寻址等。
关于七种基本寻址方式解释如下:
1.立即寻址方式立即数:
操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。
这种操作数称为立即数。
立即寻址方式所提供的操作数紧跟在操作码后面,与操作码一起放在指令代码段中,不需要到其他地址单元中去取。
立即数可以是8位,也可以是16位。
这种寻址方式主要用于给寄存器或存储单元赋初值的场合。
立即寻址方式是这七种寻址方式中速度最快的寻址方式。
举例:
MOVAX,1234H;
给AX寄存器赋值为1234H
2.寄存器寻址方式
寄存器寻址的特点是操作数在CPU^部的寄存器中,在指令中指定寄存器号。
对于16位操作数,寄存器可以是AXBXCXDXSI、DI和SP等;
对于8位操作数,寄存器可以是ALAHBLBHCL、CHDL和DH例如:
MOVSI,AX
MOVAL,DH
由于操作数在寄存器中,不需要通过访问存储器来取得操作数,所以采用寄存器寻址方式的指令执行速度较快。
3.直接寻址方式直接寻址的操作数在存储器中,指令直接包含有操作数的有效地址。
由于操作数一般存放在数据段,所以操作数的地址由DS加上指令中给出的16位偏移得到。
假如DS内容是5000H,地址为51234H字存储单元中的内容时6789H,那么在执行“MOVX,[1234H]”后寄存器AX的内容是6789H由于该指令所用的段寄存器为DS所以该条指令还可以写为"
MOVAX,DS:
[1234H]"
。
当然,除了DS段寄存器以外,还可以指定其他段寄存器。
例如:
MOVES:
[5678H],BL;
指定ES作为段寄存器
这种寻址方式常用于处理单个存储器变量的情况。
它可以实现在64K字节的段内寻找操作
数。
直接寻址的操作数通常是程序使用的变量。
4.寄存器间接寻址方式寄存器间接寻址的操作数在存储器中,操作数有效地址在SI、DI、BX、BP这四个寄存器
之一中。
在一般情况下,如果有效地址在SI、DI和BX中,则以DS段寄存器的内容为段
值;
如果有效地址在BP中,则以SS段寄存器的内容为段值。
MOVAX,[SI];
自动引用DS作为段寄存器
假设(DS=5000H,(SI)=1234H那么存储的物理存储单元地址是51234H再设该字
存储单元的内容是6789H,那么在执行该指令后,(AX=6789H。
当然也可以指定段超越前缀,如:
MOVDL,CS:
[BX];
引用的段寄存器是CS
如果有效地址在BP中,那么引用的段寄存器为SS如:
MOV[BP],CX;
此时引用的段
寄存器是SS
这种寻址方式可以用于表格处理,在处理完表中的一项后,只要修改指针寄存器的内容就可以方便地处理表中的另一项。
注意同寄存器寻址方式的书写方式予以区别。
5.寄存器相对寻址方式
操作数在存储器中,操作数的有效地址是一个基址寄存器(BXBR或变址寄存器的(SI、DI)内容加上指令中给定的8位或16位位移量之和。
即EA=(BX)或(BP)或(SI)或(DI)+8位或16位位移量
在一般情况下,如果SI、DI或BX的内容作为有效地址的一部分,那么引用的段寄存器是
DS如:
MOVAX,[DI+1223H];
引用的段寄存器是DS
假设,(DS=5000H,(DI)=3678H那么,存取的物理存储单元地址是5489BH再假设该字存储单元的内容是55AAH那么在执行该指令后,(AX)=55AAH
而当BP的内容作为有效地址一部分时,那么引用的段寄存器是SSJ口:
M0出X,[BP-4];
引用的段寄存器是SS
当然也可以自行指定段寄存器,如:
MOVES:
[BX+5],AL;
引用ES作为段寄存器
这种寻址方式同样可用于表格处理,表格的首地址可设置为指令中的位移量,利用修改基址或变址寄存器的内容来存取表格中的项值。
以下两种写法等价:
MOVAX,[SI+3]
MOVAX,3[SI]
6.基址变址寻址方式
操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容
相加得到。
即:
EA=(BX)或(BP)+(SI)或(DI)
在一般情况下,如果BP的内容作为有效地址的一部分,则以SS的内容作为段值,否则以DS的内容作为段值。
当所得的有效地址超过FFFFFH寸,就取其64K的模。
MOVAX,[BX+DI];
此时引用DS段寄存器
假设,(DS=5000H,(BX=1223H,(DI)=54H那么,存取的物理存储单元地址是
51277H再假设改字存储单元的内容是168H,那么在执行该指令后,(AX)=168H当然,还可以增加段超越前缀来指定段寄存器。
MOVAX,ES:
[BX+SI];
弓I用ES作为段寄存器
MOVDS:
[BP+SI],AL;
弓|用DS作为段寄存器
这种寻址方式适用于数组或表格处理。
用基址寄存器存放数组首地址,而用变址寄存器来定位数组中的各元素,或反之。
另外,以下两种表示方法是等价的:
MOVAX,[BX+DI]
MOVAX,[DI][BX]
7.相对基址变址寻址方式
及指令中给定的8位或16位位位移量相加得到。
EA=(BX)或(BP)+(SI)或(DI)+8
位或16位位移量。
在一般情况下,如果BP作为有效地址的一部分,则以SS段寄存器的内容为段值,否则以DS段寄存器的内容为段值。
在指令中给定的8位或16位位移量采用补码形式表示。
在计算有效地址时,如果偏移量是8位,那么被带符号扩展成16位。
当所得的有效地址超过FFFFH时,就取其64K的模。
MOVAX,[BX+DI-2];
假设,(DS=5000H,(BX)=1223H,(DI)=54H,那么,存取的物理存储单元地址
是51275H再设该字存储单元的内容是7654H,那么在执行该指令后,(AX)=7654H以下四种表示方法均是等价的:
MOVAX,[BX+DI+1234H]
MOVAX,1234H[BX+DI]
MOVAX,1234H[BX][DI]
MOVAX,1234H[DI][BX]尽管相对基址变址这种寻址方式最复杂,但也是最灵活的。
2.判断下列指令的对错;
若有错,简述原因(3分)
(1)MOVAX,[BX][BP]
错。
对存储单元寻址时,BX和BP不能同时出现在[]中。
(2)MOV[1000H],[SI]错。
存储单元之间不能直接传送数据。
(3)MOVAL,0200H
原操作数和目的操作数长度不一致。
(如果AL改为AX或者0200H改为02H就
正确了)
3.判断以下指令格式是否正确,若错误,请说明理由。
(4分)
(1)MOVDS,1000H
错误,不能将立即数直接送入段寄存器。
(2)MOVAX,[SI+DI]错误,基址变址寻址方式方括号里不能同时出现同组寄存器(所谓同组寄存器就是BI和BP,SI和DI,但是不同组的例如BI和SI就可以了)。
(3)PUSHAL
错误,堆栈操作指令不能处理字节数据(应把AL改为AX)。
(4)OUT310H,AL
错误,直接端口寻址的端口地址不能超过FFH(255H)。
4.判断下列指令的对错;
若有错,简述原因(3分)
(1)MOV[DI],[BX]
错,两个存储单元之间不能直接传送数据
(2)PUSHAL
错误,堆栈操作指令不能处理字节数据(应把AL改为AX)
(3)JMP0100H
正确
三、简答题部分关于中断的题
1.若对应中断类型号为30H的中断服务程序存放在2300H:
3460H开始的区域中,画
出该中断向量在内存中的存放形式?
试编写一程序段完成该中断向量的设置。
(5分)
(1)画中断向量在内存中的存放图(2分)
中断类型号为30H,则中断向量地址为3.0*4=|120=C0H则初地址为OOOCOH然后就是入栈
过程,先存储的是偏移地000C0H
60H
址,然后是逻辑地址
34H
先是存放低八位,再存放咼八位
00H
23H
(2)中断向量设置程序段(3分)
1、中断请求;
2、中断响应
3、保护断点
4、转入执行终端服务子程序
2.简述可屏蔽中断处理的过程。
(3分)
5、保护中断现场
&
中断处理
7、恢复现场
8、中断返回
3.中断类型号的获取方式有哪几种?
中断类型号与中断向量在中断向量表中存放地址的关系如
何?
假设中断类型号为30H,中断服务程序入口处标号为PRO,写出设置中断向量的程序段。
(8
分)
对于专用中断:
除法出错、单步中断、不可屏蔽中断、断点中断和溢出中断,由CPU分别提供中断类型号0~4;
对于用户自己定义的软件中断INTn,类型号由n决定;
对于INTR弓I脚上的中断:
1)有硬件电路设计产生中断类型号,2)用8259A获取中断类型号若中断类型号为n,则中断向量在内存单元中的存放地址为4n~4n+3单元.
n=30H的中断向量设置:
4.简述一般子程序调用过程和矢量中断服务子程序调用过程的主要异同。
同:
都要保护断点,程序流程转向相应的子程序去执行且执行完后都要返回。
(2分)
异:
一般子程序入栈保护的是IP或CS和IP,中断服务子程序入栈入栈保护的是Flags、CS和IP;
一般子程序的返回指令为RET中断服务子程序的返回指令为IRET。
5.CPU响应可屏蔽中断请求的条件是什么?
(1)外设提出中断请求
(2)本中断未被中断控制器屏蔽
(3)本中断优先级最高
(4)CPU允许中断
1.某程序数据段中存放了2个字,1234H和5060H,已知DS=7850H数据存放的偏移地址为3121H及285AH试画图说明它们在存储器的存放情况,若要读取这两个字,需要对存储器进行几次操作?
(1)计算2个字的物理地址
第1个字:
7850HX10H+3121H=7B621H
第2个字:
7850HX10H+285AH=7AD5AH
(2)画存储器分布图
(2分,每字存储1分)
7AD5AH
50H
7B621H
12H
注:
不计算物理地址「直接用逻辑地址表示存储单元也可以
(3)操作次数
(1分)
从7B621H这个奇地址单元读取一个字需要访问2次存储器,从7AD5AH偶地址单元读取一
个字需要访问1次存储器,所以共需要对存储器进行3次操作。
9.已知8255A的接口电路如下图所示,端口地址分别为:
80H~83H,编写程序段实现用4个
LED反映4个开关的状态。
要求:
开关合上灯亮,开关断开灯灭。
(5分)
程序片段:
MOVAL,90H
OUT83H,AL
INAL,80H
MOVCL,4
SHRAL,CL
NOTAL
D7-0
<
=^>
PB3
PB2
IOW
O
WR
PB1
PB0
IOR
——-■
RD
A1
PA7
Ao
PA6
80H〜83H
_O
cS
PA5
PA4
8255A
—L0
+5v丄丄
1t+5v\K
丄T+5v1K1
1+5v
K0
OUT81H,AL
2.指令的执行是通过译码产生有效的电平驱动三总线,完成相应的功能。
请简述指令
MOV
AX,[2000H]的执行过程(需说明BHE、ALE、M/IO、RD引脚上的有效电平和作用)。
(4分)
指令译码,输出20位物理地址,BHE=0,配合ALE=1时锁存地址,M/IO=1选通存储器,
RD=0时控制读选通,奇地址和偶地址存储体同时选通,16位数据通过数据总线送入CPU的
AX寄存器。
3.查询式输入方式的接口电路如下图所示,请简述它的工作过程。
—
―K
数据
数拡
―1/
缓冲器
-V
输入
(«
)
宿位)
JRD(辿数据)
D7-D0
选通信弓D触发器
pcSI
——/RD(读状态)
/CS2
VO
译码
—M//[O
A15-AO
查询方式输入接口电路
查询式输入:
外设准备数据,准备就绪后发状态信号Ready=1,CPU在此期间不断查询外
设状态端口,当Ready=1时,从数据缓冲器读取数据,并且清除状态标志,使Ready=0,为下
一次数据传送做准备。
评分标准:
外设准备数据,状态信号Ready置位1分;
读状态1分;
判断状态1分;
读数据清状态信号1分。
4.在计算机中带符号数都是以补码形式进行存储和运算的,减法可以用补码加法的方式去实
现。
请用8位带符号数补码加法计算表达式15-8的结果,给出计算过程,并分析运算后标
志寄存器中SF、PF、ZF、OF的状态。
(5分)
00001111(15补码)+11111000(-8补码)100000111(7补码)
SF=0,PF=0,ZF=0,OF=0
3.画图说明下面语句所分配的存储空间及初始化的数据值。
4.给定一个堆栈存储区,其地址为1270H:
0000R1270H:
0100HSS=1270HSP=0052H问:
(1)栈顶的逻辑地址是多少?
(2)栈底的物理地址是多少?
(3)若压入数据1234H,数据在内存中如何存放?
此时SP的值是多少?
(1)栈顶逻辑地址是1270H0052H
(2)栈底偏移地址0100H,栈底逻辑地址1270H,则栈底的物理地址为1270*10+0100=12800H
(3)
SP=0050H
5.已知DS=3000H在物理地址为34780H的内存单元中存放有字节数据20H,要求采用3种不同的寻址方式将该字节数据送入寄存器AL中,试写出寻址方式的名称及相应的程序片段。
由于物理地址=34780”且DS=3000H所以EA=34780H-3000*10H=4780H
(1)直接寻址
MOVAL,[4780H]
(2)寄存器间接寻址
MOVBX,4780H
MOVAL,[BX]
(3)寄存器相对寻址
MOVBX,4700H
MOVAL,[BX+80H]
9.简述指令性语句和伪指令语句的主要差别,并列出汇编语言中常用的伪指令。
(1)主要差别
指令性语句:
有对应的机器码,在程序运行时执行指令性语句;
伪指令语句:
没有对应的机器码,汇编过程中执行伪指令语句
(2)常用的伪指令
DB、DWEQUSEGMENT…ENDSASSUMEPROG•…ENDPORGEND
10.下图为8088最小系统与某存储芯片构成的RAM存储器系统。
(1)说明一片RAM芯片的存储容量为多少?
(2)计算该存储器区的总容量为多少?
(3)说明每片RAM芯片的地址范围?
10:
1024
(3)1#芯片地址范围:
00000H~003FFH
(1)存储容量为:
1KX8或1KB
(2)总容量为:
2KX8或2KB
2#芯片地址范围:
00400H~007FFH