《微机原理、汇编与接口技术分析题(7页).doc》由会员分享,可在线阅读,更多相关《微机原理、汇编与接口技术分析题(7页).doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-(汇编)分析题1.MOV AX,0BC5FH MOV BX,0C0FBH AND AX,BX AND AX,BX上述程序段运行后,AX=805BH,BX=0C0FBH,CF=02. A DB 0F8H B DB 3 DUP(?) LEA DI,B MOV CX,3 MOV AL,ALOP:SAR AL,1 MOV DI,AL INC DI LOOP LOP上述程序段运行后,从B单元开始依次存放的数据是多少?依次存放FCH、FEH、FFH3. 已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么? MOV CX,10 LEA BX,BUFK2: MOV AL,BX CM
2、P AL,Z JBE K1 SUB AL,20H MOV BX,ALK1: INC BX LOOP K2小写字母转换成大写字母4、 MOV AX, 0ABCDH MOV BX, 0CDEFH PUSH AX PUSH BX POP AX POP BX 上述程序段执行后AXCDEFH,BXABCDH5、已知数据段: DATA SEGMENTSTR1DB 12H,64STR2 DB 2 DUP(B,9)COUNT EQU $-STR2STR3 DB COUNTSTR4 DW STR3DATA ENDS画出该数据段的存储形式。6、说出该子程序实现什么功能。aadpprocpush bxshl ah,
3、1mov bl,ahshl ah,1shl ah,1add bl,ahadd al,blmov ah,0pop bxretaadpendp该子程序实现ALAH10AL,AH0。7、编写一个程序段,在DX低3位全为1时,使AX1;否则使AX1。and dx,7Sub dx,7jz nextmov ax,1jmp donenext:mov ax,-1done:8、给下面程序段加上合适的指令,该程序段使、完善如下程序使之实现将一个50个字节元素的数组,其首地址为array,每个元素减2(不考虑溢出或借位)存于原处。 .mov si,0again: sub arraysi,2 . loop again
4、 mov cx,50 inc si五、指出下列标志位的含义(1) CF(2)OF(3)AF(4)ZF (5) DF(1) 进位标志。若运算结果的最高位产生一个进位或借位,则CF=1,否则CF=0。 (2) 溢出标志。若在算术运算中带符号数的运算结果,当字节运算时大于+127或小于-128;字运算时大于+32767或小于-32768,则OF=1,否则OF=0。(3) 辅助进位标志。若在字节操作时,由低半字节向高半字节有进位或借位;或在字操作时,由低位字节向高位字节有进位或借位,则AF=1,否则AF=0。(4) 零标志。若运算结果为0,则ZF=1,否则ZF=0。 (5) 方向标志。若用指令置DF=
5、1,则串操作指令就为自动减量指令,也就是从高地址向低地址处理串;若DF=0,则串操作指令就为自动增量指令,也就是从低地址向高地址处理串。六、(1)若STR是字符串的首地址,指出下列程序的功能,并将语句加上注解。 LEA BX , STR置地址指针 MOV CX , 20置计数器初值 LP : CMP BX , & 取字符与&比较 JNZ NEXT不是&转NEXT MOV BX , $ 是&则用$替换NEXT : INC BX地址加1LOOP LP CX-1不为0继续 HLT程序功能:将字符串STR(长度20字节)中所有&用$代替。 (2)指出下列程序的功能DATA SEGMENTSTRIN D
6、B *COUNT DW ?DATA ENDSSTACK SEGMENT PARA STACK STACKDB 100 DUP(?)STACK ENDS CODE SEGMENTASSUME CS : CODE , DS : DATA , SS : STACKSTART : MOV AX , DATA MOV DS , AX MOV BX , OFFSET STRIN MOV AX , 0MOV CX , AX LP : MOV AL , BXCMP AL , *JE DONE INC CXINC BXJMP LP DONE : MOV COUNT , CX MOV AH , 4CHINT 21
7、HCODE ENDS END START 从STRIN单元开始有一字符串,程序求以*作为结束标志字符串的长度,存入COUNT单元。七、 已知电路图如图1所示:有关程序段如下:MAIN PROC FAR PUSH DS XOR AX , AX PUSH AX MOVE AL , 8BH MOV DX ,213H OUT DX , ALKEYIN :MOV DX ,212H IN AL ,DX CMP AL ,0FFH JE KEYIN CMP AL ,0FCH JE EXIT MOV DX ,210H OUT DX ,AL JMP KEYINEXIT : RETMAIN ENDP 回答问题: 1
8、)根据电路的接法,8255的PC口应设为输入方式还是输出方式?PC口应设为输入方式。 2)根据电路的接法,8255的PC口地址是什么?8255的PC口地址为212H和216H。 3)结合程序,说明本电路完成什么功能?检查按键,若同时按下S1和S0键,则退出程序,否则将读入开关状态所对应的数字量从PA口送出显示。 4)如果按键接在PB口上,为完成相同功能,应如何修改程序?将程序第8行改为: KEYIN : MOV DX , 211H5)如果想按下S7键退出程序,则应如何修改程序?将程序第12行改为: CMP AL , 7FH 6)如果想按下按键Si后使相应的发光二极管Di发光,而其余发光二极管熄
9、灭,则应如何修改程序?在程序的第14、15行之间加一条 NOT AL 指令。八、8255A的工作方式控制字和C口的按位置位/复位控制字有何差别?若将C口的PC2引脚输出高电平(置位),假设8255A控制口地址是303H,程序段应是怎样的? 提示:8255A编程摘要 工作方式控制字:1、 控制命令字 2、位设置控制字工作方式控制字是对8255A的三个端口的工作方式及功能进行说明,即进行初始化,写在程序的开头,控制字的最高位D7=1。按位置位/复位控制字只对C口某一位(不能同时对几位)输出高电平(置位)或低电平(复位)进行控制(对输入无作用),控制字的最高位D7=0。 PC2置位程序段: MOV
10、DX , 303HMOV AL , 05HOUT DX , AL九、 假设系统扩展一片8255A供用户使用,其A、B、C和控制口地址依次为9000H、9001H、9002H、9003H,请设计一个用8255A 与打印机接口的电路连接图(只须画出打印机与8255A的连接部分)并给出8255A初始化程序段和输出打印程序段及相应注释。8255A方式控制字格式:解答:8255A 与打印机接口的电路连接图BUSY DATA078255APC7PC2PA0PA7打印机STROBE;用8255A方式0与打印机接口;8255A的初始化mov dx,9003h;控制端口地址:9003Hmov al,100000
11、01B;方式控制字:91Hout dx,al;A端口方式0输出,C端口上输出、下输入mov al,00001111B;端口C的复位置位控制字,使PC71out dx,al;打印子程序:查询printcprocpush axpush dxprn: mov dx,9002h;读取端口Cin al,dx;查询打印机状态and al,04h;PCBUSY0?jnz prn;PC21,打印机忙,则循环等待mov dx,9000h;PC20,打印机不忙,则输出数据mov al,ahout dx,al;将打印数据从端口A输出mov dx,9003h;从PC7送出控制低脉冲mov al,00001110B;置
12、STROBE*0out dx,alnop;产生一定宽度的低电平nopmov al,00001111B;置=1out dx,al;最终,STROBE*产生低脉冲信号pop dxpop axretprintcendp1、内部RAM低128单元划分为哪3个主要部分?说明各部分的特点。1)00H1FH为通用工作寄存器区,共分为 4 组,每组由 8 个工作寄存器( R0R7)组成。 (2分) 由RS1、RS0决定当前组。工作时只有1组做当前组。(1分)2)20H2FH 位地址区 分为128位,位地范围为00H7FH (2分)3)30H7FH 用户数据区 2、指令MOV Ri, A 和指令MOVX Ri,
13、 A 的功能是否相同.如果不同区别是什么?两条指令功能是有区别的。(2分)1)MOV Ri, A指令是对片内RAM 00H7FH的访问 (2分)MOVX Ri, A指令是对片外RAM低256个字节的访问 (2分)执行MOVX指令时,WR引脚有效。(1分)1、MOV R2 , #08H MOV R0 , #7FHSETB RS1CLR RS0DL0:MOV A , R0MOV DPTR , #TABMOVC A , A+DPTRMOV SBUF , ADL1:JNB TI , DL1CLR TIDEC R0DJNZ R2 , DL0TAB: DB 0C0H, 0F9H, 0A4H, 0B0H,
14、99H;0 1 2 3 4DB 92H, 82H, 0F8H, 80H, 90H ;5 6 7 8 9答:该程序段用于完成一个LED静态显示电路的送显,其中,字形码从 串行口(或TXD/RXD 或P3.0/P3.1)_送出(3分),显示缓冲区地址范围为 78H7FH (4分) ,本段程序使用了工作寄存器组第 2 组。(3分)2、DATAPP:MOV A, 34HJB ACC.7, LOOPXXRETLOOPXX:CPL AADD A, #81HMOV 34H, ARET答:该程序段所完成的功能为: 对片内RAM34H单元中的原码求补码(对片内RAM34H单元中的补码求原码) 1、设有一个8路模
15、拟量输入的巡回监测系统,如下图所示,试求:(1)、该系统中所扩展的芯片片选信号采用的方法是线选法,此外还有 译码法 ;(2分)(2)、该系统中所扩展的RAM6264芯片的地址范围是 6000H(4000H) 7FFFH(5FFFH) ;(3)、设采样数据依次存放在内部RAM 60H67H单元中,按上图所示的接口电路,完成其数据采样程序(假定只采样一次); ORG 0000HMAIN: MOV R0, #60HMOV R2,#08H MOV DPTR, #0BFF8H(或8000H等) (0.5分) MOVX DPTR , A LOOP: JB P3.3 ,LOOP (1分) MOVX A, D
16、PTR MOV R0, AINC DPTR INC R0 DJNZ R2, LOOPSJMP $END(5分)下图为计数式A/D转换的原理图,简述其工作原理?再写出两种常用的A/D转换方法。计数式A/D转换的原理:(1)S由高变低,计数器清零,S变高,准备计数;(1分)(2)计数器输出0,Vo0,ViVo,C1,计数器计数;(1分)(3)Vo升高,Vi=Vo时,C0,计数器停止计数。(1分) D7D0即是Vi对应的数字量。比较器从1变为0的下降沿也是A/D转换结束信号。 常用的A/D转换方法:双积分式、逐次逼近式 (2分)1、(5分)设8255A各端口的地址分别为80H、82H、84H、86H
17、,编写初始化程序,使端口A工作于方式0输出,端口B方式0输入,端口C高四位输出,端口C低四位输入,并对端口C的PC6位清0,对PC2位置1。MOV AL, 83H;控制字1000 0011BOUT 86H, AL (2分)MOV AL, 0CH 。OUT 86H, AL (2分)MOV AL, 05H 。OUT 86H, AL (1分)2、(9分)8255A作为打印机的接口,工作于方式0,如图所示。 工作过程:当主机要往打印机输出字符时,先查询打印机的忙信号(BUSY),如果打印机忙,则BUSY信号为1,否则为0。当查询到BUSY为0时,可通过8255A往打印机输出一个字符,此时,要将 置为低
18、电平,然后再使为高电平,相当于在 端输出一个负脉冲,此负脉冲作为打印机的选通信号。设在CL寄存器存放着一待打印字符,请写出8255A的初始化程序及把待打印字符送打印机打印的程序。8255的地址为20H26H。MOV AL, 82H (83H) ;1000 0 0 01X BOUT 26H, AL;设置工作方式 (2分)MOV AL, 0DH ; 0 1101BOUT 0D6H, AL;PC6置位 (2分)LPST: IN AL, 22H;读B端口AND AL, 01H ;0000 0100BJNZ LPST ;打印机忙,继续查询,否则打印(2分)MOV AL, CLOUT 20H, AL;待打
19、印字符送端口A (1分)MOV AL, 0CH;0 1100BOUT 26H, AL;PC6置位INC ALOUT 26H, AL;PC6置位 (2分)3、(10分)8255A作为打印机的接口,工作于方式0,如图所示。工作过程:当主机要往打印机输出字符时,先查询打印机的忙信号(BUSY),如果打印机忙,则BUSY信号为1,否则为0。当查询到BUSY为0时,可通过8255A往打印机输出一个字符,此时,要将置为低电平,然后再使为高电平,相当于在端输出一个负脉冲(初始状态为高电平),此负脉冲作为打印机的选通信号。现将A端口作为传送字符的通道,工作于方式0;PB0作为BUSY信号输入端,PC0作为信号
20、输出端。设在BUFFER所指向的内存单元存放着一待打印字符,请写出8255A的初始化程序及把待打印字符送打印机打印的程序。参考答案:8255各端口的地址:80H,82H,84H,86H MOV AL, 82H 或8AH ;(1000010B)OUT 86H, AL MOV AL, 01HOUT 86H, AL LPST:IN AL, 82HAND/TEST AL,01H 或(SHR AL,1 )JNZ LPST (JC LPST) MOV AL, BUFFEROUT 80H, AL MOV AL, 00HOUT 86H, ALINC ALOUT 86H, AL 4、(8分)完成8253A的初始
21、化程序,使8253A的计数器1输入8MHZ的时钟信号,输出2KHZ的方波,以二进制方式计数。8253A的地址为60H66H。(1)求计数器0的初值。N8MHZ/2KHZ4000 (2)完成8253A的初始化程序。MOV AL, 76H ;0111110BOUT 66H, AL ;设控制字 MOV AX, 4000OUT 62H, AL MOV AL, AHOUT 62H, AL ;设初值 5、(14分)将8253的计数器0设置为方式3,计数器1设置为方式0串联使用,启动计数后,经过2秒OUT1输出高电平,通过8255的B口查询OUT1的输出电平,用C口输出电平控制指示灯的燃灭,PC0为高电平,
22、指示灯亮,否则灭。编写程序使用8253定时,让指示灯周而复始的亮5秒,灭5秒,8253采用二进制计数。设8253的端口地址为:20H、22H、24H、26H,8255的端口地址为:28H、2AH、2CH、2EH。参考答案:注:8253两个计数器的初值只要满足乘积为5000000即可。START: MOV AL,82H ; 1010B ,设8255为B口输入,C口输出OUT 4EH,AL LLL: MOV AL,01/00 ;将PC0置位OUT 4EH,AL CALL DELAY ;延时2S MOV AL,00/01 ;将PC0复位OUT 4EH,AL CALL DELAY ;延时2S JMP
23、LLL ;转LLLDELAY PROC NEAR ;延时子程序MOV AL,36HOUT 46H,AL;设8253计数器0为方式3MOV AX,10000;写入计数器初值10000OUT 40H,ALMOV AL,AHOUT 40H,AL (4分)MOV AL,70H OUT 46H,AL;设计数器1为工作方式0MOV AX,500;写入计数器初值200OUT 42H,ALMOV AL,AHOUT 42H,AL (4分)LL2: IN AL, 4AH;查询8255的PB0是否为高电平AND AL,01JZ LL2 ;若不是则继续 (2分)RET ;定时时间到,子程序返回DELAY ENDP (
24、2分)6、(10分)设DAC0832输出的电压范围为0V10V,用单缓冲方式实现D/A转换,画出主要信号的连接关系(在原图上画即可),并编写程序,希望输出电压在2V8V之间变化的锯齿波,如图所示。参考答案:2V对应的数字量为:Dx1=2255/10=33H (1分)8V对应的数字量为:Dx2=8255/10 =0CCH(1分)参考程序:LOP1: MOV AL,32H LOP2: INC AL OUT 42H, AL (2分)CMP AL, 0CCH JB LOP2JMP LOP1 (2分)6、(10分)8255A作为连接A/DC的接口。计算机要采集A/D转换的数据,需先启动A/DC,即发一低
25、电平信号给START; A/D转换结束,使EOC输出有效高电平,CPU查询EOC有效,可把数据从端口读入。编写驱动程序,使A/DC进行转换,计算机通过8255A读取转换后数据。STA:MOVAL,98H ;1001100BMOV DX, 0126H OUT DX, AL ;送8255A方式字MOV AL, 00HOUT DX, AL ; PC0=0 ,START= 0,启动转换(2分)TST: MOV DX, 0124H IN AL, DX ;读C口状态 AND AL, 80H ;查询EOC状态 JZ TST;如未转换完,再测试 MOV AL, 01H OUT DX, AL;PC0=1,STA
26、RT=1 ,撤销启动信号MOV DX, 0120H IN AL, DX;从A端口输入转换结果7、(8分)存储器的扩展方法有哪几种?用1K 8位的存储芯片组成 2K 8位的存储器。请按照存储器扩展的方法将芯片连起来 。A0A9 D0D7WEOECE说明:地址线、数据线、片选信号线和读写信号线的连接各1分。扩展方法有:数据宽度扩充(位扩展)(1分); 字节数的扩充(字扩展) (1分); 字位全扩展 (1分)9、用32K8b的EPROM芯片27C256,构成64K16b的EPROM子系统。,需要多少片27C256?请按照存储器扩展的方法将芯片连起来 。需要芯片的个数:(64K/32K)(16b/8b)= 22 = 4片10、(12分)画出8086系统的最小模式配置图,标出主要信号的连接关系。(地址锁存器用三片8282,总线收发器用两片8286,锁存器8282的真值表如表一所示,总线收发器8286的真值表如表二所示。)表一 8282真值表 表二 8286真值表OESTBDIDOLHHHLHLLLL锁存H高阻OET功能LLB ALHA BH高阻-第 7 页-