六 程序分析
1、 假定A=0FFH,R3=0FH,(30H)=0F0H,R0=40H,(40H)=00H:
INC A
INC R3 INC 30H INC @R0
执行以上指令后,累加器A=( 00H ),R0=( 01H ),R3=( 10H ),(20H)=( F1H ),(40H)=( 01H )。 2、 假定SP=60H,A=30H,B=70H:
PUSH ACC
PUSH B
执行以上指令后,SP=( 62H ),(61H)=( 30H ),(62H)=( 20H )。 3、 假定SP=62H,(61H)=30H,(62H)=70H:
POP DPH
POP DPL
执行以上命令后,DPTR=( 7030H ),SP=( 60H )。 4、 现有以下指令:
ORG 1000H LCALL 4000H ORG 4000H
ADD A,R2
执行完LCALL指令后,PC=( 4000H )。
5、 假定A=56,R5=67:
ADD A,R5 DA A
执行以上指令后,累加器A=( 23 ),CY=( 1 )。 6、 假定A=0FH, R7=19H,(30H)=00H,(R1)=40H,(40H)=0FFH:
DRC A
DEC R7 DEC 30H DEC @R1
执行以上指令后,累加器A=( 0EH ),R7=( 18H ),(30H)=( FFH ( 0FEH )。 7、 执行下列程序段后CY=( 1 ),OV=( 0 ),A=( 94H )。
MOV A,#56H
ADD A,#74H
ADD A,A
8、 执行如下三条指令后,(30H)=( 0EH )。
MOV R1,#30H
MOV 40H,#0EH
MOV @R1,40H
9、 以下程序运行时,在执行完RET指令后,PC=( 2003H )。
ORG 2000H
LCALL 3000H
29
),(40H)=ORG 3000H RET
10、执行完以下程序中的最后一条指令后,PC=( 0040H )。
ORG 0000H
AJMP 0040H ORG 0040H MOV SP,#00H
11、MCS—51指令系统中,执行下列程序后,程序计数器PC=( 1500 )。
ORG 0000H
MOV DPDR,#1000 MOV A, #00H MOV 20H,A LJMP 1500
GND
12、MCS—51指令系统中,执行下列程序后,堆栈指针SP=( 32H MOV SP,#30H
MOV A,20H LACALL 1000 MOV 20H,A SJMP $
13、MCS—51指令系统中,执行下列指令后,A=( 27H ),CY=( 1 MOV A, #68H
ADD A, #53H DA A
SJMP $
14、执行下列程序后,累加器A=( 08H )。
ORG 0000H MOV A, #00H
ADD A, #02H MOV DPTR, #0050H MOVC A, @A+DPDR MOV R0, A SJMP $
ORG 0050H
BAO: DB 00H,08H,0BH,6H,09H,0CH END
15、假设有位地址为M、N、Y,程序如下:
MOV C,M ANL C,/N MOV Y,C MOV C,M ANL C,N ORL C,Y MOV Y,C
写出M、N、Y之间的逻辑表达
16、已有R0=4BH,A=84H,片内RAM(4BH)=7FH,(40H)=20H
30
。
),OV=()。) 0
MOV A,@R0 MOV @R0,40H MOV 40H,A MOV R0,#35H
执行以上程序后,R0=( 35H ),A=( 7FH ),(4BH)=( 20H ),(40H)=( 7FH )。 17、设R0=20H,R1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,(26H)=6FH,(27H)
=76H。
MOV R0,#20H
MOV R1,#25H MOV R2,#3
CLR C
LOOP: MOV A,@R0
ADDC A,@R1 MOV @R0,A INC R0 INC R1
DJNZ R2,LOOP
SJMP $
执行以上程序后,(20H)=( 20H ),(21H)=( 00H ),(22H)=( 17H ),CY=( 1 ),A=( 17H ),R0=( 22H ),R1=( 76H )。
18、若MCS-51的晶振频率为6MHz,试计算延时子程序的延时时间。。
DELAY:MOV R7,#0F6H LP:MOV R6,#0FAH DJNZ R6,$
DJNZ R7,LP RET
19、设片内RAM中(59H)=50H,执行下列程序段
MOV A,59H
MOV R0,A MOV A,#0 MOV @R0,A MOV A,#26H MOV 51H,A
MOV 52H,#70H 问A=( 26H ),(50H)=( 00H ),(51H)=( 26H ),(52H)=( 70H )。
20、已知A=7AH,R0=30H,(30H)=A5H,请问下列程序段执行后,A=( 68H ),(30H)= ( 32H )。
ANL A,#17H
ORL 30H,A XRL A,@R0 CPL A
21、如果(40H)=98H,(41H)=AFH,请说明以下程序的作用和获得的结果。
MOV R0,#40H
MOV A,@R0 INC R0 ADD A,@R0 INC R0
31
MOV @R0,A CLR A ADDC A,#0 INC R0
MOV @R0,A
22、如果(61H)=F2H,(62H)=CCH,请说明以下程序的作用和获得的结果。
MOV A,61H MOV B,#02H
MUL AB ADD A,62H MOV 63H,A CLR A ADDC A,B
MOV 64H,A
23、如果R3=FBH,R4=64H,请说明以下程序的作用和获得的结果。
CLR C MOV A,R3 RRC A MOV R3,A MOV A,R4 RRC A MOV R4,A
24、如果(31H)=09H,(32H)=08H,请说明以下程序的作用和获得的结果。
MOV R0,#31H
MOV A,@R0 SWAP A DEC R0
XCHD A,@R0 MOV 40H,A MOV R0,#50H MOV A,#40H MVO @R0,A MOVX @R0,A
25、请说明以下程序的作用和获得的结果。
MOV R0,#60H
MOV A,#40H MOV @R0,A MOVX @R0,A
26、如果(0031H)=09H,(0032H)=08H,请说明以下程序的作用和获得的结果。
MOV R1,#30H
MOVX A,@R1 MOV @R1,A INC R1
MOVX A,@R1
MOV @R1,A
27、如果从片内RAM的38H开始,存放着数48H、F2H、81H、A8H、00H、C4H,请说明以下程序的作
32