当前位置:文档之家› 单片机程序分析题练习B2

单片机程序分析题练习B2

1.程序如下: MOV SP , #13H MOV 33H ,#7FH MOV 44H ,#0ABH PUSH 33H PUSH 44H POP 33H POP 44H程序执行后, (33H)=0ABh2.下列各条指令其源操作数的寻址方式是什么各条指令单独执行后, (60H )=35H ,(A ) =19H ,(R0)=30H ,(30H )=0FH 。

( 1 ) MOV A , #48H ;寻址方式A) = 48H( 2) ADD A , 60H;寻址方式A) = 4DH( 3) ANL A , @R0;寻址方式A) = 10H3.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能MOVR1, #30H ;( R1) =30H MOV A , #64H ; ( A) = 64HADD A , #47H ;( A) =ABH ,( CY) = 0 ,( AC) = 0DA A;( A) =31H,( CY) =1( AC) =MOV @R1, A ; ( R1) = 30H,( 30H) = 31H此程序段完成的功能4. 设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A) =0 ORL A , #27H ANL A , 28H XCHD A , @R0 CPL A5. 设(A)=38H,(20H)=49H,PSW=00H,(B)=02H,填写以下中间结果。

SETBCADDC A, 20H (A)= 82H (CY)= 0 (AC)= 1 RLCA (A)=04H (CY)=1 (P) 1MUL AB(A)=08H(B)=00H(OV)=06.已知( R0) =20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后 ( 40H ) =15H MOV @R0 , #11H (20H)=11H MOV A , R2A=20H,(44H )=7FhA 中的结果是什么设ADD A , 20H MOV PSW , #80H A=40H SUBB A,P0 XRL A , #45HMOV 40H , AA=10H A=15H (40H) =15H7. 已知(RO )=20H, (20H )=36H, (21H) =17H, (36H) =34H,执行过程如下: A=36HR0=36HA=34H A=4BH A=21H A=42H R2=42H则执行结束(RO) =36H(R2)= 42H8.设在31H 单兀存有# 23H,执行下面程序: MOV A, 31H A=23H ANL A, #0FH A=03H MOV 41H, A (41H)=03H MOV A, 31H A=23HANL A,#0F0H A=20H SWAPAA=02HMOV 42H, A (42H)=02H 则(41H)=03H (42H)= 02H 9. (R0)=4BH,(A)=84H,片内 RAM(4BH)=7FH,(40)=20HMOV A,@R0 A=7FH MOV @R0,40H (4BH)=20H MOV40H,A(40H)=7FH;MOV R0,#35H R0=35H问执行程序后,R0=35H A= 7FH 4BH= 20H40H= 7FH10.若PSW=00,执行下列程序后,PSW 的CYYAC,OV,P 各位状态如何 MOV A,#0FBH A=FBH MOV PSW,#10HADD A,#7FH A=7AH CY=1; AC=1;OV=1; P=1; 11 .程序存储器空间表格如下: 已知:片内RAM 的2 0H 中为01H,执行下列程序后(30H)=A3H MOV A , @R0 MOVR0 , A MOV A , @R0 ADD A , 21H ORL A , #21H RLA MOV R2 , ARETMOV A,20H A=O1HINC AA=02HMOV DPTR,# 2 0 0 0 H DPRT=2000H MOVC A,@A + DPTR A=5BH CPL A MOV 30H,ASJMP $END执行程序后,(30H)= A3H 12.分析程序段: CLR C 清零cy 指令 MOV A,#91H 给A 立即数SUBB A,61H ; A 寄存器与地址(61h )的值相减 ADD A,61H ; A 寄存器与地址(61h )的值相加DA A ; BDC 码调整指令MOV 6 2H,A 把累加器A 的值送给地址寄存器 62h(1 )程序执行何种操作 对91H 做BDC 码调整;(2)若已知初值:(60H )=24H,(6 伯)=72 H,则运行后,(62H )= 91H13.设(R0)=7EH,DPTR=10FEH ,片内 RAM7 EH 和7FH 两单元的内容分别是FFH 和38H ,请写出下列程序段的每条指令的执行结果。

INC @R0 (7E)=00H INC R0 R0=7FH INC @R0 (7FH)=39H INC DPTR DPTR=10FFH INC DPTR DPTR=1100H INCDPTRDPTR=1101HCLR MOVC R2,#3 C=0; R2=3; LOOP: MOVA,@R0 A=80H A=90H ADDC A,@R1 A=20HMOV @R0,A(20H)=20H;(21H)=00H;INC RO R0=21H;INC R1R 仁 26HDJNZ R2,LOOPJNCNEXT1MOV @R0,#01H (23H)=01HSJMP$ NEXT: DECR0SJMP $(22H)=16H14.设 R0=20H,R 仁25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,(26H)=6 FH,(27H)=76H,下列程序执行程序后,结果如何A=A3H (30H) =A3H(20H) =20H 、(21H)= OOH 、(22H)=16H16 .若(10H)=0FFH,(1 伯)=00H,(12H)=0FFH,(13H)=00H 写出每一步指令运行结果 MOV A,10H (A)= FFH , ANL A,#01H (A)= 01H , MOV A,11H (A)= 00H , ORL A,#01H (A)= 01H , MOV A,12H (A)= FFH , XRL A,#01H (A)=FEH , MOVA,13H(A)= 00H,XRL A,#0AA(A)= AAH ,(10H)= FFH , (11H)= 00H , (12H)= FFH , (13H)= 00H17.阅读程序并回答下列问题:X DATA 50H Y DATA 51HORG 00HJMP STARTORG 100HSTART:MOV SP#60HMOVX,#10(50H) =10MOV Y#10 (51H)=10LCALL SUBSUB:NOPINC X (50H)=11X+10=20DEC Y (51H)=9Y=0;MOVA,YA=9JZ SUBRETLCALL SUBSUBRET: NOPRET(23H)= O1H 、 CY=1A=16H 、R0=23H 、R 仁27H 15. MOV DPTR,#2000HMOVA,#80H MOVX @DPTR,A INC DPTR MOV A,#90H MOVX @DPTR,A MOV DPTR,#2000H MOVX A,@DPTR MOV B,A INCDPTR MOVX A,@DPTR(DPTR) = 2000H (A) = 80H (2000H) =80H(DPTR = 2001 (A) =90H(2001H) = 90H (DPTR = 2000H (A) =80H (B) =80H (DPTR = 2001H (A) =90H计算X 和Y 的值是多少 (X)=20 ;(Y)= _018. 设自变量为X,存放在ARE 单元,应变量 Y 存放在BUF 单元。

给程序标注注释,说明该段子程序的功能并写出该程序的函数关系式。

(7分)STARTMOV DPTR,#ARE MOVX A ,@DPTRJZ SULJB,NEGMOVA , #02H SULMOV DPTR,#BUFMOVX@DPTR ARETNEG:MOV A , #0FEHSJMPSUL;注释:如果 A 的值大于128跳转NEG;注释:把A 的值传送给BUF 地址中如果 X=0,Y=0; 如果 X<128,Y=02h; 女口果 X>128,Y=FEH19. 执行下列程序段后,(P1)=_9AH__ MOV P1,#5DH CPL CPL CLR SETB20. 执行下列程序段后,(A)=___8BH_ MOV A ,#C5H RL A,(C Y )=__0_。

21.下列程序段执行后, (R 0)=___7EH ____ ,(7EH)=__4伯__,(7FH)=___01H ____ <MOV R 0,#7EH R0=7EH MOV7EH ,#0FFH (7EH)=FFHMOV7FH, #40H(7EH)=40H1NC @R0 (7EH)=41H 1NC R0 R0=7FH;22.已知(SP)=60H,子程序 双字节指令后,(PC)=_ SUBTRN 的首地址为 0345H ,现执行位于 0123H 的ACALL SUBTRN,(61H)=______ ,(62H)= ____ < 1NC @R0(7FH)=1;23. 阅读下列程序,说明其功能。

MOV R0,#dataMOV A,@R0RL AMOV R1, ARL ARL AADD A, R1MOV @R0,ARET24. 程序填空1)数据块传送,将 RAM 从 30H 开始的连续 32 个单元的内容传递给片内 RAM 从 60H 开始的连续32 个单元。

ORG 1000HMOV R7,_______MOV R0, #30HMOV R1,#60HLOOP: MOV A,@R0MOV ________ ,AINC R0INC R1DJNZ R7, ______SJMP $END2) RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器 A 中,百位放在 R2 中。

ORG 2200HMOV A,_____MOV B, #64HDIV ABMOV R2, AMOV A,_____XCH A, BDIV ABSWAP ________ORL A, BSJMP $END3)编程序将片内40H-46H单元内容的高4位清零,保持低 4位不变。

相关主题