微机原理期末考试试题及答案.docx
《微机原理期末考试试题及答案.docx》由会员分享,可在线阅读,更多相关《微机原理期末考试试题及答案.docx(14页珍藏版)》请在冰豆网上搜索。
微机原理期末考试试题及答案
1.8086的数据线为16位,地址线为20位,I/O口使用16位地址线。
2.在某进制的运算中7×3=33,则7×5=_55。
3.用8位二进制数表示整数时,十进制数(-128>的补码为_10000000_。
原码为无,反码为无。
m1fy1m5Kqv
3.8086内部寄存器长度为16位,通用寄存器有8个,段寄存器有4个。
4.8086偶存储体的选片信号是A0,奇存储体的选片信号是BHE。
5.MOVAX,[BX+SI]的源操作数是基址变址寻址方式,目的操作数是寄存器寻址方式。
m1fy1m5Kqv
6.8086可以指向堆栈的指针寄存器有bp和sp。
7.程序中段定义结束的伪指令是ENDS,子程序定义结束的伪指令是ENDP。
8.EEPROM的擦除方法为点擦除.
9.下列指令段经汇编后,DATA所代表的偏移地址为_100CH__。
ORG1000H
STROEDB12DUP(?
>
DATADB05H,06H,07H,08H
1.8086/8088在不考虑段跨越情况下,DI寄存器给出的偏移地址位于_C__。
A.仅DS段B.DS或SS段C.DS或ES段D.DS或CS段
2.下列指令中格式错误的是___A___。
A.SHLAL,CXB.XCHGAL,BL
C.MOVBX,[SI]D.ANDAX,BX
3.设(20010H>=3FH,(20011H>=B2H,执行下列指令段后,BX=____B__。
MOVAX,2000H
MOVDS,AX
MOVBX,[0010H]
A.B2B2HB.B23FHC.3F3FHD.3FB2H
4.若SP=0124H,SS=3300H,在执行INT60H这条指令后,堆栈栈顶的物理地址为___D___。
m1fy1m5Kqv
A.3311CHB.33120HC.33122HD.3311EH
5.下列指令中格式错误的是_C__。
A.MOVAX,357AH[BX][DI]B.OUTDX,AL
C.LEAAX,50H[BX][BP]D.RCRBX,1
6.下列指令中允许寻址范围最大的是_D__。
A.JNZNEXTB.LOOPNEXT
C.JMPSHORTPTRNEXTD.CALLNEARPTRNEXT
7.8086/8088不属于BIU部分的寄存器是__D____。
A.IPB.ESC.DSD.SP
8.8086/8088最大模式比最小模式在结构上至少应增加___B_。
A.中断优先级控制器B.总线控制器
C.数据驱动器D.地址锁存器
9.8086在存取存贮器中以偶地址为起始地址的字时,M/IO、BHE、A0的状态分别是____D__。
m1fy1m5Kqv
A.0,0,1B.1,0,1C.1,1,0D.1,0,0
10.一个半导体存贮芯片的引脚有A13~A0,D3~D0,WE,OE,CS,VCC,GND等,该芯片存贮容量为____C__。
m1fy1m5Kqv
A.8K×8B.8K×4C.16K×4D.16K×8
1.写出8086CPU所含14个寄存器的英文标识及中文名称。
CS16位代码段寄存器DS16位数据段寄存器SS16位堆栈段寄存器ES16位附加段寄存器AX累加寄存器BX基址寄存器CX计数寄存器DX数据寄存器SP堆栈指针寄存器BP基址指针寄存器SIDIm1fy1m5Kqv
2.写出8086的7种寻址方式。
3.在8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量0060H,指出下列指令的目标操作数的寻址方式,若目标操作数为存储数操作数,计算它们的物理地址。
m1fy1m5Kqv
MOV[BX][SI],AX
MOVES:
[SI],AX
MOVVAR,8
MOVBX,12
MOV6[BP+SI],AX
4.给定=0300H,在段地址为1000H及偏移地址为0005H的单元中有一条双字节CALL指令近调用某个子程序,试问执行CALL指令后,SP,SS的内容是什么?
画出堆栈的内容并标出地址。
m1fy1m5Kqv
5.某8088系统的内存贮器的译码器采用了一片74LS138,实现全译码方式,请分析四个输入端Y0~Y3所控制的地址范围是多少?
它适合多大容量的存贮器芯片?
该存贮器的总容量是多少?
m1fy1m5Kqv
★正数的反码与原码相同;
★负数的反码,是原码的符号位不变,其它各位求反。
x0≤x≤2n-1–1
[x]反=
2n–1-|x|-(2n-1–1>≤x≤0
3.补码
x0≤x<2n-1–1
[x]补=
2n+x-2n-1≤x<0
★正数的补码与原码相同
★负数的补码是:
原码的符号位不变,其余各位求反加1。
补码简单求法
(1>符号位不变,数值部分从低位开始向高位逐位行进,在遇到第一个1以前,包括第一个1按原码照写;第一个1以后,逐位取反。
IIrYflfMpo
例:
[x]原=10011010
↓↓↓↓↓↓↓↓
[x]补=11100110
↑↑↑
不变求反不变
[-128]补=[-127-1]补=[-127]补+[-1]补=10000000
3.补码运算溢出判别
运算结果,超出了计算机所能表示的数的范围称为溢出。
例:
73+72=145>127
[x]补=01001001(+73>
+[y]补=01001000(+72>
10010001
补码运算发生溢出情况:
1.同号数相加,可能溢出;
2.异号数相减,可能溢出。
2.1.1计算机硬件基本结构
由运算器、控制器、存储器、输入设备和输出设备等五个基本部分组成。
微型计算机的分类
按用途分:
•通用微型计算机
•嵌入式计算机
按微型计算机的组成和规模分:
•多板机
•单板机
•单片机
•微机的系统总线按功能分成三组:
•数据总线DB:
地址总线AB:
控制总线CB:
8086是Intel系列的16位微处理器,有16根数据线和20根地址线。
因为可用20位地址,所以可寻址的地址空间达220即1M字节单元。
IIrYflfMpo
总线接口部件段寄存器、指令指针寄存器IIrYflfMpo
执行部件EU:
负责指令的执行,包括通用寄存器、专用寄存器、标志寄存器及ALU等部分组成。
CS:
16位代码段寄存器DS:
16位数据段寄存器SS:
16位堆栈段寄存器
ES:
16位附加段寄存器
AX:
累加器BX:
基址
计数DX:
数据SP:
堆栈指针寄存器BP:
基址指针寄存器
SI:
源变址寄存器DI:
目的变址寄存器
Flag:
状态标志寄存器IP:
指令指针寄存器
假设CS=8211H,IP=1234H,则该指令单元的20位物理地址为:
PA=8311H×10H+1234H=83110H+1234H=84344HIIrYflfMpo
物理地址=段基址×10H+偏移地址
CS×16+IP
SS×16+SP(BP>
DS(ES>×16+SI(DI>
1.指令
指令是计算机能够识别和执行的指挥计算机进行操作的命令。
计算机是通过执行指令序列来解决问题的。
指令系统是指微处理器能执行的各种指令的集合。
不同的微处理器有不同的指令系统。
计算机指令码由操作码字段和操作数字段两部分组成。
操作码字段指出所要执行的操作,而操作数字段指出指令操作过程中需要的操作数。
IIrYflfMpo
2.操作数
操作数是指令的操作对象。
8086/8088指令系统中的操作数分为两类:
数据操作数、转移地址操作数。
(1>数据操作数
按存储位置,数据操作数分为:
立即数、寄存器操作数、内存操作数、I/O操作数。
1>立即数:
指令中直接给出操作数本身。
2>寄存器操作数:
即操作对象是寄存器中的内容。
例上述指令中AL为寄存器操作数。
3>内存操作数:
也称为存储器操作数,操作对象是内存中的数。
4>I/O操作数:
指令中要操作的数据来自或送到I/O端口。
(2>转移地址操作数
这类操作数出现在程序跳转或程序调用指令中,指出程序要转移的目的地址。
它也可以分为:
立即数、寄存器操作数、存储器操作数,即要转移的目标地址包含在指令中或存放在寄存器、内存储器中IIrYflfMpo
1立即寻址
MOVAX,1234H;AX←1234H
2寄存器寻址
MOVDX,AX;DX←AX
注意:
(1>当指令中的源操作数和目标操作数均为寄存器时,必须采用同样长度的寄存器;
(2>两个操作数不能同时为段寄存器;
(3>目标操作数不能是代码段寄存器除以上两种寻址方式外,下面5种寻址方式的操作数均在存储器中,统称为内存寻址方式。
当采用内存操作数时,必须注意双操作数指令中的两个操作数不能同时为内存操作数。
IIrYflfMpo
3直接寻址
(1>MOVAX,[2000H];AX←(DS:
2000H>
(2>MOV[1200],BL;(DS:
1200H>←BL
(3>MOVES:
[0100],AL;(ES:
0100H>←AL
说明:
DS:
2000表示内存单元地址;
(DS:
2000>表示地址是DS:
2000的内存单元内容。
4寄存器间接寻址
8086/8088中可用于间接寻址的寄存器有基址寄存器BX、BP和变址寄存器SI、DI。
为区别于寄存器寻址,寄存器名要用“[]”括起。
IIrYflfMpo
例:
MOVAX,[SI];AX←(DS:
SI+1,DS:
SI>
有效地址EA计算方法如下:
物理地址PA计算方法如下:
物理地址=DS×10H+SI或DI或BX
或
物理地址=SS×10H+BP
注意:
不同的寄存器所隐含对应的段不同。
采用SI、DI、BX寄存器,数据存于数据段中;采用BP寄存器,数据存于堆栈段中。
IIrYflfMpo
5寄存器相对寻址
操作数的有效地址:
EA1=SI/DI/BX+8位disp/16位disp(disp代表偏移量>
或EA2=BP+8位disp/16位disp
操作数的物理地址:
PA1=DS×10H+EA1
或PA2=SS×10H+EA2
(1>偏移量是有符号数,8位偏移量的取值范围为:
00~FFH(即+127~-128>;16位偏移量的取值范围为:
0000~FFFFH(即+32765~-32768>。
IIrYflfMpo
(2>IBMPC汇编允许用三种形式表示相对寻址,它们的效果是一样的,如:
MOVAX,[BX]+6;标准格式
MOVAX,6[BX];先写偏移值
MOVAX,[BX+6];偏移值写在括号内
6基址变址寻址
操作数的有效地址为:
EA1=BX+SI/DI
或EA2=BP+SI/DI
当基址寄存器选用BX时,数据隐含存于数据段中;当基址寄存器选用BP时,数据隐含存于堆栈段中,即操作数的物理地址为:
IIrYflfMpo
PA1=DS×10H+EA1
或PA2=SS×10H+EA2
7相对基址变址寻址
操作数的有效地址为:
EA1=BX+SI/DI+8位/16位disp
或EA2=BP+SI/DI+8位/16位disp
当基址寄存器选用BX时,数据隐含存于数据段中;当基址寄存器选用BP时,数据隐含存于堆栈段中,即操作数的物理地址为:
IIrYflfMpo
PA1=DS×10H+EA1
或PA2=SS×10H+EA2
8086/8088指令系统按其功能可分6类:
1.数据传送指令
2.算术运算指令
3.逻辑指令
4.串操作指令
5.控制转移指令
6.处理机控制指令
①MOV指令传送数据的位数由寄存器或立即数决定,dst和src数据位数必须相同。下面的一些用法是错误的:
IIrYflfMpo
MOVES,AL;
MOVCL,4321H。
②MOV指令中的dst和src两操作数中必有一个是寄存器,不允许用MOV实现两存储单元间的传送。若需要时,可借助一个通用寄存器为桥梁,即:
IIrYflfMpo
MOVAL,[SI];通过AL实现(SI>和(DI>所指的两存储单元间的数据传送
MOV[DI],AL。
③不能用CS和IP作目的操作数;
④不允许在段寄存器之间直接传送数据;
⑤不允许用立即数作目的操作数;
⑥不能向段寄存器送立即数,要对段寄存器初始化赋值,必须通过CPU的通用寄存器。
例如:
MOVAX,DATA;将数据段地址DATA通过AX装入DS中
MOVDS,AX。
例:
以下指令均为合法的传送指令,括号中为目标操作数与源操作数的寻址方式。
1>MOVAL,5;(寄存器,立即数>
2>MOVAX,BX;(寄存器,寄存器>
3>MOVDS,AX;(段寄存器,寄存器>
4>MOVAX,DS;(寄存器,段寄存器>
5>MOVES:
VAR,12;(存储器,立即数>
6>MOVWORDPTR[BX],12;(存储器,立即数>
其中:
VAR为符号地址;WORDPTR指明存储器的属性是字属性。
>进栈指令PUSH
格式:
PUSHsrc
src可以是:
r16、seg、m16
功能:
堆栈指针减2,并将寄存器、段寄存器或存储器中的一个字数据压入堆栈。
即:
①SP←SP-2
②(SP+1,SP>←(src>
执行过程可描述为:
先减后压
>出栈指令POP
格式:
POPdest
dest可以是:
r16(除CS外>、seg、m16
功能:
将栈顶元素弹出送至某一寄存器、段寄存器(除CS外>或存储器,堆栈指针加2。
即:
①(dest>←(SP+1,SP>
②SP←SP+2
执行过程可描述为:
先弹后加
由于XCHG指令不允许同时对两个存储单元进行操作,因而必须借助于一个通用寄存器。
①先把一个存储单元中的数据传送到通用寄存器;②再将通用寄存器中的内容与另一个存储单元内容进行交换;③把通用寄存器中的内容回传给第一个存储单元。
IIrYflfMpo
换码指令XLAT
格式:
XLAT
源操作数、目标操作数均隐含。
功能:
把数据段中偏移地址为BX+AL的内存单元的内容传送到AL中,即:
AL←(BX+AL>。
1>对外设端口操作时,当端口地址在0~255范围内,寻址方式可选用直接寻址,也可选用间接寻址;当端口地址大于255时,只能选用间接寻址,并且地址寄存器只能用DX。
IIrYflfMpo
(2>数据寄存器只能用AL(字节操作>或AX(字操作>。
当使用AX时,对IN指令来说:
是将port或DX所指向的端口数据读入AL,将port+1或DX+1所指向的端口数据读入AH;对OUT指令来说:
是将AL寄存器内容送port或DX所指向的端口,将AH寄存器内容送port+1或DX+1所指向的端口。
IIrYflfMpo
数据传送指令除SAHF、POPF指令对标志位有影响外,其余指令对标志位无影响。
串操作指令共有5条,串传送指令MOVS、串装入指令LODS、串送存指令STOS、串比较指令CMPS、串扫描指令SCAS。
IIrYflfMpo
控制转移指令包括:
转移指令、循环控制指令、过程调用指令和中断指令等4类。
(1>中断调用指令INTn
格式:
INTn
功能:
产生一个类型为n的软中断
操作:
①标志寄存器入栈;
②断点地址入栈,先CS入栈,后IP入栈;
③从中断向量表中获取中断服务程序入口地址,即:
IP←(0000:
4n+1,0000:
4n>
CS←(0000:
4n+3,0000:
4n+2>
(2>溢出中断指令INTO
格式:
INTO
功能:
检测OF标志位,当OF=1时,产生中断类型为4的中断;当OF=0时,不起作用。
操作:
①标志寄存器入栈;
②断点地址入栈,先CS入栈,后IP入栈;
③从中断向量表中获取中断服务程序入口地址,即:
IP←(0000:
0011H,0000:
0010H>
CS←(0000:
0013H,0000:
0012H>
>中断返回指令IRET
格式:
IRET
功能:
从中断服务程序返回断点处,继续执行原程序。
IRET指令是中断服务程序执行的最后一条指令。
操作:
①断点出栈,先IP出栈,后CS出栈;
②标志寄存器出栈;
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。