程序分析题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、分析程序,写岀结果
1、已知(A) =83H, (RO) =17H,( 17H) =34H,执行下列程序段后(A)=
ANL A , #17H
ORL 17H , A
XRL A , @R0
CPL A
2、下列程序段执行后,(RO) = __________ , ( 7EH) = ________ .
MOV R0 ,#7FH
MOV 7EH,#0
MOV 7FH,#42H
DEC @R0
DEC R0
DEC @R0
3. 已知(R3)=05H,运行程序后,结果为(50H )= 。
MAIN MOV A, R3
MOV DPTR, #TAB
MOVC A,@A+DPTR
MOV 50H, A
RET
TAB: DB 00, 01, 04, 09, 16
DB 25, 36, 49, 64, 81
这个子程序的功能是:__________________________________________ 。
4. 已知一片DAC0832接成单—
0下:
MOV DPTR, #4000H
MOV R0, #00H
WAIT: MOV A,R0
MOVX @DPTR,A
INC R0
NOP
SJMP WAIT
读程序执行后,DAC0832输出的波形为______________ 波。
5. 已知(R3)=05H,程序运行后,结果为(50H )= _ 。
MAIN: MOV A, R3
MOV DPTR, #TAB
MOVC A,@A+DPTR
MOV 50H, A
RET
TAB DB 00, 01, 04, 09, 16
DB 25, 36, 49, 64, 81
这个子程序的功能是________________________________________ ■6. 该段程序执行后,(A) = , (CY)= 二
MOV A, #56H
MOV R4, #95H
ADD A, R4
DA A
7. 下面该段程序的功能是 ___________________________________________ 。
MOV DPTR, #1000H
MOV R0, #20H
MOV A, #0FFH
LOOP: MOVX@DPTR, A
INC DPTR
DJNZR0, LOOP
8. 下列程序段执行后,(A)= _________ ,(B)= ________ 。
MOV A #0FBH
MOV B, #12H
DIV AB
9. 下面该段程序的功能是 _____________________________________________
CLR A
MOV R0, A
MOV R2, #09H
LOOP: ADD A, R0
INC R0
DJNZR2, LOOP
MOV R3, A
HERE: SJMPHERE
三、分析程序,写岀结果(答)
1. 0CBH
2. 7EH , 0FFH
3. 25 ,查表求A中所放数的平方值
4. 锯齿波
5. 25 (或19H),查表求0〜9数字的平方值
6. 51H , 1
7. 将外部RAM中从1000H单元开始的20H个单元的值置成0FFH=
8 13 (0DF), 17 (11H)
9.完成0〜8之间自然数的求和。
1. 已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH.下述程序执行后:POP DPH
POP DPL
MOV DPTR,#4000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH A
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH A
RET
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
30H, 50H, 50H,30H
问:A=( 50H ),SP=( 52H ),(51H)=( 30H ),(52H)=( 50H ).
2. 写岀下列程序的运行结果。
MOV SP, # 40H
MOV 42H, #85H
MOV 55H, #37H
PUSH 42H
PUSH 55H
POP 42H
POP 55H
(SP) = _ _40H_ _ (42H )= ___ 37H_ (55H) = ____ 85H _
MOV DPTR #4002H MOVX A @DPTR MOV R0,#42H
MOV A ,@R0
3、 设R 0的内容为32H, A 的内容为48H ,内部RAM 的 32H 单元内容为80H, 40H 单元内容为08H 。
执行如 下程序段:
MOV A,@R ; MOV @R40H ;
MOV 40H,A ; MOV R,#35
;
试分析:( R o ) = _______ ; (A ) = ______ ; ( 32H ) = _____ ; (40H) = _______ ;
4、 若(CY ) =1, ( P1) =10100011B, ( P3) =01101100B 执行如下程序段:试指出执行下列程序段后, 。
MOV P1.3 , C MOV P1.4 , C MOV C, P1.6
MOV P3.6 , C MOV C, P1.0 MOV P3.4 , C
试分析CY P1 口及P3 口内容的变化情况: ____________________________ 。
5、 假设一个有符号二进制 数0BAH 存入片内30H 单元中,执行如下程序段: X EQU 30H Y
EQU 32H
MOV A,X
JNB ACC.7,ZHENG
CPL A
ORL A,#80H
ADD
A,#01H
ZHENG: MOV Y,A
试分析: (32H)=
该程序段的功能为:
6、定义一个连续的片内数据区 30H 31H 、32H 33H, —个无符号二进制数 0F6H 存入30H 单元中,执行如 下程序段:
1、已知片内 44H
43H 42H 41H 40H
RAM 片外ROM 片外RAM 单元存储内容如图所示,分析如下程序段执行结果: (A )
= ______
高8位存于21H 单元,低8位存于20H 单元。
执行如下程序段:
CLR C
XCH A ,21H
RRC A
XCH A ,21H XCH A ,20H
RRC A
XCH A
,20H 试分析: (21H) = ;(20H )=
该程序段的功能是:
MOVC A @ A+DPTR
2、有一个16位二进制数1021H , (A) = _____ (A ) = ______
MOV A , 30H MOV B
, #64H
DIV AB
MOV 31H, A MOV A , B MOV B , #0AH
DIV AB
MOV 32H, A MOV 33H, B
试分析:(31H) = ; ( 32H ) =
; (33H)=
该程序段的功能为:。
1、程序存储器空间表格如下: 地址 2 0 0 0 H 2 0 0 1 H 2 0 0 2 H 2003H ...
内容
3FH
0 6H
5BH 4FH ...
已知:片内RAM 的2 0H 中为0 1 H,执行下列程序后(30 H )=?
MOV
A,20H ;0 1H ? A INC
A
;01H+1 = 02H
? A
MOV
DPTR, # 2 0 0 0 H ; 2 0 0 0 H ? DPTR
MOVC
A,@A + DPTR ; ( 2 0 0 0H + 2)=5BH ? A CPL
A
;5BH 求反等于 A4H MOV 30H,A
;A4H
? (30H)
END: SJMP END
答 执行程序后 ,(30H)=A4
2、分析程序段:
CLR C
MOV A, #91H
SUBB A, 6 1H
; 求6 0H 内的BCD 数的补数,9AH —24H=76H
ADD A, 6 1H ; 76H+72H=E8H
DA A
CY=1、A=4 8H MOV 6 2 H,A
解:根据9AH : =99 =1的特殊性该程序功能为单字节BCD 数减法运算,即完成的是(6 1H )
— (60H) ? (6 2H )。
所以运行后,(62H )=48H ,意即 72—24 = 48
MOV A,@R0
;7FH ? A MOV @R0, 40H
;20H
? 4BH
MOV 40H,A ;7FH ? 40H MOV R0,#35H
问执行和程序后,R0 A 和 4BH 40H 单元内容的变化如何? 答 程序执行后(R0)= =35H,(A)=7FH,(4BH)=20H,(40H)=7F
H
2、设(R0)=7EH,DPTR=10FEH ,片内 RAM
H 和3 8H ,请写出下列程序段的每条指令的执行结果。
INC @R0
INC R0
INC @R0
INC DPTR
INC DPTR
INC DPTR 解
(1) (7EH)
= 00H
(2)R0 = 7FH
(3)7FH = 3 9H (4)DPTR : =10FFH (5)DPTR : =1100H
(6)DPTR : = 110 1H
1、(R0)=4BH,(A)=84H,片内 RAM(4BH)=7FH,(40H)=20H 7 E H 和7FH 两单元的内容分别是FF
1、设 R0=20H,R
1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,
(26H)=6 FH,(27H)=76H,下列程序执行程序后,结果如何?
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) =(20H)、(21H)=00H 、(22H)=17H 、(23H)=01H 、CY=1、A=17H R0=23H R 仁28H
2、设片内RAM 中(5 9H)=50H,执行下列程序
—
- —
MOV A,5 9 H
MOV
R0,A
MOV
@R0, A MOV A,#2 5H MOV 5 1H, A MOV
5 2H,
#70H
解 A=2 5H,
(50H)=0丄 (51H)=25H,
(52H)=70H,
(A) = 10H (B) = 10H (A ) = 20H A ) = ~20H
20H ) = 21H — (A ) = —21H (21H ) = 22H A ) = 22H (22H ) = 22H (DPTR = 2000H (A ) = 80H (2000H) = 80H (DPTR = 2001H (A ) = 90H (2001H ) = 90H (DPTR = 2000H (A ) = 80H (B ) = 80H
(DPTR = 2001H
(A ) = 90H
MOV R0,#60H MOV A,30H
1. MOV A,#10H
MOV B,A MOV A,B ADD A,B MOV 20H,A INC A
MOV 21H,A INC A
MOV 22H,A
2. MOV DPTR,#2000H MOV A,#80H
MOVX @DPTR,A INC DPTR MOV A,#90H
MOVX @DPTR,A MOV DPTR,#2000H MOVX A,@DPTR MOV B,A INC DPTR
MOVX A,@DPTR
MOV @R0,B
(A)= ,(R0 )= ,(B )=
3. MOV SP,#60H
MOV A,#01H (A)= 01H
MOV B,#02H (B )= 02H
PUSH A (SP )= 61H
PUSH B (SP )= 62H
POP A
POP B (6 0H )= 01H
1、位地址为M N、Y,程序如下:
MOV C , M ;( M) ? C
NOT C, ;(M)
MOV Y,C ;(Y)=(M)
MOV C,M ;(M) ? C
ANL C,N ;(M)
ORL CY ;
MOV Y,C
程序实现的逻辑表达式是什么?
(Y) =(M)*(/N)+(M)*(N)
2、阅读下列程序并回答问题
CLR C
MOV A,#9AH
SUBB A,60H
ADD A,61H,
DA A
MOV 62H,A
(1)请问该程序执行何种操作?
(2)已知初值:(60H) =23H,(61H)=61H,请问运行程序后:(62H)=( )?
解
(1) 操作是单字节BCD码运算,是将
(61H)-(6 0H) ? 6 2H
(2) (62H)=38H
1、MOV A #50
MOV B, #77H
PUSH A
PUSH B
POP A
POP B
执行完本段指令后(A) = 77 Ho
2、已知:(60H)= 23H, ( 61H)= 61H,以下程序段执行后(62H)= 38 H
CLR C
MOV A # 9AH
SUBB A 60H
ADD A 61H
DA A
MOV 62H, A
3、已知:(A)= 02H, (SP)= 42H, (41H)= FFH, (42H)= FFH,
以下程序段执行后(A)= 30 H、(SP)= 40 H、( PQ = 3080 H o
POP DPH (DPTR =FFFFH
POP DPL;
MOV DPTR # 3000H
RR A (A)=01H
MOV B A; (B) =01H
MOVC A, @Ab DPTR (A ) =80H
PUSH A (41H) =80H MOV A B ; (A ) =01H INC A (A ) =02H MOVC
A, @Ab DPTR (A ) =30H
PUSH A (42H) =30H RET ; ( PC ) =3080H
ORG 3000H DB 10H, 80H, 30H , 50H, 70H
4、试分析执行下列指令 MOV A, #8DH SETB C
ADDC A, #0B2H
后,(A ) = 40 H , OV= 1 , P= 1 1、写岀下列指令执行后的结果: MOV A , #20H
MOV R0, #20H MOV @R0 A
ANL A, #0FH ORL A, #80H XRL A, @R0
(A ) =0A0 H ; (R0) = 20 H ; (20H)=20 H 2、写出下列程序执行后,寄存器
60H 〜6FH 的内容为
00H
ORG 4000H
START AJMP MAIN
ORG 4100H
MAIN: MOV R0, #60H
MOV R7 , #10H
MOV A , #00H LOOP MOV @R0 A
INC A INC R0
DJNZ R7 , LOOP
HERE AJMP HERE
END
3、 MOV DPTR #2314H MOV R0, DPH MOV 14H, #22H MOV
R1, DPL
MOV 23H, #56H MOV A, @R0 XCH A, DPH
执行以上指令后(DPTR =5614 H ; 4、 试分析执行下列指令 MOV A, #0BH SETB C
ADDC A, #74H
后,(A ) = 80 H , OV= 1
, P= 1 , C= 0
1. ____________________________ 执行下列程序段后,(P1)= MOV
P1, #5DH
CPL P1.1 CPL P1.2 CLR P1.6 SETB P1.7
2. ___________________________ 执行下列程序段后,(A)= ,(C Y )= MOV A , #C5H
,C= 1
0FH
RL A
3. ____________________________ 下列程序段执行后,(R0)= __ ,(7EH)= ,(7FH)= MOV R0,#7EH
MOV 7EH ,
#0FF
MOV 7FH,
#40H
1NC @R0
1NC R0
1NC @R0
4. 已知(SP)=60H ,子程序SUBTRN的首地址为0345H ,现执行位于0123H的ACALL SUBTRN
后,(PC)=___,(61H)= _____ ,(62H)= ___ 。
5. 阅读下列程序,说明其功能。
MOV R0,#data
MOV A,@R0
RL A
MOV R1 ,A
RL A
RL A
ADD A,R1
MOV @R0,A
RET
答案: 1.(P1)=9BH
2. (A)=8BH( 或10001011B)
(C Y)=不影响
3. (R0)=7FH (7EH)=00H
(7FH)=41H
4. (PC)=0345H
(61H)=25H
(62H)=01H
5. (data)x 10 操作
1. 执行下列指令组后,A = ( ), B =( )。
MOV A ,#33H ;
ADD A ,#49H;
MOV B ,A ;
ADD A ,#00H ;
DA A ;
2. 已知(R1)=3FH , (3FH)=11H , (40H)=00H执行下列指令组后
(R1)=( ),(3FH)=( ),(40H)=( )。
INC R1 ;
INC @R1 ;
INC 40H;
3. 已知(31H)=21H , (32H)=04H,执行下列指令组后(31H)=( ), (32H)=( )
PUSH 31H
PUSH 32H
POP 31H
POP 32H
4. 执行下列指令组后,A=( ),OV=( ),P=( )
MOV A,#0B4H
ADD A,#00H
SUBB A,#51H
5•假定外部数据存储器2000H单元的内容为80H,执行下列指令后,累加器A中的内容为( MOV P2,#20H
MOV R0,#00H
MOVX A,@R0
6•假定累加器A的内容为30H,执行指令:
1000H :MOVC A ,@A+PC 双字节指令)。
后,把程序存储器( )单元的内容送累加器 A 中。
7•假定(A)=85H , (R0)=20H , (20H)=0AFH。
执行指令:
ADD A,@R0
后,累加器 A = ( ), Cy = ( ), AC = ( ), OV =()。
8•假定(A)=85H , (20H)=0FFH , (Cy)=1,执行指令:ADDC A,20H 后,累加器A= ( ),Cy= ( ),AC= ( ),OV= ( )。
9. 假定(A)=0FFH ,(R3)=0FH ,(30H)=0F0H ,(R0)=40H ,(40H)=00H
INC A
INC R3
INC 30H
INC @R0
后,累加器A=( ),R3=( ),30H=( ),40H=( )。
10. 假定(A)=56H ,(R5)=67H 。
执行指令:
ADD A,R5
DA A
后,累加器A= ( ),Cy= ( )。
11. 假定(A)=0FH ,(R7)=19H ,(30H)=00H ,(R1)=40H ,(40H)=0FFH
DEC A
DEC R7
DEC 30H
DEC @Ri
后,A=( ),R7=( ),30H=( ),40H=( )。
12. 假定(A)=0C5H ,执行指令:
SWAP A
后,累加器 A 的内容为( )。
13. 执行下列指令序列:
MOV C, P1.0
ANL C,P1.1
ANL C,/P1.2
MOV P3.0,
C 后,所实现的逻辑运算式为( ) 执行指令:执行指令:。