微机原理与接口复习主要章节微机及微处理器结构及原理8088CPU的主要部件及其功能、工作模式、复位、存储器组织与物理地址计算。指令系统及汇编程序设计寻址方式(地址计算)、基本指令及功能(传送、运算、串操作、控制转移)、数据定义伪指令、汇编程序结构。基本DOS功能调用(键盘输入、显示、设置中断向量)微机和外设的数据传输接口功能、I/O数据传送方式。控制及接口芯片原理及编程8253、8255、8251、8259、8237原理及编程(设置及应用编程)考试题型填空、地址计算、简答、指令和程序的分析、芯片编程设置、程序设计。填空:指令分析,基本概念地址计算:根据寄存器的内容及指令寻址方式,计算单元的逻辑地址和物理地址。简答:基本概念、基本原理指令分析:①给出功能要求,写出指令实现。②给出指令,分析功能、计算地址。程序分析:分析程序段的功能和执行结果芯片编程设置:给出芯片功能要求,写出设置命令字及程序段。程序设计:根据要求编写程序。8257DMA控制器:00H~~0FH页面(81H通道2,82H通道3,83H通道1)8259中断控制器:20H~~21H中断类型码(08H~0FH)中断向量设置(AH=25H),中断向量读取(AH=35H)指令分析:写出将DS:3766H单元内容送AL中的指令写出将BX内容送ES:3766H单元的指令写出将2340H送CX的指令。MOVAL,[3766H]MOVBX,ES:[3766H]MOVCX,2340H将BX的D8~D12位清0ANDBX,1110000011111111B(ANDBX,0E0FFH)写出指令中操作数寻址所使用的段寄存器MOVAL,[357H]DSADD[DI],BXDSANDCL,[BP+69H]ESSTOSBES地址计算:巳知8086CPU中下列各寄存器的内容分别为:CS=5340H,DS=0030H,SS=1230H,IP=5220H,AX=3240H,BX=7240H,BP=4B0H,SP=4690H,ES=3330H1〉求当前指令单元地址和堆栈栈顶单元物理地址。2〉求下列各指令中操作数所在存储单元的物理地址。a.MOVAX,[4730H]b.MOV[BX+4730H],AXC.MOVAX,[BP+473H]1>当前指令单元地址:CS+IP:53400H+5220H=58620H堆栈栈顶单元物理地址:SS+SP=12300H+4690H=16990H2>a.DS+4730H=00300H+4730H=04A30Hb.DS+BX+4730H=00300+7240H+4730H=0BC70Hc.SS+BP+473H=12300H+4B0H+473H=12C23H程序分析:写出下列程序段执行完后,AL,DL的内容,并指出程序完成的功能。MOVCL,04MOVAL,87HMOVDL,ALANDAL,0FHORAL,30HSHRDL,CLORDL,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)初值:1600MOVDX,183HMOVAL,34HOUTDX,ALMOVAL,0B8HOUTDX,ALMOVDX,180HMOVAX,8000OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,182HMOVAX,1600OUTDX,ALMOVAL,AHOUTDX,AL答案:2)计数器0:方式字00110100(34H)初值:8000计数器1:方式字01110110(076H)初值:1600MOVDX,183HMOVAL,34HOUTDX,ALMOVAL,076HOUTDX,ALMOVDX,180HMOVAX,8000OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,181HMOVAX,1000OUTDX,ALMOVAL,AHOUTDX,AL二、定时/计数器芯片8253A的端口地址为24H—27H,将它的通道2的CLK2接外部计数脉冲,要使计数值达到4000时,OUT2产生中断请求,写出相应程序段。答案:通道2的方式命令字:10110000(0B0H)计数初值:4000MOVDX,27HMOVAL,0B0HOUTDX,ALMOVAX,4000MOVDX,26HOUTDX,ALMOVAL,AHOUTDX,AL二、8255并行接口芯片设某8255并行接口芯片的端口地址为140H~143H,根据下列设置要求对芯片编程:1)将A口设为选通方式的输出口,并允许中断;B口设为选通方式的输入口,PC5,PC4设为输出。2)将A口设为双向传输方式,禁止输出中断产生,允许输入中断产生,B口设为选通输入方式,并允许中断产生。答案:1)方式控制字:10100110(0A6H)A口允许中断(PC6=1):00001101(0DH)MOVAL,0A6HMOVDX,143HOUTDX,ALMOVAL,0DHOUTDX,AL2)方式控制字:11000110(0C6H)A口禁止输出中断(PC6=0):00001100(0CH)A口允许输入中断(PC4=1):00001001(09H)B口允许输入中断(PC2=1):00000101(05H)MOVAL,0C6HMOVDX,143HOUTDX,ALMOVAL,0CHOUTDX,ALMOVAL,09HOUTDX,ALMOVAL,05HOUTDX,AL三、8259中断控制器1、某微机系统采用单片8259A构成中断控制系统,采用非缓冲方式,中断采用边沿触发,自动EOI方式,完全嵌套方式,端口地址为6AH--6BH,芯片的中断类型码设为68H,IR5上接一个外部中断源,中断程序入口地址为8300H:3450H,编写初始化程序,并设置中断向量。答案:ICW1(6BH):00010011B(93H)ICW2(6AH):68HICW4(6AH):00000011B(03H)设置中断向量表:AH=25H,AL=6DHDS=8300H,DX=3450H程序段:MOVAL,93HOUT6BH,ALMOVAL,68HOUT6AH,ALMOVAL,03HOUT6AH,ALCLIMOVAX,8300HMOVDS,AXMOVDX,3450HMOVAX,256DHINT21HSTIINAL,6AHANDAL,11011111BOUT6AH,AL;清除IR5中断屏蔽2、主、从式中断系统的初始化PC/AT系列机中采用两片8259构成主、从式级联中断控制系统主片和从片的中断请求都采用边沿触发方式,主片用特殊全嵌套方式,从片用一般全嵌套方式,采用非缓冲方式连接,主片中断码为08H~0FH,从片中断类型码为70H~78H;主片的端口地址为20H、21H,从片的端口地址为0A0H、0A1H。从8259CS0A0HIRQ8IRQ9IRQ10IRQ15主8259CS20HIRQ0IRQ1IRQ7intIRQ3……CPU主片:ICW1:00010001边沿级联ICW4ICW2:08H(中断类型码)ICW3:00000100(从片接IR2)ICW4:00010001从片:ICW1:00010001边沿级联ICW4ICW2:70H(中断类型码)ICW3:00000010(接主片IR2)ICW4:00000001特殊全嵌套非缓冲非自动结束一般全嵌套非缓冲非自动结束程序段:MICW1EQU11HMICW2EQU08HMICW3EQU04HMICW4EQU11HSICW1EQU11HSICW2EQU70HSICW3EQU02HSICW4EQU01H……MOVDX,20HMOVAL,MICW1OUTDX,ALMOVDX,21HMOVAL,MICW2OUTDX,ALMOVAL,MICW3OUTDX,ALMOVAL,MICW4OUTDX,ALMOVDX,0A0HMOVAL,SICW1OUTDX,ALMOVDX,A1HMOVAL,SICW2OUTDX,ALMOVAL,MICW3OUTDX,ALMOVAL,MICW4OUTDX,AL…………四、8237DMA控制器利用PC/XT中8237ADMA控制器的通道1将外设传送来的4236H个数据装入85000H单元开始的存储器中,编写有关程序实现。答案:通道1:模式字:01000101(45H)地址:5000H(端口:02)计数:4236H(端口:03)页面地址:08H(端口:83H)MOVAL,5OUT0AH,AL;设置通道1屏蔽MOVAL,01000101BOUT0BH,AL;设置通道1的模式字OUT0CH,AL;清先后触发器MOVAX,5000HOUT02H,AL;置通道1起始地址的低8位MOVAL,AHOUT02H,AL;置通道1起始地址的高8位MOVAX,4236HOUT01H,AL;置通道1计数初值的低8位MOVAL,AHOUT01H,AL;置通道1计数初值的高8位MOVAL,08HOUT83H,AL;置通道1的页面地址MOVAL,1OUT0AH,AL;清除通道1屏蔽五、编程1、根据下面定义的数据段,编写一个完整的程序,将数据缓冲区INBUF的数据传送到数据缓冲区OUTBUF中。DATASEGMENTINBUFDW100DUP(?)OUTBUFDW100DUP(?)DATAENDS答案:DATASEGMENTINBUFDW100DUP(?)OUTBUFDW100DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVEX,AXMOVSI,OFFSETINBUFMOVDI,OFFSETOUTBUFMOVCX,100HCLDREPMOVSWMOVAH,4CHINT21HCODEENDSENDSTART