单片机课后习解答.pptVIP

  • 46
  • 0
  • 约1.55万字
  • 约 75页
  • 2017-06-11 发布于河南
  • 举报
单片机课后习解答

第三章; (5) DA A00000110 (A)=80H,Cy=0,其它无影响 (6) RLC A;(A)=F5H,Cy=0, AC=0,OV=0,P=0 (7)RR A;(A)=3DH,Cy=1, AC=0,OV=0,P=1 (8)PUSH 30H;SP=66H,(66H)=A5H (9)POP B;SP=64H,(B)=(65H) (10) XCH A,@R0;(A)=A5H,(30H)=7AH, Cy=1,OV=0,AC=0,P=0 ;3-3 已知片内RAM中(30H)=64H,(50H)=04H,片外RAM中(1000H)=0FFH,(2004H)=00H,并且TAB=2000H,试分析顺序执行每条指令的结果。 (1)??? MOV R0,#30H;(R0)=30H (2)??? MOV A,@R0;(A)=64H (3)??? MOV DPTR,#1000H;(DPTR)=1000H (4)??? MOVX @DPTR,A;(1000H)=64H (5)??? MOV A,50H;(A)=04H (6)??? MOV DPTR,#TAB;(DPTR)=2000H (7)??? MOVC A,@A+DPTR;(A)=00H (8)??? MOV P1,A;(P1)=00H ;3-4 试分析在执行完下面的程序段后,A,R0,R1,R7,SP以及片内RAM的一些单元中内容各是什么? MOV SP,#65H MOV R7,#5 MOV R0,#30H MOV R1,#40H LOOP:MOV A,@R1 PUSH ACC MOV A,@R0 MOV @R1,A INC R0 INC R1 DJNZ R7,LOOP;结果:(A)=(34H), (R0)=34H,(R1)=44H,(R7)=0, SP=70H ,(70H)=(44H),(30H)=(40H),…(34H)=(44H)。 3-5 已知SP=62H,(62H)=50H,(61H)=30H,问执行指令RET后,PC=?,SP=?并解释。 答:执行指令RET,从堆栈中弹出地址值给PC,栈指针减2,(62H),(61H)中的内容分别弹出PC=5030H,SP=60H 3-7 试编程求出片外RAM从2000H开始的连续20个单元的平均值,并将结果存入内部RAM20H单元。 MOV DPTR,#2000H ACALL AVG ;子程序名:AVG 子程序功能:求20个无符号数平均值子程序 子程序入口:(DPTR)=数据区首地址指针 子程序出口:(R3)(R4)=均值 AVG: MOV R2,#20 MOV R3,#00H;部分和高位字节单元清零 MOV R4,#00H;部分和低位字节单元清零 ACALL D-ADD;调用累加和子程序 ACALL D-DIV;调用除以20的子程序 求多字节累加和子程序 子程序名:D-ADD;子程序功能:多字节累加和子程序 子程序入口:(DPTR)=数据区首地址指针 子程序出口:(R3)(R4)=累加和,R3中内容为和高字节,R4中内容为和低字节 D-ADD:CLR C LOOP:MOVX A,@DPTR ADD A,R4 MOV R4,A CLR A ADDC A,R3 MOV R3,A INC DPTR DJNZ R2,LOOP RET;双字节除以20的子程序 子程序名:D-DIV 子程序功能:除以20的子程序 子程序入口:(R3)(R4)=被除数 子程序出口:(R3)(R4)=商 D-DIV: MOV R7,#08H;置计数初值 DV1: CLR C MOV A,R4;将(R3)(R4)左移1位 RLC A MOV R4,A MOV A,R3 RLC A MOV 00H,C;将移出的标志位送00H ; CLR C SUBB A,R2;余数高位减除数 JB 00H,GOU;标志位为1够减 JNC GOU;无借位,也说明够减 ADD A,R2,不够减,恢复余数 AJMP DV2 GOU:INC R4;够减,商上1 DV2: MOV R3,A DJNZ R7,DV1;减完?没完继续 MOV 20H,R3;转存20H MOV 21H,R4;转存21H RET ; MOV 21H,R4;转存21H RET 商数 除数 被除数

文档评论(0)

1亿VIP精品文档

相关文档