微机原理期末考试复习资料本文档格式.docx
《微机原理期末考试复习资料本文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理期末考试复习资料本文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
9.EEPROM的擦除方法为点擦除.
10.下列指令段经汇编后,DATA所代表的偏移地址为_100CH__。
ORG1000H
STROEDB12DUP(?
)
DATADB05H,06H,07H,08H
11.8086/8088在不考虑段跨越情况下,DI寄存器给出的偏移地址位于_C__。
A.仅DS段B.DS或SS段C.DS或ES段D.DS或CS段
12.下列指令中格式错误的是___A___。
A.SHLAL,CXB.XCHGAL,BL
C.MOVBX,[SI]D.ANDAX,BX
13.设(20010H)=3FH,(20011H)=B2H,执行下列指令段后,BX=____B__。
MOVAX,2000H
MOVDS,AX
MOVBX,[0010H]
A.B2B2HB.B23FHC.3F3FHD.3FB2H
14.若SP=0124H,SS=3300H,在执行INT60H这条指令后,堆栈栈顶的物理地址为___D___。
A.3311CHB.33120HC.33122HD.3311EH
15.微机的基本结构由硬件和软件两大部分组成。
其中硬件由CPU、存储器、接口,总线和输入/输出设备等部分组成。
16.下列指令中格式错误的是_C__。
A.MOVAX,357AH[BX][DI]B.OUTDX,AL
C.LEAAX,50H[BX][BP]D.RCRBX,1
17.8086的通用寄存器包括数据寄存器AX、BX、CX、DX;
地址指针寄存器SP和IP,变址寄存器SI和DI。
18.下列指令中允许寻址范围最大的是_D__。
A.JNZNEXTB.LOOPNEXT
C.JMPSHORTPTRNEXTD.CALLNEARPTRNEXT
19.指出下列指令中源操作数的寻址方式:
①MOVBX,[4000H]直接寻址
②MOVAX,[BP][DI]基址变址寻址
③MOV[BP],CX寄存器寻址
④MOVBX,[DI]寄存器间接寻址
⑤MOVCX,DATA[SI]变址寻址
20.8086/8088不属于BIU部分的寄存器是__SP__。
21.8086/8088最大模式比最小模式在结构上至少应增加总线控制器
22.8086在存取存贮器中以偶地址为起始地址的字时,M/IO、BHE、A0的状态分别是1,0,0
23.一个半导体存贮芯片的引脚有A13~A0,D3~D0,WE,OE,CS,VCC,GND等,该芯片存贮容量为16K×
4。
24.状态标志位中CF是进位标志位,OF是溢出标志位。
2.从功能结构上来说,8086CPU主要由执行单元EU和总线接口单元BIU两大功能单元组成,其中,BIU负责与总线相关的操作;
EU负责指令的执行。
25.8086的段寄存器包括DS、CS、SS和ES。
26.现有(DS)=3000H,(BX)=0200H,(SI)=0002H,(30100H)=12H,(30201H)=34H,(30202H)=56H,(30203H)=78H,(31200H)=2AH,(31201H)=4CH,(31202H)=0B7H,(31203H)=65H,试说明单独执行下列指令后,AX或AL寄存器中的内容。
①MOVAX,1000H;
(AX)=1000H
②MOVAX,BX;
(AX)=0200H
③MOVAX,[BX];
(AX)=(23)
④MOVAX,1102H[BX];
(AX)=(24)
⑤MOVAL,[BX+SI];
(AL)=(25)
27.填入适当指令,使下面程序实现用移位、传送、加法指令完成(AX)与10相乘运算:
SHL
AX,01H
MOV
DX,AX
CL,02H
AX,CL
ADDAX,DX
28.某存贮器单元的实际地址为2BC60H,该单元在段地址为2AFOH中的偏移地址是0D60H。
29.8086CPU复位后,寄存器中的值将进入初始态,问(CS)=0FFFFH,(IP)=0000H,(DS)=0000H。
30.若(AL)=01001001B,执行ADD
AL,AL指令后,再执行DAA命令,则(AL)=0100,1001
,(CF)=0
,(AF)=1
31.8086CPU使用20根地址线访问存储单元,最多可访问1M个字节单元。
32.DOS系统功能号应放在AH寄存器中。
33.总线从性能上分为总线从性能上分为AB、CB和DB。
34.8086有两种外部中断请求线,它们分别是INTR_和_NMI。
3、选择题
1.设CPU字长为8位,十进制数-26的原码为10011010B,则-26的补码为()。
A01100110BB10011011BC11100110BD111001012.设x=
2.8086CPU在进行无符号数比较时,应根据(
)标志位来判别。
A.CF和OF
B.CF和PF
C.CF和ZF
D.ZF和OF
3.如果在一个程序段开始执行之前,CS=3000H,IP=500H,则该程序段的第一个单元的物理地址是()。
A30500HB35000HC3050HD5000H
4.存储单元4600H:
0200H的偏移地址为()。
A4602HB46100HC4600HD0200H
5.执行下列程序后,(AL)=
。
MOV
AL,92H
SUB
AL,7lH
DAS
A.21
B.11
C.21H
D.11H
6.二进制数111010B转换成十进制数为()。
A57B58C59D60
7.下列指令中正确的是(
)。
A.MOV
AX[SI][DI]
B.MOV
BYTEPTR[BX],1000
C.PB8
EQU
DS:
[BP+8]
D.MOV
BX,OFFSET[SI]
8.二进制数00110110B转换成十六进制数为()。
A0B7HB0A7HC36HD97H
9.若已知SS=4000H,SP=0030H,AX=1200H,则执行指令PUSHAX后,SP和SS单元的内容分别为()。
A0048H,4000HB003EH,4000HC002EH,4000HD0052H,4000H
10.设(BL)=10011100B,执行ROLBL,1后,BL的内容为()。
A00111000BB00111001BC01001100BD01001110B
11.若AX、BX寄存器中的内容是有符号数,当AX的内容小于BX的内容时,转去执行L1,对应的程序段为()。
ACMPBX,AXBCMPBX,AX
JLL1JBL1
CCMPAX,BXDCMPAX,BX
JLL1JBL1
12.MOVAL,06H
ADDAL,08H
AAA
上述程序片段执行后AH和AL的内容分别为()。
A03H01HB01H04HC00H0DHD01H0DH
13.MOVAL,10H
MOVCL,06H
MULCL
上述程序片段执行后AL的内容为()。
A80HB02HC32HD60H
14.()可实现将AH的高4位取反,其余位不变。
AORAH,0FHBXORAH,0FH
CORAH,0F0HDXORAH,0F0H
15.在8086宏汇编过程中不会产生指令码,只用来指示汇编程序如何汇编的指令是
A.汇编指令
B.伪指令
C.机器指令
D.宏指令
16.PUSHAX
PUSHBX
POPAX
POPBX
上述程序段执行后AX、BX寄存器内容将会()。
A保持不变BAX、BX相同
CAX没变,BX=AXD将AX、BX内容相互交换
17.在CMPAX,DX指令执行后,当标志位SF、OF、ZF满足下列逻辑关系(SF⊕OF)+ZF=0时,表明(
A.(AX)>
(DX)
B.(AX)≥(DX)
C.(AX)<
D.(AX)≤(DX)
18.程序段如下:
XORAX,AX
MOVCX,10
SUBCX,AX
ADCAX,6
执行上述程序段后,AX、CX寄存器内容分别为()。
A0,1B1,0C10,6D0,0
19.下列程序段执行后,AX和CX寄存器的值为()。
MOVAX,0001H
MOVCX,000BH
LP:
INCAX
LOOPLP
AAX=0010HCX=0001HBAX=0011HCX=0000H
CAX=000AHCX=0001HDAX=000CHCX=0000H
20.程序段如下:
MOVAX,0
MOVCX,15
LOP:
DECCX
JNZLOP
执行后,AX、CX寄存器的内容分别是()。
A15、0B0、5C1、4D4、1
21.-46,y=117,则[x-y]补和[x+y]补分别等于(
A.D2H和75H
B.5DH和47HC.2EH和7lH
D.47H和71H
4、编程题
1.编程统计数据段中2000H开始的100个字节中负数的个数,统计结果放在BL中。
见书本P?
2.内存中有一个8位带符号数,求其绝对值,并将结果放回原处。
DATA2SEGMENT
MDB05H;
第二个程序换成-5,即0fbh
DATA2ENDS
CODE2SEGMENT
ASSUMECS:
CODE2,DS:
DATA2
START:
MOVAX,DATA2
MOVDS,AX;
送段地址至DS
LEASI,M;
取M的指针
MOVAL,[SI];
取带符号数
ANDAL,AL;
判断符号位
JNSDONE;
SF=0,转移到DONE
NEGAL;
SF=1,AL<
0,AL求
DONE:
MOV[SI],AL;
绝对值送回原内存单元
MOVDL,[SI]
ADDDL,30H
MOVAH,02H
INT21H;
系统功能调用,显示该数值
MOVAH,4CH
INT21H
CODE2ENDS
ENDSTART
3.两个5个字的无符号数分别存放在数据段中2000H和3000H开始的存储器中,编程将这两个数相加,并将结果存放在从3000H开始的存储单元中。
见上次分析
4.要求完成自然数1~100的累加和,结果送到SUM单元,设计实现该操作功能的源程序。
DATASEGMENT
SUMDW?
;
预留结果单元
CNEQU100;
设定计数终止值
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
START:
MOVAX,DATA;
初始化DS
MOVDS,AX
MOVAX,0;
累加器清零
MOVCX,1;
置循环计数初始值
LP:
ADDAX,CX;
求累加和
INCCX;
计数器加1
CMPCX,CN;
CX和终止值比较
JBELP;
小于等于终止值转循环入口LP
MOVSUM,AX;
超过计数终止值结果送SUM
MOVAH,4CH;
返回DOS
INT21H
CODEENDS
ENDSTART;
汇编结束
5编程将数据段5000H单元中的内容乘以18后,存放在2000H单元中,要求用移位指令实现。
6.若外设的中断类型号为6BH,设中断服务程序段地址是1000H,偏移地址为3000H。
设置中断向量表,编写程序段将该中断处理子程序的入口地址(中断向量)放入中断向量表。
CLI
MOVAX,,0
MOVDS,AX;
置数据段段基地址为0
MOVAX,3000H
MOV[6BH*4],AX;
MOVAX.1000H;
送双字
MOV[6BH*4+2l,AX
STI
7.已知单片6116芯片的地址线是11位,每个存储单元是8位,求其存储容量?
解:
因为可编址范围211,即M=211,每个存储单元可存8位,即N=8,
所以,6116的存储容量=211×
8=2×
1024×
8=2K×
8=2KB
4K×
8位8.P142掌握EPROM2732、2764、27128芯片
附上复习相关资料:
★正数的反码与原码相同;
★负数的反码,是原码的符号位不变,其它各位求反。
★正数的补码与原码相同
★负数的补码是:
原码的符号位不变,其余各位求反加1。
补码简单求法
(1)符号位不变,数值部分从低位开始向高位逐位行进,在遇到第一个1以前,包括第一个1按原码照写;
第一个1以后,逐位取反。
例:
[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字节单元。
总线接口部件(BIU):
段寄存器、指令指针寄存器(IP)、地址加法器、内部暂存器、指令队列及I/O控制逻辑等部分组成。
执行部件EU:
负责指令的执行,包括通用寄存器、专用寄存器、标志寄存器及ALU等部分组成。
CS:
16位代码段寄存器DS:
16位数据段寄存器SS:
16位堆栈段寄存器
ES:
16位附加段寄存器
AX:
累加器BX:
基址(Base)寄存器CX:
计数(Count)寄存器
DX:
数据(Data)寄存器
SP:
堆栈指针寄存器BP:
基址指针寄存器
SI:
源变址寄存器DI:
目的变址寄存器
Flag:
状态标志寄存器IP:
指令指针寄存器
假设CS=8211H,IP=1234H,则该指令单元的20位物理地址为:
PA=8311H×
10H+1234H=83110H+1234H=84344H
物理地址=段基址×
10H+偏移地址
CS×
16+IP
SS×
16+SP(BP)
DS(ES)×
16+SI(DI)
1.指令
指令是计算机能够识别和执行的指挥计算机进行操作的命令。
计算机是通过执行指令序列来解决问题的。
指令系统是指微处理器能执行的各种指令的集合。
不同的微处理器有不同的指令系统。
计算机指令码由操作码字段和操作数字段两部分组成。
操作码字段指出所要执行的操作,而操作数字段指出指令操作过程中需要的操作数。
2.操作数
操作数是指令的操作对象。
8086/8088指令系统中的操作数分为两类:
数据操作数、转移地址操作数。
(1)数据操作数
按存储位置,数据操作数分为:
立即数、寄存器操作数、内存操作数、I/O操作数。
1)立即数:
指令中直接给出操作数本身。
2)寄存器操作数:
即操作对象是寄存器中的内容。
例上述指令中AL为寄存器操作数。
3)内存操作数:
也称为存储器操作数,操作对象是内存中的数。
4)I/O操作数:
指令中要操作的数据来自或送到I/O端口。
(2)转移地址操作数
这类操作数出现在程序跳转或程序调用指令中,指出程序要转移的目的地址。
它也可以分为:
立即数、寄存器操作数、存储器操作数,即要转移的目标地址包含在指令中或存放在寄存器、内存储器中
1立即寻址
MOVAX,1234H;
AX←1234H
2寄存器寻址
MOVDX,AX;
DX←AX
注意:
(1)当指令中的源操作数和目标操作数均为寄存器时,必须采用同样长度的寄存器;
(2)两个操作数不能同时为段寄存器;
(3)目标操作数不能是代码段寄存器(CS)。
除以上两种寻址方式外,下面5种寻址方式的操作数均在存储器中,统称为内存寻址方式。
当采用内存操作数时,必须注意双操作数指令中的两个操作数不能同时为内存操作数。
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。
为区别于寄存器寻址,寄存器名要用“[]”括起。
例:
MOVAX,[SI];
SI+1,DS:
SI)
有效地址EA计算方法如下:
物理地址PA计算方法如下:
物理地址=DS×
10H+SI或DI或BX
或
物理地址=SS×
10H+BP
注意:
不同的寄存器所隐含对应的段不同。
采用SI、DI、BX寄存器,数据存于数据段中;
采用BP寄存器,数据存于堆栈段中。
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)。
(2)IBMPC汇编允许用三种形式表示相对寻址,它们的效果是一样的,如:
MOVAX,[BX]+6;
标准格式
MOVAX,6[BX];
先写偏移值
MOVAX,[BX+6];
偏移值写在括号内
6基址变址寻址
操作数的有效地址为:
EA1=BX+SI/DI
或EA2=BP+SI/DI
当基址寄存器选用BX时,数据隐含存于数据段中;
当基址寄存器选用BP时,数据隐含存于堆栈段中,即操作数的物理地址为:
7相对基址变址寻址
EA1=BX+SI/DI+8位/16位disp
或EA2=BP+SI/DI+8位/16位disp