单片机习题和试题库之六 读程序(附参考答案)
2009-06-08 22:49阅读:
1.写出下列指令执行的结果
(1).
MOV A,#20H
MOV R0,#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)=6 FH,(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,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?
MOVA, 59H
MOVR0, A
MOVA, #00H
MOV@R0, A
MOVA, #25H
MOV51H, A
MOV52H, #70H
37.已知(A)=83H,(R0)=17H,(17H)=34H。请写出执行完下列程序段后A的内容。
ANLA,#17H
ORL17H, A
XRLA, @R0
CPLA
38.使用位操作指令实现下列逻辑操作,要求不得改变未涉及位的内容。
(1)使ACC.0置1;
(2)清除累加器高4位;
(3)清除ACC.3,ACC.4, ACC.5, ACC.6。
39.试分析下列程序段,当程序执行后,位地址00H,01H中的内容为何值?P1口的8条I/0线为何状态?
CLRC
MOVA,#66H
JCLOOP1
CPLC
SETB01H
LOOP1:ORLC,ACC.0
JBACC.2,LOOP2
CLR00H
LOOP2:MOVP1,
40.指出下列指令各是什么寻址方式?
MOV
A,
diret
MOV
A,
#data
MOV
A,
R0
MOV
A,
@R1
参考答案:
1.
(1) A=A0H
R0=20H
(20H)=20H
(2) A=23H
DPTR=5614H
(3) (A)=77H
(B)=50H
2. A=50H
R0=50H
A=00H
(50H)=00H
A=25H
(51H)=25H
(52H)=70H
3. A=C8H
4. (00H)=1
(01H)=1
P1: 01100111
5. (1) R1=11H
(2) R3=11H
(3) (33H)=22H
(4) A=44H
(5) B=44H
(6) (40H)=33H
6. (1) Y=55H
Cy=1
(2) Y=CCH
Cy=1
(3) Y=DBH
Cy=1
(4) Y=57H
Cy=1
7. (1) A=16H
(2) A=B7H
(3) (23H)=16H
(4) A=6EH
Cy=1
9.
DPTR=2040H
A=50H
A=96H
A=1BH
A=81H
A=18H
10.
(20H)=A7H
C=0
C=1H
20H的0位取反
20H的3位置1
A=AEH
A=5DH
(20H)=5DH
11. (62H)=38H
12. (A)=05H
(SP)=40H
(41H)=30H
(42H)=50H
(PC)=4241H
13. (A)=4EH
(30H)=7EH
14. (A)=25H
(50H)=00H
(51H)=25H
(52H)=70H
15. (1) MOV A,R0
MOV
R1,A
(2) MOV R2,60H
(3) MOV DPTR,#1000H
MOV
A,@DPTR
MOV
60H,A
(4) MOV DPTR,#1000H
MOV
A,@DPTR
MOV
R2,A
(5) MOV DPTR,#1000H
MOVX
A,@DPTR
MOV
DPTR,#2000H
MOVX
@DPTR,A
16. (R1)=7FH
(A)=60H
(30H)=08H
(40H)=60H
17. (1) (A)=2CH
(2) (40H)=0H
(3) (A)=22H
Cy=1
Ac=1
OV=0
(4) (A)=8EH
(5) (20H)=0EH
(6) (A)=EFH
(20H)=08H
18. (A)=3BH
(R0)=40H
(40H)=00H
(41H)=3BH
(42H)=3BH
(A)=10H
(B)=10H
(A)=10H
(A)=20H
(20H)=20H
(A)=21H
(21H)=21H
(A)=22H
(22H)=22H
19.
(DPTR)=2000H
(A)=80H
(2000H)=80H
(DPTR)=2001H
(A)=90H
(2001H)=90H
(DPTR)=2000H
(A)=80H
(B)=80H
(DPTR)=2001H (A)=90H
20.
MOV R0,A
MOV @DPTR,A
INC @R0
DEC @DPTR
ADDC A,#30H
21.
(A)=0FFH
(A)=01H
(A)=00H
(A)=01H
(A)=0FFH
(A)=0FEH
(A)=00H
(A)=0AH
(10H)=0FFH
(11H)=00H
(12H)=0FFH
(13H)=00H
22.
(A)=60H
(R0)=60H
(B)=60H
23.
(A)=01H
(B)=02H
(SP)=61H
(SP)=62H
(60H)=01H
24.
MOVX A,@DPTR
MOVX @DPTR,10H
MOVX @DPTR,40H
MOV 40H,#30H
ADD A,#10H
25.
R0=30H
R1=5AH
A=7FH
B=5AH
P1=7FH
(30H)=20H
(40H)=20H
(5AH)=7FH
26.
Y=MN+M
27.
十进制加法
30.
R0=35H
A=7FH
(4BH)=20H
(40H)=7FH
31.
(7EH)=00H
(R0)=7FH
(7FH)=39H
DPTR=10FFH
DPTR=1100H
DPTR=1101H
33.
A=25H
(50H)=50H
(51H)=25H
(52H)=70H
34.
(1)直接寻址
(2)寄存器间接寻址
(3)寄存器间接寻址
(4)立即寻址
(5)寄存器间接寻址
35.
A=CBH
36.
A=30H
B=20H
37.
(1) 实现程序的多分枝转移
(2)
累加
36.
A=25H
R0=50H
(50H)=00H
(51H)=25H
(52H)=70H
37.
A=CBH
38.
(1) SETB E0H
(2) ANL
A,#0FH
(3) ANL
A,#87H
39.
(00H)=1
(01H)=1
P1:
01100111
40.
直接寻址
立即寻址
寄存器寻址
寄存器间接寻址
(
注:本答案仅供参考,不对指出请指正)