微机原理及接口技术复习2106增加了部分答案.docx
《微机原理及接口技术复习2106增加了部分答案.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术复习2106增加了部分答案.docx(17页珍藏版)》请在冰豆网上搜索。
微机原理及接口技术复习2106增加了部分答案
微机原理与接口技术复习
一、考试要点:
1、填空:
数制转换,原码、补码、反码及BCD码,指令运用、物理地址计算
2、单项选择:
基本概念、指令分析与运用、接口芯片8255与8253控制字及编程
3、判断题:
基本概念
4、简答题:
基本概念、基本原理、8086CPU结构与内存组织、半导体存储器、I/O输入输出接口、接口芯片8255、8253
5、指令分析:
给出数据段和程序段指令,分析每步的执行后寄存器结果或整个程序执行后各寄存器的结果。
6、接口芯片编程题:
给出芯片功能要求,写出设置命令字的初始化程序段。
7、程序设计题:
给出数据段,按照要求编写应用程序。
二、复习要点
1、微处理器结构及原理(教材第1,2,4章)
8088CPU的结构、部件及其功能、工作模式、复位、存储器组织与物理地址计算(段地址结构),总线。
各种进制之间转换,数的机器码表示:
原码、反码和补码。
2、指令系统及汇编程序设计(教材第2,3章)
寻址方式(地址计算)、基本指令及功能(传送类、运算类、控制转移类、串操作)、数据定义伪指令、汇编程序结构,DOS功能调用(基本输入、输出)。
3、输入输出接口(教材第6章)
接口功能、I/O数据传送方式。
4、控制及接口芯片原理及编程(教材第8、10章)
8255、8253原理及编程(设置及应用编程)
5、D/A,A/D转换接口(一般了解)
6、主要指令:
传送类:
MOV,PUSH,POP,LEA
运算类ADD(ADC),SUB(SBB),CMP,INC,DEC,MUL,DIV,AND,OR,NOT,TEST,XOR,SHL,SHR,SAL,SAR,ROL,ROR,RCL,RCR
串操作类:
MOVS,LODS,STOS,CMPS,SCAS,REP(REPE,REPNE)
控制转移类:
JMP,条件转移,LOOP,JNC,JC,JNZ,JZ,CALL,RET,INT,IRET
三、题例(注意这里的题例,只是代表题型样例,不是说考题是从这里选出来的,请大家按复习要点系统复习)
(一)填空题例
1、(561)10=(1000110001)2=(1061)8=(231)16=(010101100001)BCD
(注:
3位二进制数对应一位八进制数。
4位二进制数对应一位十六进制数)
(78)=(01001110)原码=(01001110)反码=(01001110)补码
(-69)=(11000101)原码=(10111010)反码=(10111011)补码
(注:
1、首先变为二进制数:
(78)10=(+01001110)2(-69)10=(—1000101)2
2、再转变为相应编码(原则方法如下)
符号位:
最高位为符号位。
0:
正,1:
负
正数的原码,反码,补码都一样。
负数的原码:
数值部分与真值的二进制一样。
负数的反码:
数值部分与真值的二进制部分取反。
(0变1,1变0)
负数的补码:
数值部分与真值的二进制部分取反加1)
2、接口电路的作用是设备选择、数据缓冲、设备控制、信号变换和状态指示。
3、CPU与接口间传送的信号类型主要有地址信息、数据信息和状态信息。
4、80X86CPU中最多可寻址216个I/O端口,地址从0000H到0FFFFH。
5、一般接口设计中芯片的片选CS接高位地址译码而内部寄存器由低位地址决定
6、8086CPU中,若段地址为0BF00H,则该段的首地址为0BF000HH,最高地址
为0CEFFFH。
7、8086CPU中,若物理地址为0A4A60H,地址偏移量为84B0H,则段地址为9C5BHH。
8、8086指令系统的串操作指令中,源操作数的物理地址由寄存器DS左移四位与SI相加得到,目的操作数的物理地址由寄存器ES左移四位与DI相加得到。
9、使用ANDAX,00FFH指令可使寄存器AX的高8位清零,其他位不变,
使用ORAL,0F0H指令可使寄存器AL高4位置1,其他位不变,
使用XORAX,00FFH指令可使寄存器AX的低8位取反,其他位不变。
使用MOVAX,SS:
[560H]指令将SS:
560H单元内容传送到AX寄存器中,
使用MOV[560H],CX指令将寄存器CX的内容传送到DS:
560H单元中,
使用MOVCX,6734H指令将数据6734送入CX寄存器中。
使用INAL,60H指令将从端口地址60H输入数据到AL寄存器中。
(二)单项选择题例
1、将8255的C口的PC3置1,则写入8255的命令字为(C)。
A:
06HB:
03H
C:
07HD:
0AH
2、设8255的A口为基本输入/输出方式0输出,B口为选通方式一输入,C口高4位
为输入,低4位为输出,则方式控制字为(E)。
A:
0BEHB:
9EH
C:
90HD:
8EH
3、要使8253的一个通道定时达到1秒钟以上,则在CLK端输入的计时脉冲频率要小于(C)。
A:
1MHZB:
640KHZ
C:
64KHZD:
6.4KHZ
4、已知CPU的地址线为20根,则它能寻址的内存空间最大为(D)。
A:
16KB:
64K
C:
640KD:
1M
5、已知CPU的地址线为为A0~A13,则它能寻址的地址范围为(C)。
A:
0000~07FFHB:
0000~0FFFH
C:
0000~3FFFHD:
0000~FFFFH
6、一个字节为8位二进制数,作为无符号数,它能表示的最大值为(C)
A:
127B:
128
C:
255D:
256
7、CPU当前运行状态保存在(B)寄存器中。
A.IPB.标志寄存器C.累加器D.CS
8、8086CPU的20位程序地址由(C)决定。
A.CS寄存器B.SS和IP寄存器C.CS和IP寄存器D.DS和IP寄存器
9、下列80X86指令正确的是(A)。
A.POPAXB.MOVCS,0FF00H
C.MULAL,CLD.SHLAL,5
10、下列能够将AX寄存器清零的指令是(B)。
A.ANDAX,AXB.SUBAX,AX
C.NOTAXD.ORAX,AX
11、8255可编程并行接口中,可以进行双向数据传输的端口是(B)。
A.所有端口B.口AC.口BD.口C
12、已知8255的控制寄存器口地址为20H,则对口C的PC7位进行置1的正确指令是(B)。
A.MOVAL,07HB.MOVAL,0FH
OUT20H,ALOUT20H,AL
C.MOVCL,07HD.MOVCL,0FH
OUT20H,CLOUT20H,CL
(三)判断题例(正确的打√,错误的打×)
1、()并行通信的速率大于串行通信只是因为造价高,传送距离近。
2、()8255与外设之间不能采用应答方式工作。
3、()8255的三个端口都有三种工作方式。
4、()当计数时钟频率F=2MHZ时8253的一个定时/计数器无法完成一秒钟定时。
5、()80X86的中断向量表存放的是中断服务程序的入口地址。
6、()80X86中I/O端口地址是独立编址的,用IN和OUT专用指令访问。
7、()当指令的操作数为立即数时,指令执行时不需要再访问内存。
8、()堆栈采用的是“先进先出”的数据操作方式。
9、()伪指令可以产生机器码。
10、()当两数相加,最高位产生进位时,结果溢出。
(四)简答题例
1、8086主要有哪几部分组成?
各部分的功能是什么?
2、8086CPU中总线接口单元(BIU)的主要功能是什么?
3、什么是中断?
8086CPU的中断系统可以处理那几类中断?
4、8086的内存是如何组织的?
5、什么是逻辑地址?
什么是物理地址?
两者之间是什么关系?
6、8086有哪些段寄存器?
每个段寄存器的功能是什么?
7、半导体存储器有哪几种类型?
各有什么特点?
8、接口电路的主要功能是什么?
一般与CPU连接需要哪些信号?
9、输入/输出接口电路与外部设备间交换的信号有哪几种类型?
10、一般微机系统包括哪些部件,它们之间是采用什么方式连接的?
11、什么是堆栈?
堆栈的数据存储采用什么方式?
使用什么指令访问堆栈?
12、8255有几种工作方式?
各有什么特点?
13、8253有几种工作方式?
各有什么特点?
(五)接口编程题例
1、在8253的定时/计数器0的CLK0端输入频率为10KHZ的脉冲,要在OUT0输出频率为4HZ的方波,已知8253的口地址为280H~283H,请设计初始化程序。
2、在8253的定时/计数器1的CLK2端输入频率为100KHZ的脉冲,要在OUT2端输出20ms中断请求信号,已知8253的口地址为280H~283H,请设计初始化程序。
3、设8255的口A为工作在方式2,输入允许中断,口B为方式1输出,输出禁止产生中断,口C为输出,8255的端口地址为520~523H,请设计8255的初始化程序。
4、设8255的口A为工作在方式1的输出,禁止中断,口B工作在方式1输入,允许中断,口C为输出,8255的端口地址为530~533H,请设计8255的初始化程序。
(六)程序分析题例
请将程序每一步执行后的寄存器中的数据填到右边的括号里
数据定义
VAR1DB50H
VAR2DW3000H
STRDB‘95431’
程序片段
MOVBX,OFFSETSTR
MOVAL,[BX+2]AL=(34H)
ADDAL,VAR1AL=(84H);(34H+50H)
MOVDX,VAR2DX=(3000H)
DECDXDX=(2FFFH);(3000H—1)
ORAL,DHAL=(0AFH);(84HOR2FH)
CMPAL,05HAL=(0AFH);AL不变
XORCX,CXCX=(0000H)
DECCXCX=(0FFFFH);(0—1
SUBCX,DXCX=(0D000H);(0FFFFH—2FFFH)
MOVVAR2,CXVAR2=(0D000H)
解:
变量分配:
50H
00H
30H
39H
35H
34H
33H
31H
VAR1:
VAR2:
STR:
(七)汇编程序设计题例
1、将0000H:
3000H单元开始的十六个单元填入1——16。
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
PUSHDS
XORAX,AX
MOVDS,AX
MOVSI,3000H
MOVCX,16
AA1:
MOV[SI],AL
INCSI
INCAL
LOOPAA1
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
2、内存3000H单元放数据计数值,3001开始放数据,编一个程序统计数据区中的负数个数。
SSTACKSEGMENTSTACK
DW64DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDI,3000H;数据区首地址
MOVCL,[DI];取数据个数
XORCH,CH
MOVBL,CH
INCDI;指向第一个数据
A1:
MOVAL,[DI]
TESTAL,80H;检查数据首位是否为1
JEA2
INCBL;负数个数加1
A2:
INCDI
LOOPA1
MOV[DI],BL;保存结果
MOVAX,4C00H
INT21H;程序终止
CODEENDS
ENDSTART
指令分析:
1、写出将DS:
3766H单元内容送AL中的指令
写出将BX内容送ES:
3766H单元的指令
写出将2340H送CX的指令。
MOVAL,[3766H]
MOVBX,ES:
[3766H]
MOVCX,2340H
2、 将BX的D8~D12位清0
ANDBX,1110000011111111B
(ANDBX,0E0FFH)
3、写出指令中操作数寻址所使用的段寄存器
MOVAL,[357H] DS
ADD[DI],BXDS
ANDCL,[BP+69H] SS
STOSBES
地址计算:
巳知8086CPU中下列各寄存器的内容分别为:
CS=5340H,DS=0030H,SS=1230H,
IP=5220H,AX=3240H,BX=7240H,
BP=4B0H,SP=4690H,ES=3330H
1〉求当前指令单元地址和堆栈栈顶单元逻辑地址(有效地址)和物理地址。
2〉求下列各指令中操作数所在存储单元的逻辑地址(有效地址)和物理地址。
a.MOVAX,[4730H]
b.MOV[BX+4730H],AX
C.MOVAX,[BP+473H]
1>当前指令逻辑地址:
IP:
5220H
当前指令单元地址:
CS+IP:
53400H+5220H=58620H
堆栈栈顶单元逻辑地址:
SP=4690H
堆栈栈顶单元物理地址:
SS+SP=12300H+4690H=16990H
2>a.逻辑地址:
4730H
物理地址:
DS+4730H=00300H+4730H=04A30H
b.逻辑地址:
BX+4730H
=7240H+4730H=0B970H
物理地址:
DS+BX+4730H
=00300+7240H+4730H=0BC70H
c. 逻辑地址:
BP+473H
=4B0H+473H=923H
物理地址:
SS+BP+473H
=12300H+4B0H+473H=12C23H
变量定义及存储分配:
写出完成下列要求的变量定义语句,设变量VAR1的逻辑地址为2000:
0000,画出定义变量的逻辑分配图。
1)在VAR中定义字节变量:
23,23H,‘2’,‘3’,‘C’
2)在BUFR中保留4个字的存储空间
3)在BUFA中保存BUFFER的偏移地址
解:
定义变量 :
VAR DB 23,23H,‘2’,‘3’,‘C’
BUF DW 4 DUP(?
)
BUFA DW BUF
变量存储分配图:
17H
23H
32H
33H
43H
?
?
?
?
?
?
?
?
05H
00H
VAR:
2000H:
0000H
BUF:
2000H:
0005H
BUFA:
2000H:
000DH
程序分析:
写出下列程序段执行完后,AL,DL的内容,并指出程序完成的功能。
MOVCL,04
MOVAL,87H
MOVDL,AL
ANDAL,0FH
ORAL,30H
SHRDL,CL
ORDL,30H
解:
(AL)=37H(DL)=38H
将BCD码87的个位和十位转换成对应的ASCII码,并存放在AL,DL中。
接口芯片设置及编程:
一、8253计数器定时器:
假设8253占用的端口地址为180H-184H,CLK0和CLK2接8MHZ时钟,要求:
1)将计数器0设置时钟周期为1ms分频器,计数器2的设置为软件触发的选通信号发生器,设置完计数初值0.2ms后OUT2输出选通信号。
2)将OUT0接到计数器1的CLK1,计数器0工作方式同上,计数器1输出频率为1HZ的方波信号。
答案:
1)计数器0:
方式字00110100(34H)
初值:
8000
计数器2:
方式字10111000(0B8H)
初值:
1600
MOVDX,183H
MOVAL,34H
OUTDX,AL
MOVAL,0B8H
OUTDX,AL
MOVDX,180H
MOVAX,8000
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,182H
MOVAX,1600
OUTDX,AL
MOVAL,AH
OUTDX,AL
答案:
2)计数器0:
方式字00110100(34H)
初值:
8000
计数器1:
方式字01110110(076H)
初值:
1000
MOVDX,183H
MOVAL,34H
OUTDX,AL
MOVAL,076H
OUTDX,AL
MOVDX,180H
MOVAX,8000
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,181H
MOVAX,1000
OUTDX,AL
MOVAL,AH
OUTDX,AL
二、8255并行接口芯片
设某8255并行接口芯片的端口地址为140H~143H,根据下列设置要求对芯片编程:
1)将A口设为选通方式的输出口,并允许中断;B口设为选通方式的输入口,PC5,PC4设为输出。
2)将A口设为双向传输方式,禁止输出中断产生,允许输入中断产生,B口设为选通输入方式,并允许中断产生。
答案:
1)方式控制字:
10100110(0A6H)
A口允许中断(PC6=1):
00001101(0DH)
MOVAL,0A6H
MOVDX,143H
OUTDX,AL
MOVAL,0DH
OUTDX,AL
2)方式控制字:
11000110(0C6H)
A口禁止输出中断(PC6=0):
00001100(0CH)
A口允许输入中断(PC4=1):
00001001(09H)
B口允许输入中断(PC2=1):
00000101(05H)
MOVAL,0C6H
MOVDX,143H
OUTDX,AL
MOVAL,0CH
OUTDX,AL
MOVAL,09H
OUTDX,AL
MOVAL,05H
OUTDX,AL