第3章 MCS-51的指令系统
一、填空
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 INC
A R3
30H
INC
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
后,所实现的逻辑运算式为( )。
14. 访问8031片外数据存储器MOVX指令采用的是 寻址方式。访问片外程序存储器MOVC指令采用的是 寻址方式。
15. 设(A)=55H,(R5)=AAH,则执行ANL A,R5指令后的结果是(A)= ,(R5)= 。
16. 假定(SP)=40H , (39H)=30H,(40H)=60H。执行下列指令:
POP DPH
POP DPL
后,DPTR的内容为 ,SP的内容是 。
17. MCS-51单片机指令系统有111条指令,有五种指令类型,分别是:数据
传送指令, 指令、 指令、 指令、 指令及 指令。
18 . MCS—51单片机指令系统有111条指令,有六种寻址方式,分别是:
寻址、 寻址、 寻址、 寻址、 寻址 寻址及 寻址。
19. 在单片机应用系统中,外部设备与外部数据存储器传送数据时,使用 指令。
二、判断
1. MOV A,@R0这条指令中,@R0的寻址方式称之为寄存器间址寻址。( )
2. MOV A,30H这条指令执行后的结果是(A)=30H。( )
3. MOV A,@R7,将R7单元中的数据作为地址,从该地址中取数,送入A中。( )
4. 指令字节数越多,执行时间越长。( )
5. 子程序调用时自动保护断点和现场。( )
6. 内部寄存器Rn(n=0~7)作为间接寻址寄存器。( )
7. 算术运算类指令一般不影响标志位。 ( )
8. CPU每取一个指令字节,立即使程序计数器PC自动加1。(9. 判断程序对错:十进制数19和13相减。 ( )
MOV A,#19H
CLR C
SUBB A,#13H
DA A
10. RC A为循环左移指令( )
11. MOV A,30H为立即寻址方式( )
12. MOV A,@A+DPTR是一条查询指令( )
13. MUL AB的执行结果是高8位在A中,低8 位在B中(
) )
14.MCS-51的特殊功能寄存器分布在60H~80H地址范围内。( )
15. MOVC A @A +DPTR ,这是条相对寻址指令。( )
16. 当MCS-51上电复位时,堆栈指针SP=00H。 ( )
17. 调用子程序指令(如:LCALL)及返回指令(如:RET)与堆栈有关但与PC无关。( )
18. 下面几条指令是否正确:
MOV @R1,#80H ( ), INC DPTR ( ), CLR R0 ( )
MOV @R1,#80H ( ),ANL R1,#0FH ( ),ADDC A,C ( )
XOR P1,#31H ( )
19. 在单片机应用系统中,外部设备与外部数据存储器传送数据时,使用MOV指令。( )
三、简答
1.执行指令:MOV A,R4 ;
在程序状态字PSW中 ⑴ RS1=0,RS0=0; ⑵ RS1=1,RS0=0的两种情况下,上述指令执行结果有何不同?
2.MCS-51 单片机堆栈有何特点?若SP=60H,PC=2000H,标号LABEL所在的地址为3000H,问执行长调用指令LCALL LABEL后,堆栈指针和堆栈的内容发生什么变化?PC的值等于什么?
3. 简述转移指令AJMP addr11,SJMP rel,LJMP addr16及JMP @A+DPTR的应用场合。
4. 对访问内部RAM和外部RAM,各应采用哪些寻址方式?
四、选择
1. 将累加器中的数据送到片外RAM40H,可执行指令 ( )
(A) MOVX 40H,A (B) MOV R6,#40H,MOV @R6,A
(C) MOV R0,#40H MOVX @R0,A
(D) MOV R6,#40H MOVX @R6,A
2. 对程序存储区数据传送,应采用助记符为
(A) MOV (B) MOVX (C) MOVC (D) PUSH
3. 下列转移范围是2KB的控制转移指令是
(A) SJMP rel (B)LJMP addr16 (C) AJMP addr11 (D) JMP
@A+DPTR
4. 执行以下程序段
MOV SP,#3AH MOV A,#20H
MOV B,#30H
PUSH ACC
PUSH B
POP ACC
POP B
后, A=( )和B=( )的内容为:
(A)20H,30H (B)30H,20H (C)3AH,30H (D)3AH,3AH
5. 假定(A)=83H,(R0)=17H,(17H)=34H,执行以下程序段
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
后, A=( )的内容为
(A) CBH (B)03H (C)EBH (D)C8H
6. 下列指令中划线部分操作数属于寄存器寻坊方式的有( )。
(A) MOV 30H,Acc (B) MOV 30H,C (C) MOV 30H,R0 (D) MUL 7. 下列指令中可能改变Cy的有( )
A.DA A B.INC A C.CPL A D.RLC A
8. 在CPU内部,反映程序运行状态或反映运算结果的特征寄存器是( )。
(A)PC (B)PSW (C)A (D)SP
9. AJMP指令的跳转范围是( )。
(A)256 (B)1KB (C)2KB (D)KB
AB
10. 下列指令中正确的是( )。
(A)MOV P2.1,A (B)JBC TF0,L1
(C)MOVX B,@DPTR (D) MOV A,@R3
11. 下列指令中错误的是( )。
(A)SETB 50H.0 (B)MOV A,B
(C)JNC LOOP (D)SUBB A,R0
12. 单片机应用程序一般存放在( )
13. A、RAM B、ROM C、寄存器 D、CPU
14. 8031复位后,PC与SP的值为( )
15. A、0000H,00H B、0000H,07H C、0003H,07H寄存器 D、0800H,00H
16. 单片机的堆栈指针SP始终是( )
17. A、指示堆栈底 B、指示堆栈顶 C、指示堆栈地址 D、指示堆栈长度
18. 下列指令中错误的是( )
19. A、MOV A,R4 B、MOV 20H,R4 C 、MOV R4,R3 D、MO V﹫R4,R3
20. 下列指令中不影响标志位CY的指令有( )
21.22.23.24.S U B B A25.26.27.28.29. A、ADD A,20H B、CLR A C 、RRC A D、INC A
LJMP跳转空间最大可达到( )
A、2KB B、256B C 、128B D、KB
设累加器A的内容为0 C 9 H,寄存器R2的内容为54H,C Y=1,执行指令,
R2 后结果为( )
A、(A)=74H B、(R2)=74H C 、(A)=75H D、(R2)=75H 设(A)=0 C 3 H,(R0)=0 A A H,执行指令A N L A,R0后,结果( ) A、(A)=82H B、(A)=6CH C 、(R0)=82 D、(R0)=6CH
执行如下三条指令后,30H单元的内容是( )
30. M O V R 1,#30H
31. M O V 40H,#0 E H
32. M O V ﹫R 1,40H
33. A、40H B、30H C 、0 E H D34. 有如下程序段:
35. M O V R 0,#30H
36. S E T B C
37. C L R A
38. A D D C A,#0 0H
39. M O V ﹫R 0,A
40. 执行结果是( )
41. A、(30H)=0 0H B、(30H)=0 1H C 00H)=0 1H
42. 从地址2132H开始有一条绝对转移指令A J M P addr11、F F H
、(00H)=0 0H D、,指令可能实现的转
(
移范围是( )
A、2000H~27FFH B、2132H~2832H C 、2100H~28FFH D、2000H~3FFFH
43. 如下程序段:
C L R C
M O V A,#BCH
A D D C A,#65H
则其结果为( )
A、(A)=21H B、CY=1 C 、AC=1 D、CY=0 E、AC=0
44. 对于JBC bit,rel指令,下列说法正确的是( )
45. A.bit位状态为1时转移 B.bit位状态为0时转移 C.bit位状态为1时不转移 D.bit位状态为0时不转移 E.转移时,同时对该位清零
46. 关于指针DPTR,下列说法正确的是( )
47. (A)DPTR是CPU和外部存储器进行数据传送的唯一桥梁 (B)DPTR是一个16位寄存器 (C)DPTR不可寻址 (D)DPTR是由DPH和DPL两个8位寄存
器组成的 (E) DPTR的地址83H
48. 对程序存储器的读操作,只能使用( )
(A)MOV指令 (B)PUSH指令 (C)MOVX指令(D)MOVC指令
49. LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=((A)2000H (B)2001H (C)2002H (D)2003H
五、编程题
1、请按下列要求完成答题 1)、对每一条指令加上注释;
2)、说明连续运行该程序时,二极管的变化的规律; 3)、如果要使发光二极管依次轮流点亮,如何修改程序。 ORG
0000H
AJMP MAIN
ORG 0100H
MAIN:
MOV SP,#60H
)
LEDRESET:
MOV MOV CLR IEDUP:
MOV ACALL MOV RR MOV DJNZ AJMP R2,#80H
R1,#08H
P2.7
P1,R2
DELAY
A,R2
A
R2,A
R1,IEDUP
LEDRESET
R1470R2470R3U18051P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7470R4470R5470R70R7470R8470D8LEDD7LEDD6LEDD5LEDPNPD4LEDD3LEDVCCD2LEDD1LEDQ1R92kP2.7
2、将R2中的值(范围0-9)取平方值,结果存放在内部数据存储器40H单元中
3、编程实现把8031片内以80H为首地址的20个单元内容送到以255H为首地址的扩展RAM单元中。
4.已知MCS—51单片机系统fosc=6MHZ,编一段延时约20MS的子程序。