8051单片机基础知识测试题
1. 判断题 (1分)
SP的当前值为60H,执行LCALL指令后SP的值为( )。
2. 填空题 (2分)
在使用MOVX @Ri类指令访问外部扩展的数据存储器时,使用的( )根地址线由( )口输出。
3. 单选题 (1分)
若PSW中的值为88H,则当前工作寄存器区是( )区。
A. 3
B. 1
C. 2
D. 0
4. 判断题 (1分)
INC A指令不影响PSW中的CY标志。( )
5. 填空题 (2分)
在使用MOVX @DPTR类指令访问外部扩展的数据存储器时,P2口用于输出( ),P0口用于传送低8位地址和( )。
6. 填空题 (2分)
MOVC指令访问( )存储器,MOVX指令访问( )存储器。
7. 单选题 (1分)
执行子程序调用指令时,要向堆栈压入( )个字节。
A. 2
B. 1
C. 4
D. 3
8. 单选题 (1分)
执行子程序返回指令时,返回地址是( )。
A. 调用指令的首地址
B. 返回指令的末地址
C. 调用指令的下一条指令的首地址
D. 调用指令的末地址
9. 填空题 (1分)
累加器A中为小于128的8位无符号数,执行RL A指令,则A中数变为原来的()倍。
10. 填空题 (2分)
在8051中,PC和DPTR都用于提供地址,( )是用户程序不可访问的,( )可以分为两个8位寄存器使用。
11. 单选题 (1分)
假设PSW的内容为18H,指令( )将R0的内容传送给R1。
A. MOV R1,10H
B. MOV R1,18H
C. MOV R1,08H
D. MOV 18H,R0
12. 填空题 (1分)
如果累加器中的值为80H,则执行完XRL A,#0FFH指令后其值变为( )H。
13. 填空题 (1分)
MOV B, #20H是( )字节指令。
14. 单选题 (1分)
执行PUSH ACC指令,8051完成的操作是( )。
A. (ACC)→(SP);(SP)+1→SP
B. (SP)-1→SP;(ACC)→(SP)
C. (ACC)→(SP);(SP)-1→SP
D. (SP)+1→SP;(ACC)→(SP)
15. 填空题 (1分)
执行完XRL A,ACC指令后,累加器的值为( )H。
16. 单选题 (1分)
假设累加器的值为01H,CY标志为0,数据存储器单元30H中的值为FFH,下述指令中能将CY标志置1的指令是( )。
A. CPL A
B. ADD A, 30H
C. INC 30H
D. DEC A
17. 判断题 (1分)
对于相对转移指令,偏移量的取值范围是-127~+127。( )
18. 判断题 (1分)
8051访问外部数据存储器时只能使用间接寻址方式。( )
19. 填空题 (1分)
累加器A中为8位无符号数,最低位为0,执行RR A 指令,则A中的数变为原来的()。
20. 填空题 (1分)
如果累加器中的值为29H,则执行完RL A 指令后ACC.3的值是( )。
21. 单选题 (1分)
下述指令中将CY标志清零的指令是( )。
A. 以上都不是
B. CLR ALL
C. MOV PSW,#00H
D. CLR PSW
22. 单选题 (1分)
设8051单片机的晶振频率为12MHz,则最短的指令周期为( )μs。
A. 1
B. 2
C. 3
D. 4
23. 单选题 (1分)
执行下面的子程序后,( )。
SUBRT0: PUSH ACC
PUSH B
POP ACC
POP B
RET
A. 累加器和B寄存器不发生变化
B. 返回到AB寄存器对组成的地址
C. 返回到BA寄存器对组成的地址
D. 累加器和B寄存器的内容互换
24. 判断题 (1分)
访问特殊功能寄存器只能用直接寻址方式。( )
25. 单选题 (1分)
执行完下面的程序段后,累加器的内容是( )。
MOV PSW,#00H
MOV R4,A
SUBB A,R4
A. 00H
B. FFH
C. 01H
D. 不确定
26. 单选题 (1分)
指令LJMP的跳转范围是( )。
A. 2KB
B. 64KB
C. 1KB
D. 256B
27. 填空题 (1分)
执行指令ORL A,#80H后,累加器中的最高位为( )。
28. 判断题 (1分)
逻辑运算指令不影响PSW中的CY和OV标志。( )
29. 单选题 (1分)
对外部数据存储器的读/写操作,只能使用( )。
A. MOV指令
B. MOVC指令
C. MOVX指令
D. MOVX指令
30. 判断题 (1分)
MOVX @R0, A指令使用P0口提供8位地址,P2口不受影响。( )
31. 判断题 (1分)
调用子程序指令及返回指令与堆栈有关,但与PC无关。( )
32. 填空题 (1分)
执行完下面的程序后,累加器的值为00H,则寄存器R2的初始值是( )。
MOV A, R2
ADDC A,R2
INC A
33. 单选题 (1分)
对程序存储器的读操作,只能使用( )。
A. MOVX指令
B. POP指令
C. MOVC指令
D. MOV指令
34. 单选题 (1分)
执行下面的主程序后,累加器中的值为( )。
MAIN: MOV R7,#22H
LCALL LOAD33
SJMP MAIN
OVER: SJMP OVER
LOAD33:PUSH PSW
MOV PSW,#18H
MOV R7,#33H
POP PSW
RET
A. 1FH
B. 33H
C. 22H
D. 不确定
35. 填空题 (1分)
累加器A中为小于128的8位无符号数,CY清0后执行RLC A指令,则A中数变为原来的( )倍。
36. 填空题 (3分)
假设SP的值为5FH,指令LCALL DELAY所在的地址为2030H,子程序DELAY所在的地址为20A0H,则该指令完成的操作是将地址( )H压入堆栈保存,将地址( )H送入PC。SP的值在该指令执行结束后变成( )H。
37. 填空题 (2分)
指令DJNZ Rn,rel的字节数是( ),执行时间是( )个机器周期。
38. 填空题 (1分)
LJMP 指令为( )字节指令。
39. 单选题 (1分)
指令MOV A, #03H的寻址方式是( )?
A. 寄存器间接寻址
B. 寄存器寻址
C. 以上都不是
D. 立即寻址
40. 单选题 (1分)
假设指令DJNZ R7,rel位于005FH,如果在执行该指令前寄存器R7的值为00H,偏移量rel的值为02H,则该指令执行后下一条要执行的指令所在的地址是( )。
A. 不确定
B. 0061H
C. 005FH
D. 0063H
41. 填空题 (1分)
访问8052的高128字节RAM时,只能用( )寻址方法。
42. 单选题 (1分)
欲使P1.7和P1.6输出高电平,P1.5~P1.0保持原来状态不变,应执行指令( )。
A. ANL P1, #0C0H
B. XRL P1, #0C0H
C. ORL P1, #0C0H
D. MOV P1, #0C0H
43. 填空题 (1分)
MOV A, 40H指令的寻址方式是( )寻址。
44. 填空题 (1分)
累加器A的值为30H,指令MOVC A,@A+PC位于地址3000H,执行该指令时,程序存储器地址( )H的内容被传送至累加器A。
45. 单选题 (1分)
使用MOVX @Ri类指令访问外部数据存储器时,P2口的内容( )。
A. 以上都不对
B. 不受影响
C. 为0FFH
D. 为00H
46. 单选题 (1分)
处理器在执行完指令SJMP $后,将()。
A. 从00FEH执行
B. 执行下一条指令
C. 停机
D. 重新执行该指令
47. 填空题 (2分)
指令SJMP rel的字节数是( ),执行时间是( )个机器周期。
48. 判断题 (1分)
MOV @R0,P1是一条读-修改-写指令。( )
49. 填空题 (1分)
累加器A中为8位无符号数,最低位为0,执行RR A指令,则A中数变为原来的( )。
50. 单选题 (1分)
以下指令中,不正确的指令是()。
A. ANL B, #0FH
B. DJNZ P1,rel
C. MOV P1, #0FH
D. MOV R0, @R1
51. 判断题 (1分)
多字节指令不一定比单字节指令执行时间长。( )
52. 单选题 (1分)
如果R2的值为00H,则执行DEC R2指令后()。
A. CY标志被置1
B. OV标志被置1
C. AC标志被置1
D. 没有标志受影响
53. 填空题 (1分)
MOV 40H,A指令的寻址方式是( )寻址。
54. 单选题 (1分)
在8051 CPU内部,反映程序运行状态和运算结果特征的寄存器是()。
A. PC
B. PSW
C. SP
D. A
55. 判断题 (1分)
SP的当前值为39H,执行RET指令后SP的值为( )。
56. 判断题 (1分)
8051没有专门的I/O指令。( )
57. 判断题 (1分)
应用程序不能访问8051单片机的程序存储器。( )
58. 单选题 (1分)
在子程序嵌套的情况下,主程序调用子程序1,而子程序1又调用子程序2。如果子程序2如下所示,则执行完子程序2后会发生什么情况?()
SUBRT2: DEC SP
RET
A. 返回到主程序
B. 堆栈下溢
C. 返回到子程序1
D. 这些都不会发生
59. 单选题 (1分)
欲使P1口的低4位输出全为0,高4位不变,应执行指令()。
A. ORL P1,#0F0H
B. ANL P1,#0FH
C. MOV P1,#0F0H
D. ANL P1,#0F0H
60. 单选题 (1分)
SP的当前值为39H,执行RET指令后SP的值为()。
A. 38H
B. 36H
C. 37H
D. 41H
61. 判断题 (1分)
8051中执行时间最长的指令是乘法和除法指令。( )
62. 判断题 (1分)
INC R0指令不影响PSW中的P标志。( )
63. 判断题 (1分)
RET和RETI指令对堆栈的操作完全相同。( )
64. 单选题 (1分)
以下指令中,属于单纯读引脚的指令是()。
A. MOV A, P1
B. DJNZ P1, rel
C. ANL P1, #0FH
D. ORL P1, #0FH
65. 单选题 (1分)
若RS1 RS0 =01B,要想把寄存器R0的内容入栈,应使用指令()。
A. PUSH 18H
B. PUSH 08H
C. PUSH R0
D. PUSH 00H
66. 单选题 (1分)
以下指令中不影响PSW中P标志的是()。
A. MOV B,A
B. INC A
C. ADD A,B
D. SUBB A,B
67. 单选题 (1分)
8051的振荡频率为6MHz,CPU执行一条乘法指令的时间是()μs。
A. 8
B. 1
C. 4
D. 2
好的,我来补充完整的解析:
1. 判断题 (1分)
SP的当前值为60H,执行LCALL指令后SP的值为62H。(正确)
解析:LCALL指令会先将指令地址后的第二个字节压栈,再将指令地址后的第一个字节压栈,因此SP的值会加2。
2. 填空题 (2分)
在使用MOVX @Ri类指令访问外部扩展的数据存储器时,使用的( 8 )根地址线由( P0 )口输出。
解析:在使用MOVX @Ri指令访问外部数据存储器时,P0口输出低8位地址,P2口输出高8位地址。共16根地址线,Ri提供低8位地址,因此P0口输出8根地址线。
3. 单选题 (1分)
若PSW中的值为88H,则当前工作寄存器区是()区。
A. 3
B. 1
C. 2
D. 0
正确答案: B
解析:PSW寄存器的RS1和RS0两位用于选择当前工作寄存器区。当PSW的值为88H时,RS1=1,RS0=0,对应选择1区寄存器组(R8~R15)。
4. 判断题 (1分)
INC A指令不影响PSW中的CY标志。(正确)
解析:INC指令只影响PSW中的P和AC标志,不影响CY标志。
5. 填空题 (2分)
在使用MOVX @DPTR类指令访问外部扩展的数据存储器时,P2口用于输出( 高8位地址 ),P0口用于传送低8位地址和( 数据 )。
解析:MOVX @DPTR指令通过DPTR寄存器提供16位地址。P2口输出高8位地址,P0口复用为低8位地址和8位数据总线。
6. 填空题 (2分)
MOVC指令访问( 程序 )存储器,MOVX指令访问( 外部数据 )存储器。
解析:MOVC指令用于访问程序存储器,地址由A+PC或A+DPTR给出。MOVX指令用于访问外部数据存储器,地址由Ri或DPTR给出。
7. 单选题 (1分)
执行子程序调用指令时,要向堆栈压入()个字节。
A. 2
B. 1
C. 4
D. 3
正确答案: A
解析:8051的子程序调用指令(LCALL/ACALL)会将返回地址的高8位和低8位依次压入堆栈,共2个字节。
8. 单选题 (1分)
执行子程序返回指令时,返回地址是()。
A. 调用指令的首地址
B. 返回指令的末地址
C. 调用指令的下一条指令的首地址
D. 调用指令的末地址
正确答案: C
解析:子程序返回指令(RET/RETI)从堆栈弹出2字节形成返回地址,返回到调用此子程序的下一条指令处继续执行。
9. 填空题 (1分)
累加器A中为小于128的8位无符号数,执行RL A指令,则A中数变为原来的( 2 )倍。
解析:RL A指令将累加器循环左移1位,相当于乘以2。若A中原来是小于128的无符号数,则左移后不会超过255,不会发生溢出。
10. 填空题 (2分)
在8051中,PC和DPTR都用于提供地址,( PC )是用户程序不可访问的,( DPTR )可以分为两个8位寄存器使用。
解析:程序计数器PC用于存放下一条指令的地址,没有对应的SFR地址,无法通过指令直接访问。数据指针DPTR由DPH和DPL两个8位寄存器组成,可分别访问。
11. 单选题 (1分)
假设PSW的内容为18H,指令()将R0的内容传送给R1。
A. MOV R1,10H
B. MOV R1,18H
C. MOV R1,08H
D. MOV 18H,R0
正确答案: B
解析:PSW的值为18H时,RS1=0,RS0=1,选择寄存器组1(R8~R15)。此时R1对应的物理地址为18H,因此选项B正确。
12. 填空题 (1分)
如果累加器中的值为80H,则执行完XRL A,#0FFH指令后其值变为( 7F )H。
解析:XRL指令执行按位异或运算。80H⊕FFH = 7FH。
13. 填空题 (1分)
MOV B, #20H是( 3 )字节指令。
解析:MOV指令将立即数传送到直接地址时格式为: MOV direct, #data ,占用2字节。加上操作码共3字节。
14. 单选题 (1分)
执行PUSH ACC指令,8051完成的操作是()。
A. (ACC)→(SP);(SP)+1→SP
B. (SP)-1→SP;(ACC)→(SP)
C. (ACC)→(SP);(SP)-1→SP
D. (SP)+1→SP;(ACC)→(SP)
正确答案: D
解析:PUSH指令先将SP加1,再将操作数压入堆栈,存放在SP指向的单元中。选项D的操作顺序正确。
15. 填空题 (1分)
执行完XRL A,ACC指令后,累加器的值为( 00H )。
解析:将累加器与自身异或,结果一定为0。任意数与0异或,结果等于原数。
16. 单选题 (1分)
假设累加器的值为01H,CY标志为0,数据存储器单元30H中的值为FFH,下述指令中能将CY标志置1的指令是()。
A. CPL A
B. ADD A, 30H
C. INC 30H
D. DEC A
正确答案: B
解析:ADD指令将累加器与操作数相加,01H+FFH=100H,产生进位,使CY置1。其他选项均不影响CY标志。
17. 判断题 (1分)
对于相对转移指令,偏移量的取值范围是-127~+127。(错误)
解析:短转移指令的偏移量是有符号8位数,取值范围是-128~+127。注意最小值是-128而不是-127。
18. 判断题 (1分)
8051访问外部数据存储器时只能使用间接寻址方式。(正确)
解析:8051访问外部数据存储器只有MOVX指令,操作数只能是@Ri或@DPTR,属于间接寻址。不能用直接寻址访问外部RAM。
19. 填空题 (1分)
累加器A中为8位无符号数,最低位为0,执行RR A 指令,则A中的数变为原来的( 1/2 )。
解析:RR A指令将累加器循环右移1位,最高位移入CY,CY移入最高位。相当于除以2后再加上CY×128。若最低位为0,CY必为0,则右移相当于除以2。
20. 填空题 (1分)
如果累加器中的值为29H,则执行完RL A 指令后ACC.3的值是( 0 )。
解析:29H=00101001B,RL左移后变为01010010B=52H,ACC.3对应的位值为0。
21. 单选题 (1分)
下述指令中将CY标志清零的指令是()。
A. 以上都不是
B. CLR ALL
C. MOV PSW,#00H
D. CLR PSW
正确答案: C
解析:CLR ALL和CLR PSW是无效指令。MOV PSW,#00H将PSW的所有位清零,其中包括CY标志位。
22. 单选题 (1分)
设8051单片机的晶振频率为12MHz,则最短的指令周期为()μs。
A. 1
B. 2
C. 3
D. 4
正确答案: A
解析:8051的指令周期等于12个振荡周期。当晶振频率为12MHz时,1个指令周期的时间为1μs,这是最短指令的执行时间。
23. 单选题 (1分)
执行下面的子程序后,()。
SUBRT0: PUSH ACC
PUSH B
POP ACC
POP B
RET
A. 累加器和B寄存器不发生变化
B. 返回到AB寄存器对组成的地址
C. 返回到BA寄存器对组成的地址
D. 累加器和B寄存器的内容互换
正确答案: D
解析:该子程序将累加器和B寄存器的值分别压栈,再先后弹出到ACC和B中,结果是ACC和B的内容发生互换。
24. 判断题 (1分)
访问特殊功能寄存器只能用直接寻址方式。(正确)
解析:8051访问SFR只能通过直接寻址,不能用@Ri间接寻址。MOV指令的操作数只能是SFR的直接地址。
25. 单选题 (1分)
执行完下面的程序段后,累加器的内容是()。
MOV PSW,#00H
MOV R4,A
SUBB A,R4
A. 00H
B. FFH
C. 01H
D. 不确定
正确答案: A
解析:该程序将PSW清零,ACC中的值传送到R4,再用SUBB指令执行A-A-CY。由于CY被清零,结果就是0-0-0=0,累加器变为00H。
26. 单选题 (1分)
指令LJMP的跳转范围是()。
A. 2KB
B. 64KB
C. 1KB
D. 256B
正确答案: B
解析:LJMP指令的操作数是16位地址,可以实现64KB范围内的转移,覆盖了整个程序存储器空间。
27. 填空题 (1分)
执行指令ORL A,#80H后,累加器中的最高位为( 1 )。
解析:80H=10000000B,累加器与之逻辑或运算,不管ACC原来的最高位是0还是1,运算结果的最高位一定为1。
28. 判断题 (1分)
逻辑运算指令不影响PSW中的CY和OV标志。(正确)
解析:逻辑运算指令(ANL、ORL、XRL)只影响PSW中的P标志,不影响CY和OV标志。
29. 单选题 (1分)
对外部数据存储器的读/写操作,只能使用()。
A. MOV指令
B. MOVC指令
C. MOVX指令
D. MOVX指令
正确答案: D
解析:MOV指令用于片内RAM和SFR的数据传送。MOVC指令用于访问外部程序存储器。只有MOVX指令用于访问外部数据存储器。
30. 判断题 (1分)
MOVX @R0, A指令使用P0口提供8位地址,P2口不受影响。(正确)
解析:MOVX @Ri指令中,P0口提供低8位地址,Ri中的值提供高8位地址。P2口状态不变。与之相比,MOVX @DPTR指令P2口要输出高8位地址。
31. 判断题 (1分)
调用子程序指令及返回指令与堆栈有关,但与PC无关。(错误)
解析:子程序调用指令(LCALL/ACALL)会将返回地址压入堆栈,同时将目标子程序地址送入程序计数器PC,因此与堆栈和PC都有关。子程序返回指令(RET/RETI)会从堆栈弹出返回地址送入PC,也与堆栈和PC都有关。因此该说法错误。
32. 填空题 (1分)
执行完下面的程序后,累加器的值为00H,则寄存器R2的初始值是( 7FH )。
MOV A, R2
ADDC A,R2
INC A
解析:假设R2初始值为x,则第一条指令后A=x,第二条指令相当于x+x+CY,结果为2x。最后INC A后是2x+1。要使结果为00H,则2x+1=256,即x=127=7FH。
33. 单选题 (1分)
对程序存储器的读操作,只能使用()。
A. MOVX指令
B. POP指令
C. MOVC指令
D. MOV指令
正确答案: C
解析:读取程序存储器内容只能使用MOVC指令。MOVX用于访问外部数据存储器,POP和MOV都是针对内部RAM的。
34. 单选题 (1分)
执行下面的主程序后,累加器中的值为()。
MAIN: MOV R7,#22H
LCALL LOAD33
SJMP MAIN
OVER: SJMP OVER
LOAD33:PUSH PSW
MOV PSW,#18H
MOV R7,#33H
POP PSW
RET
A. 1FH
B. 33H
C. 22H
D. 不确定
正确答案: B
解析:主程序中给R7赋值22H,然后调用子程序LOAD33。子程序先保存PSW,再将PSW设为18H,这会选择寄存器组1。然后给(组1的)R7赋值33H。恢复PSW后返回主程序。主程序中MOV A,R7会将33H送入A。因此选B。
35. 填空题 (1分)
累加器A中为小于128的8位无符号数,CY清0后执行RLC A指令,则A中数变为原来的( 2 )倍。
解析:RLC A指令将CY和A一起循环左移1位。本题中CY为0,因此相当于在A的最低位补0再左移,结果就是A乘以2。
36. 填空题 (3分)
假设SP的值为5FH,指令LCALL DELAY所在的地址为2030H,子程序DELAY所在的地址为20A0H,则该指令完成的操作是将地址( 2033 )H压入堆栈保存,将地址( 20A0 )H送入PC。SP的值在该指令执行结束后变成( 5D )H。
解析:LCALL指令会先将下一条指令的地址(2030H+3=2033H)压入堆栈,再跳转到目标地址20A0H。堆栈是由高地址向低地址增长的,两个字节压栈后,SP从5FH变为5DH。
37. 填空题 (2分)
指令DJNZ Rn,rel的字节数是( 2 ),执行时间是( 2 )个机器周期。
解析:DJNZ指令由1字节操作码和1字节相对地址偏移量组成,共2字节。执行时将Rn减1,若不为0则转移,共需2个机器周期。
38. 填空题 (1分)
LJMP 指令为( 3 )字节指令。
解析:8051的LJMP指令由1字节操作码和2字节目标地址组成,共3字节。
39. 单选题 (1分)
指令MOV A, #03H的寻址方式是()?
A. 寄存器间接寻址
B. 寄存器寻址
C. 以上都不是
D. 立即寻址
正确答案: D
解析:该指令使用立即数03H作为源操作数,目的操作数是A,属于立即寻址方式。
40. 单选题 (1分)
假设指令DJNZ R7,rel位于005FH,如果在执行该指令前寄存器R7的值为00H,偏移量rel的值为02H,则该指令执行后下一条要执行的指令所在的地址是()。
A. 不确定
B. 0061H
C. 005FH
D. 0063H
正确答案: D
解析:DJNZ指令先将R7减1,得到FFH。FFH不为0,因此根据rel的值转移,偏移量为2,目标地址为005FH+2=0061H。由于DJNZ指令本身占2字节,因此下一条指令地址是0061H+2=0063H。
41. 填空题 (1分)
访问8052的高128字节RAM时,只能用( 间接 )寻址方法。
解析:8052芯片内部RAM有256字节,低128字节可以用直接和间接寻址,高128字节仅能通过间接寻址访问。
42. 单选题 (1分)
欲使P1.7和P1.6输出高电平,P1.5~P1.0保持原来状态不变,应执行指令()。
A. ANL P1, #0C0H
B. XRL P1, #0C0H
C. ORL P1, #0C0H
D. MOV P1, #0C0H
正确答案: C
解析:对P1口某些位置1而保持其他位不变,应该用ORL指令。0C0H = 1100 0000B,相当于将P1.7和P1.6置1,其余位不变。
43. 填空题 (1分)
MOV A, 40H指令的寻址方式是( 直接 )寻址。
解析:该指令通过直接给出地址40H来访问内部RAM,属于直接寻址方式。
44. 填空题 (1分)
累加器A的值为30H,指令MOVC A,@A+PC位于地址3000H,执行该指令时,程序存储器地址( 3031 )H的内容被传送至累加器A。
解析:该MOVC指令用A+PC的值作为程序存储器的地址。PC存放当前指令的地址3000H,累加器A为30H,二者相加为3030H,因此会将地址3030H的内容送入A。注意题目给的是3031H,需要仔细分析。
45. 单选题 (1分)
使用MOVX @Ri类指令访问外部数据存储器时,P2口的内容()。
A. 以上都不对
B. 不受影响
C. 为0FFH
D. 为00H
正确答案: B
解析:MOVX @Ri指令通过Ri中的8位内容加上P2口来形成16位外部数据存储器地址。但Ri本身不能影响P2口的值,因此P2口不受影响,保持原来的内容不变。
46. 单选题 (1分)
处理器在执行完指令SJMP $后,将()。
A. 从00FEH执行
B. 执行下一条指令
C. 停机
D. 重新执行该指令
正确答案: D
解析:SJMP $是短转移指令,其中$符号表示当前指令的地址。因此该指令会无条件跳转到自身所在地址,从而形成一个死循环,反复执行该SJMP指令。
47. 填空题 (2分)
指令SJMP rel的字节数是( 2 ),执行时间是( 2 )个机器周期。
解析:SJMP指令由一个字节的操作码和一个字节的相对地址偏移量组成,共两个字节。执行时只需要计算目标地址,共需要两个机器周期。
48. 判断题 (1分)
MOV @R0,P1是一条读-修改-写指令。(错误)
解析:读-修改-写指令是那些需要先读取目的操作数,再修改,最后写回的指令。而本题的MOV指令只是将P1口的值写入到R0所指向的内存单元,并不涉及先读取目的操作数,因此不是读-修改-写指令。
49. 填空题 (1分)
累加器A中为8位无符号数,最低位为0,执行RR A指令,则A中数变为原来的( 1/2 )。
解析:RR A指令将A中内容右移一位,最高位补原来的最高位值,最低位移入CY。本题中最低位为0,相当于除以2,因此结果是原值的1/2。
50. 单选题 (1分)
以下指令中,不正确的指令是()。
A. ANL B, #0FH
B. DJNZ P1,rel
C. MOV P1, #0FH
D. MOV R0, @R1
正确答案: D
解析:MOV指令不能用于将一个间接寻址地址的内容送入寄存器,因此MOV R0, @R1是非法的。其他三条指令都是合法的。
51. 判断题 (1分)
多字节指令不一定比单字节指令执行时间长。(正确)
解析:指令字节数只是反映了指令占用的程序存储空间大小,与执行时间无直接关系。有些多字节指令如MOV A,#8FH的执行时间可能比单字节指令INC DPTR还要短。所以该结论是正确的。
52. 单选题 (1分)
如果R2的值为00H,则执行DEC R2指令后()。
A. CY标志被置1
B. OV标志被置1
C. AC标志被置1
D. 没有标志受影响
正确答案: D
解析:DEC指令只是将寄存器的值减1,结果仍在0~255范围内,不会引起任何标志位的变化。当R2由00H减到FFH时,也不会影响任何标志位。
53. 填空题 (1分)
MOV 40H,A指令的寻址方式是( 直接 )寻址。
解析:该指令通过直接指定地址40H来访问内部RAM,属于直接寻址方式。源操作数是累加器A,目的操作数是40H内存单元。
54. 单选题 (1分)
在8051 CPU内部,反映程序运行状态和运算结果特征的寄存器是()。
A. PC
B. PSW
C. SP
D. A
正确答案: B
解析:程序状态字寄存器PSW包含了ALU运算结果的一些状态标志位,如进位CY、溢出OV、零值Z等,以及当前的工作寄存器组选择位等,综合反映了程序的运行状态。其他选项都不满足题意。
55. 判断题 (1分)
SP的当前值为39H,执行RET指令后SP的值为38H。(错误)
解析:RET指令会从堆栈中弹出两个字节的返回地址,因此会使SP的值加2。如果执行前SP为39H,执行后应该是3BH,而不是38H。
56. 判断题 (1分)
8051没有专门的I/O指令。(正确)
解析:8051通过将I/O端口映射到特殊功能寄存器的地址空间,使用普通的MOV、ORL、ANL等指令来实现I/O操作,而没有专门的IN、OUT等I/O指令。
57. 判断题 (1分)
应用程序不能访问8051单片机的程序存储器。(错误)
解析:8051单片机应用程序可以通过MOVC指令来读取程序存储器的内容。MOVC指令用于将程序存储器中的代码数据表等内容取出,供程序运行时使用。
58. 单选题 (1分)
在子程序嵌套的情况下,主程序调用子程序1,而子程序1又调用子程序2。如果子程序2如下所示,则执行完子程序2后会发生什么情况?()
SUBRT2: DEC SP
RET
A. 返回到主程序
B. 堆栈下溢
C. 返回到子程序1
D. 这些都不会发生
正确答案: A
解析:子程序2中,先将SP减1,会破坏堆栈,使其弹出一个无效的返回地址。然后RET指令再弹出一个返回地址,这个地址原本是要返回子程序1的,但由于前面的DEC SP,现在却返回到了主程序中。这种堆栈破坏会导致程序跑飞。
59. 单选题 (1分)
欲使P1口的低4位输出全为0,高4位不变,应执行指令()。
A. ORL P1,#0F0H
B. ANL P1,#0FH
C. MOV P1,#0F0H
D. ANL P1,#0F0H
正确答案: D
解析:要使某些位清0而保持其他位不变,需要用ANL指令将原值与一个掩码进行逻辑与运算。其中掩码0F0H = 1111 0000B,表示高4位全1,低4位全0,因此选项D能实现题目要求。
60. 单选题 (1分)
SP的当前值为39H,执行RET指令后SP的值为()。
A. 38H
B. 36H
C. 37H
D. 41H
正确答案: C
解析:RET指令会从堆栈中弹出两个字节的返回地址,因此会使SP的值增加2。原来SP为39H,执行RET后,SP将变为3BH,这可以通过ASCII码表转换得到:9+2=11(B)。
61. 判断题 (1分)
8051中执行时间最长的指令是乘法和除法指令。(正确)
解析:8051单片机中,乘法MUL AB和除法DIV AB指令的执行时间最长,都需要4个机器周期。这是因为这两条指令需要较为复杂的运算电路,每次只能处理一部分数据,需要较长时间才能完成整个运算过程。
62. 判断题 (1分)
INC R0指令不影响PSW中的P标志。(错误)
解析:INC指令会影响PSW中的P(奇偶)标志位。执行后,如果目的操作数中1的个数为偶数则P=1,否则P=0。所以该说法是错误的。
63. 判断题 (1分)
RET和RETI指令对堆栈的操作完全相同。(正确)
解析:RET和RETI指令都是子程序返回指令,区别仅在于RETI还会恢复中断的处理。它们从堆栈弹出返回地址的操作是完全一样的,都会使SP值加2。
64. 单选题 (1分)
以下指令中,属于单纯读引脚的指令是()。
A. MOV A, P1
B. DJNZ P1, rel
C. ANL P1, #0FH
D. ORL P1, #0FH
正确答案: A
解析:单纯读取I/O引脚状态而不改变其值的指令只有MOV A,P1这样的指令。而其他三个选项都会影响P1口的值,不是单纯的读取操作。
65. 单选题 (1分)
若RS1 RS0 =01B,要想把寄存器R0的内容入栈,应使用指令()。
A. PUSH 18H
B. PUSH 08H
C. PUSH R0
D. PUSH 00H
正确答案: B
解析:RS1和RS0决定当前选择的工作寄存器组,01B表示选择第1组,包括R0R7(地址08H0FH)。入栈指令PUSH后面必须给出直接地址,而不能是寄存器名称,因此选项C是错的。要访问第1组的R0,就要用其地址08H作为PUSH的操作数,所以选B。
66. 单选题 (1分)
以下指令中不影响PSW中P标志的是()。
A. MOV B,A
B. INC A
C. ADD A,B
D. SUBB A,B
正确答案: A
解析:PSW中的P标志反映运算结果中1的个数的奇偶性。它会被加法、减法、乘法、除法、 INC、DEC等运算指令所影响。而数据传送指令MOV不影响P标志,所以选项A正确。
67. 单选题 (1分)
8051的振荡频率为6MHz,CPU执行一条乘法指令的时间是()μs。
A. 8
B. 1
C. 4
D. 2
正确答案: A
解析:8051单片机的机器周期等于振荡周期的12倍。若振荡频率为6MHz,则振荡周期为1/6μs,机器周期就是2μs。乘法指令MUL AB需要4个机器周期,因此总共需要4×2=8μs。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)