《单片机原理及应用》题库及答案 下载本文

六 程序分析

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