微机原理及应用复习
主要章节
微机及微处理器结构及原理
8088CPU的主要部件及其功能、工作模式、复位、存储器组织与物理地址计算。
指令系统及汇编程序设计
寻址方式(地址计算)、基本指令及功能(传送、运算、串操作、控制转移)、数据定义伪指令、汇编程序结构。基本DOS功能调用(键盘输入、显示、设置中断向量)
微机和外设的数据传输
接口功能、I/O数据传送方式 。
控制及接口芯片原理及编程
8253、8255、8251,8259,8237设
置及应用编程)
考试题型 填空、地址计算、简答、指令和程序的分析、芯片编程设置、程序设计。
填空:指令分析,基本概念
地址计算:根据寄存器的内容及指令寻址方式,计算单元的逻辑地址和物理地址。
简答:基本概念、基本原理
指令分析:①给出功能要求,写出指令实现。
②给出指令,分析功能、计算地址。
程序分析:分析程序段的功能和执行结果
芯片编程设置:给出芯片功能要求,写出设置命令字及程序段。
程序设计:根据要求编写程序。
例题
填空题
1、8086CPU中,若DS的内容为4300H,则数据段的首单元物理地址为 H,数据段最后单元物理地址为 H。
2、8086CPU中,若物理地址为063C74H,地址偏移量为4344H,则段地址为
H。
3、8086指令系统的串传送指令中,目的操作数的物理地址由寄存器 ES*16 与 DI 相加得到,源操作数的物理地址由寄存器 DS*16 与 SI 相加得到。
4、CPU与接口间传送的信号类型主要有控制信息、 数据信息 和 状态信息 。
5、 使用 AND AX,0FFH 指令可使寄存器AX的高8位清零,其他位不变,
使用 OR AL,0F0H 指令可使寄存器AL高4位置1,其他位不变,
使用 XOR AX,OFFH 指令可使寄存器AX的低8位取反,其他位不变。
6、可用 MOV 存器中,
AX,SS:[560H] 指令将SS:560H单元内容传送到AX寄
用 MOV [560H],CX 指令将寄存器CX的内容传送到DS:560H单元中,
用 MOV CX,6734 指令将数据6734送入CX寄存器中。
7、 中断类型码为42H的中断服务程序入口地址的偏移地址存放在中断向量表中
的 108H,109H 单元,段地址存放在 10AH,10BH 单元。
8、 将下列各指令中操作数寻址所使用的段寄存器分别填写在各指令后空格中:
MOV AL, [3000H] DS
ADD [BP],AX SS SUB AX,EX:[BX+DI] ES
SCASB ES
简答题
1、8086 CPU中指令接口单元(BIU)的主要功能是什么?
2、8086CPU的中断系统可以处理那几类中断?
3、计算机输入/输出接口电路与外部设备间交换的信号有哪几种类型?
4、8255A有几种工作方式?分别对应哪些端口?
答:指令接口单元(BIU)的主要功能是负责与存储器、输入/输出端口传送数据,即存取程序和数据的实际处理。
1、 答:8086CPU的中断系统可以处理的中断可以有256种,包括硬件中断和软件中断,硬件中断中包括非屏蔽中断和可屏蔽中断。
2、 答:计算机输入/输出接口电路与外部设备间交换的信号有数字量、模拟量、开关量和脉冲量。
3、 答:8255A有基本输入输出方式、选通输入输出方式和双向传送方式。端口A可以在三种方式中选择,端口B在前两种方式中选择,端口C只能使用基本输入输出方式。
一、指令分析:
1、 写出将DS:3766H单元内容送AL中的指令
写出将BX内容送ES:3766H单元的指令
写出将2340H送CX的指令。
MOV AL,[3766H]
MOV ES:[3766H],BX
MOV CX,2340H
2、将BX的D8~D12位清0
AND BX,1110000011111111B
(或者AND BX,0E0FFH)
3、写出指令中操作数寻址所使用的段寄存器
MOV AL,[357H] DS ADD [DI],BX DS
AND CL,[BP+69H] SS
STOSB ES
二、地址计算:
1、巳知8086CPU中下列各寄存器的内容分别为:
CS=5340H,DS=0030H,SS=1230H,
IP=5220H ,AX=3240H, BX=7240H,
BP=4B0H,SP=4690H,
ES=3330H
1〉求当前指令单元地址和堆栈栈顶单元物理地址。
2〉求下列各指令中操作数所在存储单元的物理地址。
a. MOV AX,[4730H]
b. MOV [BX+4730H],AX
C. MOV AX,[BP+473H]
答案:
1> 当前指令单元地址:
CS+IP: 53400H+ 5220H =58620H
堆栈栈顶单元物理地址:
SS+SP= 12300H+ 4690H=16990H
2>
a. DS+4730H
=00300H+4730H
=04A30H
b. DS+BX+4730H
=00300+7240H+4730H
=0BC70H
c. SS+BP+473H
=12300H+ 4B0H+ 473H
=12C23H
2、巳知8086CPU中下列各寄存器的内容分别为:
CS=4300H,DS=5000H,SS=0H,ES=7800H
IP=C400H,DI=320H, BP=2600H,
SP=330H
1〉给出当前指令单元和堆栈栈顶单元的偏移地址和物理地址。
2〉求下列各指令中操作数所在存储单元的偏移地址和物理地址。
a. MOV CX,[700H]
b. MOV ES:[DI+4300H],DX
C. MOV [BP+300H] ,DX
解:
1) 指令单元 偏移地址:0C400H 物理地址:4F400H
栈顶单元 偏移地址:330H 物理地址: 6700H
2)a. 偏移地址:700H 物理地址:50700H.
b. 偏移地址:4620H 物理地址:7C620H.
c. 偏移地址:2900H 物理地址:8D00H.
三、程序分析:
1、写出下列程序段执行完后,AL,DL的内容,并指出程序完成的功能。
MOV CL,04
MOV AL,87H
MOV DL,AL
AND AL,0FH
OR AL,30H
SHR DL,CL
OR DL,30H
解:
(AL)=37H (DL)=38H
将BCD码87的个位和十位转换成对应的ASCII码,并存放在AL,DL中。
2、执行完下列程序段后,寄存器AX,BX,CX,DX的内容分别是多少?
(6分)
MOV AX,3C0H
XOR CX,CX
MOV [200H],AX
MOV BX,[200H]
MOV CL,[201H]
MOV DX,2220H
ADD BX,DX
答案:AX=3C0H,BX=25E0H,CX=0003H, DX=2220H
四、接口芯片设置及编程:
1、假设8253占用的端口地址为180H-184H,CLK0和CLK2接8MHZ时钟,要求:
1)将计数器0设置时钟周期为1ms分频器,计数器2的设置为软件触发的选通信号发生器,设置完计数初值0.2ms后OUT2输出选通信号。
2)将OUT0接到计数器1的CLK1,计数器0工作方式同上,计数器1输出频率为1HZ的方波信号。
1)计数器0:方式字 00 11 010 0 (34H)
初值:8000
计数器2:方式字 10 11 100 0 (0B8H)
初值:1600
MOV DX,183H
MOV AL,34H
OUT DX,AL
MOV AL,0B8H
OUT DX,AL
MOV DX,180H
MOV AX,8000
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,182H
MOV AX,1600
OUT DX,AL
MOV AL,AH
OUT DX,AL
答案:
2)计数器0:方式字00 11
010 0 (34H)
初值:8000
计数器1:方式字 01 11 011 0 (076H)
初值:1600
MOV DX,183H
MOV AL,34H
OUT DX,AL
MOV AL,076H
OUT DX,AL
MOV DX,180H
MOV AX,8000
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,181H
MOV AX,1000
OUT DX,AL
MOV AL,AH
OUT DX,AL
2、定时/计数器芯片8253A的端口地址为24H—27H,将它的通道2的CLK2接外部计数脉冲,要使计数值达到4000时,OUT2产生中断请求,写出相应程序段。
答案:通道2的方式命令字:10110000(0B0H)
计数初值:4000
MOV DX,27H
MOV AL,0B0H
OUT DX,AL
MOV AX,4000
MOV DX,26H
OUT DX,AL
MOV AL,AH
OUT DX,AL
3、设某8255并行接口芯片的端口地址为140H~143H,根据下列设置要求对芯片编程:
1)将A口设为选通方式的输出口,并允许中断;B口设为选通方式的输入口,PC5,PC4设为输出。
2)将A口设为双向传输方式,禁止输出中断产生,允许输入中断产生,B口设为选通输入方式,并允许中断产生。
答案:
1)方式控制字: 10100110 (0A6H)
A口允许中断(PC6=1):0000 110 1 (0DH)
MOV AL,0A6H
MOV DX,143H
OUT DX,AL
MOV AL,0DH
OUT DX,AL
2)方式控制字: 11000110(0C6H)
A口禁止输出中断(PC6=0):0000 1100 (0CH)
A口允许输入中断(PC4=1):0000 1001 (09H)
B口允许输入中断(PC2=1):0000 0101 (05H)
MOV AL,0C6H
MOV DX,143H
OUT DX,AL
MOV AL,0CH
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,05H
OUT DX,AL
4、并行接口芯片8255A的端口地址为34H—37H,将其设置为下述工作方式:端口A设置为选通的输入方式,端口A的中断设为允许状态,端口B设置为基本输出方式,,端口C设为输入方式,给出相应的控制字说明,并写出相应程序段。
答案:方式命令字: 10111001(0B9H)
设A口输入中断允许: 00001001(09H)
MOV DX, 37H
MOV AL,OB9H
OUT DX,AL
MOV AL,09H
OUT DX,AL
5、某微机系统采用单片8259A构成中断控制系统,采用非缓冲方式,中断采用边沿触发,自动EOI方式,完全嵌套方式,端口地址为 6AH--6BH,芯片的中断类型码设为68H,IR5上接一个外部中断源,中断程序入口地址为8300H:3450H,编写初始化程序,并设置中断向量。
答案:
ICW1(6AH):00010011B ( 13H)
ICW2(6BH):68H
ICW4(6BH):00000011B (03H)
设置中断向量表:AH=25H,AL=6DH
DS=8300H,DX=3450H
程序段:
MOV OUT MOV OUT MOV OUT CLI
MOV MOV MOV MOV INT
AL,93H
6AH,AL
AL,68H
6BH,AL
AL,03H
6BH,AL
AX, 8300H
DS,AX
DX,3450H
AX,256DH
21H
STI
IN AL,6BH
AND AL,11011111B
OUT 6AH,AL ;清除IR5中断屏蔽
6、利用PC/XT中8237A DMA控制器的通道1将外设传送来的4236H个数据装入85000H单元开始的存储器中,编写有关程序实现。
答案:通道1:模式字:01 0 0 01 01(45H)
地址:5000H(端口:02)
计数:4236H (端口:03)
页面地址:08H (端口:83H)
MOV AL,5
OUT 0AH,AL ;设置通道1屏蔽
MOV AL,01000101B
OUT 0BH,AL ;设置通道1的模式字
OUT 0CH,AL ;清先后触发器
MOV AX,5000H
OUT 02H,AL ;置通道1起始地址的低8位
MOV AL,AH
OUT 02H,AL ;置通道1起始地址的高8位
MOV AX,4236H
OUT 01H,AL ;置通道1计数初值的低8位
MOV AL,AH
OUT 01H,AL ;置通道1计数初值的高8位
MOV AL,08H
OUT 83H,AL ;置通道1的页面地址
MOV AL,1
OUT 0AH,AL ;清除通道1屏蔽
五、编程
1、根据下面定义的数据段,编写一个完整的程序,将数据缓冲区INBUF的数据传送到数据缓冲区OUTBUF中。
DATA SEGMENT
INBUF DW 100 DUP(?)
OUTBUF DW 100 DUP(?)
DATA ENDS
答案:
DATA SEGMENT
INBUF DW 100 DUP(?)
OUTBUF DW 100 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:MOV AX,DATA
MOV DS,AX
MOV EX,AX
MOV SI,OFFSET INBUF
MOV DI,OFFSET OUTBUF
MOV CX,100H
CLD
REP MOVSW
MOV AH,4CH
INT 21H
CODE ENDS
END START