单片机习题和试题库之六.docx
《单片机习题和试题库之六.docx》由会员分享,可在线阅读,更多相关《单片机习题和试题库之六.docx(20页珍藏版)》请在冰豆网上搜索。
![单片机习题和试题库之六.docx](https://file1.bdocx.com/fileroot1/2023-4/18/924d1ed0-499b-45f9-a771-8ae761a37f27/924d1ed0-499b-45f9-a771-8ae761a37f271.gif)
单片机习题和试题库之六
单片机习题和试题库之六 读程序(附参考答案)
1.写出下列指令执行的结果
(1).
MOVA,#20H
MOVR0,#20H
MOV@R0,A
ANL A, #0FH
ORL A, #80H
XRL A, @R0
A=__________; R0= ; (20H)=__________
(2).
MOV DPTR,#2314H
MOV R0,DPH
MOV 14H,#22H
MOV R1,DPL
MOV 23H,#56H
MOV A,@R0
XCH A,DPH
执行以上指令后A=____________DPTR=__________
(3).
MOV A,#50H
MOV B,#77H
PUSH ACC
PUSH B
POP ACC
POP B
执行完本段指令后(A)=_________(B)=_______
2.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?
MOVA,59H
MOVR0,A
MOVA,#00H
MOV@R0,A
MOVA,#25H
MOV51H,A
MOV52H,#70H
3.已知(A)=83H,(R0)=17H,(17H)=34H。
请写出执行完下列程序段后A的内容。
ANLA,#17H
ORL17H,A
XRLA,@R0
CPLA
4.试分析下列程序段,当程序执行后,位地址00H,01H中的内容为何值?
P1口的8条I/0线为何状态?
CLRC
MOVA,#66H
JCLOOP1
CPLC
SETB01H
LOOP1:
ORLC,ACC.0
JBACC.2,LOOP2
CLR00H
LOOP2:
MOVP1,A
5.若A=11H,R0=33H,B=55H,(11H)=22H,(22H)=66H,(33H)=44H,在注释区写出分别执行下列指令后果的结果。
(1)MOV R1,A ;
(2)MOV R3,#11H ;
(3)MOV @R0,#22H ;
(4)MOV A,@R0 ;
(5)MOV B,33H ;
(6)MOV 40H,R0 ;
6.若A=78H,R0=34H,(34H)=DCH,(56H)=ABH,Cy=1,求分别执行下列指令后Y和Cy中的数据。
(1)ADDC A,@R0 ;
(2)SUBB A,56H ;
(3)DEC @R0 ;
(4)INC 56H ;
7.若A=B7H,R0=5EH,(23H)=A1H,Cy=0,将分别执行下列指令的结果写在注释区。
(1)ANL A,R0 ;
(2)ORL A,#23H ;
(3)XRL 23H,A ;
(4)RLC A ;
8.分别用一条指令实现下列功能。
(1)若进位位不为0,则转PROM1程序段执行。
(2)使PC=2000H。
(3)若A中的数据不等于100,则程序转至PROM3。
(4)若A中数据等于0,则程序转至PROM4。
(5)将R5中数据减1,若R5中数据不等于0,则程序转至PROM5。
(6)子程序返回。
9.已知外RAM(2040H)=50H,ROM(2090H)=96H,内RAM(20H)=85H,试求下列程序依次运行后有关单元中的内容。
MOV DPTP,#2040H ;
MOVX A,@DPTR ;
MOVC A,@A+DPTR ;
ADD A,20H ;
DA A ;
SWAP A ;
10.试求下列程序依次运行后有关单元中的内容。
MOV 20H,#A7H ;
MOV C,07H ;
ORL C,/H ;
CPL 00H ;
SETB 03H ;
MOV A,20H ;
RLC A ;
MOV 20H,A ;
11.已知:
(60H)=23H,(61H)=61H,以下程序段执行后(62H)= 。
CLR C
MOV A,#9AH
SUBB A,60H
ADD A,61H
DA A
MOV 62H,A
12.已知:
(A)=02H,(SP)=40H,(41H)=FFH,(42H)=FFH,以下程序段执行后(A)= .(SP)= .(41H)= .(42H)= .
(PC)= 。
POP DPH
POP DPL
MOV DPTR,#3000H
RR A
MOV B,A
MOVC A,@A+DPTR
PUSH ACC
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH ACC
RET
ORG 3000H
DB 10H,80H,30H,50H,30H,50H
13.以下程序段执行后(A)= ,(30H)= 。
MOV 30H,#0A4H
MOV A,#0D0H
MOV R0,#30H
MOV R2,#5EH
ANL A,R2
ORL A,@R0
SWAP A
CPL A
XRL A,#0FEH
ORL 30H,A
14.已知(59H)=50H,以下程序段执行后(A)= ,(50H)= ,
(51H)= ,(R0)= 。
MOV A,59H
MOV R0,A
MOV A,#00
MOV @R0,A
MOV A,#25H
MOV 51H,A
MOV 52H,#70H
15.完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。
(1)将R0的内容传送到R1;
(2)内部RAM单元60H的内容传送到寄存器R2;
(3)外部RAM单元1000H的内容传送到内部RAM单元60H;
(4)外部RAM单元1000H的内容传送到寄存器R2;
(5)外部RAM单元1000H的内容传送到外部RAM单元2000H。
16.若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。
试分析执行下列程序段后上述各单元内容的变化。
MOV A,@R1
MOV @R1,40H
MOV 40H,A
MOV R1,#7FH
17.若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?
若该指令影响标志位,试指出CY.AC.和OV的值。
(1)MOV A,@R0
(2)ANL 40H,#0FH
(3)ADD A,R4
(4)SWAP A
(5)DEC @R1
(6)XCHD A,@R1
18.若(50H)=40H,试写出执行以下程序段后累加器A.寄存器R0及内部RAM的40H.41H.42H单元中的内容各为多少?
MOV A,50H
MOV R0,A
MOV A,#00H
MOV @R0,A
MOV A,3BH
MOV 41H,A
MOV 42H,41H
MOV A,#10H (A)=
MOV B,A (B)=
MOV A,B (A)=
ADD A,B (A)=
MOV 20H,A (20H)=
INC A (A)=
MOV 21H,A (21H)=
INC A (A)=
MOV 22H,A (22H)=
19.MOV DPTR,#2000H (DPTR)=
MOV A,#80H (A)=
MOVX @DPTR,A (2000H)=
INC DPTR (DPTR)=
MOV A,#90H (A)=
MOVX @DPTR,A (2001H)=
MOV DPTR,#2000H (DPTR)=
MOVX A,@DPTR (A)=
MOV B,A (B)=
INC DPTR (DPTR)=
MOVX A,@DPTR (A)=
20.改正下列指令
MOV @R3,A
MOV DPTR,A
INC @R3 I
DEC DPTR
ADDC #30H,A
21.若(10H)=0FFH,(11H)=00H,(12H)=0FFH,(13H)=00H,写出每一步指令运行结果
MOV A,10H (A)= ,
ANL A,#01H (A)= ,
MOV A,11H (A)= ,
ORL A,#01H (A)= ,
MOV A,12H (A)= ,
XRL A,#01H (A)= ,
MOV A,13H (A)= ,
XRL A,#0AA (A)= ,
(10H)= ,(11H)= ,(12H)= ,(13H)=
22.MOV 30H,#60H
MOV R0,#60H
MOV A,30H
MOV B,A
MOV @R0,B
(A)= ,(R0)= ,(B)= ,
23.MOV SP,#60H
MOV A,#01H (A)= ,
MOV B,#02H (B)= ,
PUSH A (SP)= ,
PUSH B (SP)= ,
POP A
POP B (60H)= ,
24.改正下列指令
MOV A,DPTR
MOV DPTR,10H
MOV DPTR,40H
MOVX 40H,#30H
ADD 20H,#10H
25.设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?
(8分)
MOV R0,#30H ;R0=30H
MOV A,@R0 ;A=5AH
MOV R1,A ;R1=5AH
MOV B,R1 ;B=5AH
MOV @R1,P1 ;(5AH)=7FH
MOV A,P1 ;A=7FH
MOV 40H,#20H ;(40H)=20H
MOV 30H,40H ;(30H)=20H
26.位地址为M.N.Y,程序如下:
MOV C,M ;(M)➞C
ANL C, ;(M)
MOV Y,C ;(Y)=(M)
MOV C,M ;(M)➞C
ANL C,N ;(M)
ORL CY ;
MOV Y,C
求程序功能表达式:
27.阅读下列程序并回答问题
CLR C
MOV A,#9AH
SUBB A,60H
ADD A,61H,
DA A
MOV 62H,A
请问该程序执行何种操作?
28.已知初值:
(60H)=23H,(61H)=61H,请问运行程序后:
(62H)=( )?
(1).程序如下
2506H M5:
MOV SP,#58H;
2509H MOV 10H,0FH;
250CH MOV 11H,#0BH;
250FH ACALL XHD;
2511H MOV 20H,11H
2514H M5A:
SJMP M5A
XHD:
PUSH 10H
PUSH 11H
POP 10H
POP 11H
RET
问:
(1)执行POP10H后堆栈内容?
(2)执行M5A:
SJMP M5A后,(SP)=?
(20H)=?
29.解读下列程序,然后填写有关寄存器内容
(1) MOV R1,#48H
MOV 48H,#51H
CJNE @R1,#51H,00H
JNC NEXT1
MOV A,#0FFH
SJMP NEXT2
NEXT:
MOV A,#0AAH
NEXT2:
SJMP NEXT2
累加器 A=( )
(2) MOV A,#0FBH
MOV PSW,#10H
ADD A,#7FH
若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表:
PSW
CY
AC
F0
RS1
RS0
OV
F1
P
1
1
0
1
0
0
0
1
30.(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(4BH)=20H
MOV A,@R0 ;7FH➞A
MOV @R0,40,40H ;20H➞4BH
MOV 40H,A ;7FH➞40H
MOV R0,#35H
问执行和程序后,R0.A和4BH.40H单元内容的变化如何?
31.设(R0)=7EH,DPTR=10FEH,片内RAM 7FH和7FH两单元的内容分别是FFH和38H,请写出下列程序段的每条指令的执行结果。
INC @R0
INC R0
INC @R0
INC DPTR
INC DPTR
INC DPTR
32.设R0=20H,R1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,
(26H)=6FH,(27H)=76H,下列程序执行程序后,结果如何?
CLR C
MOV R2,#3
LOOP:
MOV A,@R0
ADDC A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,LOOP
JNC NEXT1
MOV @R0,#01H
SJMP $
NEXT:
DEC R0
SJMP $
(20H)=( ).(21H)= .(22H)= .(23H)= .CY=
A= .R0= .R1= 。
33.设片内RAM中(59H)=50H,执行下列程序段
MOV A,59H
MOV R0,A
MOV @R0,A
MOV A,#25H
MOV 51H,A
MOV 52H,#70H
A= ,(50H)= ,(51H)= ,(52H)= .
34. 说明下列各条指令画线部分寻址方式,并用图说明指令实现的操作。
(1) ADD A,30H
(2) MOVX A,@DPTR
(3) MOVC A,@A+PC
(4) ORL 60H,#23H
(5) MOV @R1,A
35. 若A=80H,R0=17H,(17H)=34H,执行下列程序后,A=?
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
36. 说明下列程序执行过程中,SP的内容以及堆栈中内容的改变过程。
MOV SP,#20H
MOV A,#20H
MOV B,#30H
PUSH ACC
PUSH B
POP ACC
POP B
37. 读程序,说明该程序完成的功能.
(1). JMP:
MOV DPTR,#TBJ
MOV A,R2
ADD A,R2
JNC NADD
INC DPH
NADD:
JMP @A+DPTR
TBJ:
AJMP PRG0
AJMP PRG1
……………….
AJMP PRGn
(2). ADD:
MOV R3,#0
MOV R4,#0
MOV R0,#50H
LOOP:
MOV A,R4
ADD A,@R0
MOV R4,A
INC R0
CLR A
ADDC A,R3
MOV R3,A
DJNZ R2,LOOP
RET
36.设内部RAM中59H单元的内容为50H,写出当执行下列程序