资源描述
三、分析程序,写出结果
1、已知(A)=83H, (R0)=17H,(17H)=34H,执行下列程序段后(A)= 。
ANL A, #17H
ORL 17H, A
XRL A,@R0
CPL A
2、下列程序段执行后,(R0)=_________,(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接成单缓冲方式,其地址为4000H,其控制程序如下:
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
DJNZ R0, 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
DJNZ R2, LOOP
MOV R3, A
HERE: SJMP HERE
三、分析程序,写出结果(答)
1. 0CBH
2. 7EH, 0FFH
3. 25, 查表求A中所放数的平方值
4. 锯齿波
5. 25(或19H),查表求0~9数字的平方值
6. 51H, 1
7. 将外部RAM中从1000H单元开始的20H个单元的值置成0FFH。
8. 13(0DH), 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__________
1、已知片内RAM、片外ROM、片外RAM单元存储内容如图所示,分析如下程序段执行结果:
44H
43H
42H
41H
40H
4004H 4003H 4002H 4001H 4000H
4004H 4003H 4002H 4001H 4000H
04H
39H
44H
03H
42H
43H
02H
40H
42H
01H
41H
40H
00H
43H
41H
片内 RAM 片外ROM 片外RAM
MOV DPTR,#4002H
MOVX A,@DPTR (A)=___
MOV R0,#42H
MOV A,@R0 (A)=___
MOVC A,@ A+DPTR (A)=___
2、有一个16位二进制数1021H,高8位存于21H单元,低8位存于20H单元。执行如下程序段:
CLR C
XCH A,21H
RRC A
XCH A,21H
XCH A,20H
RRC A
XCH A,20H
试分析:(21H)= ;(20H)=
该程序段的功能是: 。
3、设的内容为32H,A的内容为48H,内部RAM的32H单元内容为80H,40H单元内容为08H。执行如下程序段:
MOV A,@R0 ;
MOV @R0,40H ;
MOV 40H,A ;
MOV R0,#35 ;
试分析:()= ;(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单元中,执行如下程序段:
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、程序存储器空间表格如下:
地址 2000H 2001H 2002H 2003H ...
内容 3FH 06H 5BH 4FH ...
已知:片内RAM的20H中为01H,执行下列程序后(30H)=?
MOV A,20H ;01H➞A
INC A ;01H+1=02H➞A
MOV DPTR,#2000H ;2000H➞DPTR
MOVC A,@A+DPTR ;(2000H+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,61H ;求60H内的BCD数的补数,9AH-24H=76H
ADD A,61H ;76H+72H=E8H
DA A ;CY=1、A=48H
MOV 62H,A
解:根据9AH=99=1的特殊性,该程序功能为单字节BCD数减法运算,即完成的是(61H)-(60H)➞(62H)。所以运行后,(62H)=48H,意即72-24=48
1、(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(40H)=20H
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)=7FH.
2、设(R0)=7EH,DPTR=10FEH,片内RAM 7EH和7FH两单元的内容分别是FFH和38H,请写出下列程序段的每条指令的执行结果。
INC @R0
INC R0
INC @R0
INC DPTR
INC DPTR
INC DPTR
解 (1)(7EH)=00H
(2)R0=7FH
(3)7FH=39H
(4)DPTR=10FFH
(5)DPTR=1100H
(6)DPTR=1101H
1、设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)=(20H)、(21H)=00H、(22H)=17H、(23H)=01H、 CY=1、A=17H、R0=23H、R1=28H
2、设片内RAM中(59H)=50H,执行下列程序段
MOV A,59H
MOV R0,A
MOV @R0,A
MOV A,#25H
MOV 51H,A
MOV 52H,#70H
解 A=25H,(50H)=0,(51H)=25H,(52H)=70H.
1. MOV A,#10H (A)= 10H
MOV B,A (B)= 10H
MOV A,B (A)= 20H
ADD A,B (A)= 20H
MOV 20H,A (20H)= 21H
INC A (A)= 21H
MOV 21H,A (21H)= 22H
INC A (A)= 22H
MOV 22H,A (22H)= 22H
2.MOV DPTR,#2000H (DPTR)= 2000H
MOV A,#80H (A)= 80H
MOVX @DPTR,A (2000H)= 80H
INC DPTR (DPTR)= 2001H
MOV A,#90H (A)= 90H
MOVX @DPTR,A (2001H)= 90H
MOV DPTR,#2000H (DPTR)= 2000H
MOVX A,@DPTR (A)= 80H
MOV B,A (B)= 80H
INC DPTR (DPTR)= 2001H
MOVX A,@DPTR (A)= 90H
2. 若(10H)=0FFH,(11H)=00H,(12H)=0FFH,(13H)=00H,写出每一步指令运行结果
MOV A,10H (A)= 0FFH ,
ANL A,#01H (A)= 01H ,
MOV A,11H (A)= 00H ,
ORL A,#01H (A)= 01H ,
MOV A,12H (A)= FFH ,
XRL A,#01H (A)= 01H ,
MOV A,13H (A)= 00H ,
XRL A,#0AA (A)= 0A ,
(10H)= FFH , (11H)= 00H , (12H)= FFH , (13H)= 00H
2.MOV 30H,#60H
MOV R0,#60H
MOV A,30H
MOV B,A
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 (60H)= 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)-(60H)➞62H
(2)(62H)=38H
1、 MOV A,#50H
MOV B,#77H
PUSH A
PUSH B
POP A
POP B
执行完本段指令后(A)= 77 H。
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 、(PC)=3080 H 。
POP DPH;(DPTR)=FFFFH
POP DPL;
MOV DPTR,#3000H
RR A;(A)=01H
MOV B,A;(B)=01H
MOVC A,@A+DPTR;(A)=80H
PUSH A;(41H)=80H
MOV A,B;(A)=01H
INC A;(A)=02H
MOVC A,@A+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 ,C= 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 ~ 0FH 。
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)=_______,(CY)=____。
MOV A,#C5H
RL A
3.下列程序段执行后,(R0)=_______,(7EH)=____,(7FH)=_______。
MOV R0,#7EH
MOV 7EH,#0FFH
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)
(CY)=不影响
3.(R0)=7FH
(7EH)=00H
(7FH)=41H
4.(PC)=0345H
(61H)=25H
(62H)=01H
5.(data)×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
后,所实现的逻辑运算式为( )。
9
展开阅读全文