第3章 80C51单片机指令系统
考试知识点: 1、寻址方式
(1)立即寻址(#data,#data16)例:MOV A,#00H
(2)直接寻址(direct)内部RAM:00~7FH、特殊功能寄存器 例:MOV A,00H (3)寄存器寻址(A、B、Rn、DPTR)
(4)寄存器间接寻址(@Ri、@DPTR)例:MOVX A,@DPTR (5)变址寻址(@A+DPTR,@A+PC)例:MOVC A,@A+DPTR
(6)位寻址(bit)20~2FH:00~7FH、特殊功能寄存器 例:MOV C,00H (7)相对寻址(rel)例:JZ rel 2、数据传送类指令
(1)内部RAM数据传送指令 MOV 目的,源;目的→源 交换指令:
XCH A,direct/Rn/@Ri;A和源交换 XCHD A,@Ri;只换低4位 SWAP A;A的高低4位交换 注意:A作目的操作数会影响P。 PUSH direct POP direct
(2)外部RAM数据传送指令
MOVX A,@Ri/@DPTR;外部地址内容→A MOVX@Ri/@DPTR,A;A→外部地址内容 (3)ROM数据传送指令
MOVC A,@A+DPTR/@A+PC;查表指令 3、算术运算指令
(1)加法指令
ADD/ADDC A,#data/ direct/ Rn/@Ri;会影响CY、AC、OV、P INC A/ direct/ Rn/@Ri/DPTR;加1,P DA A;十进制调整,大于9加6 (2)减法指令
SUBB A,#data/ direct/ Rn/@Ri;会影响CY、AC、OV、P DEC A/ direct/ Rn/@Ri;减1 (3)乘除指令
MUL AB;(A)*(B)→BA,会影响CY=0,OV,P DIV AB;(A)/(B)的商→A,余数→B 4、逻辑运算及移动指令
(1)逻辑运算指令
ANL/ORL/XRL A,#data/ direct/ Rn/@Ri ANL/ORL/XRL direct,A/#data
与→清0,或→置1,异或→取反 CLR/CPL A;清0和取反 (2)移位指令
RL/RR/RLC/RRC A
5
注意:每左移一位相当于乘2,每右移一位相当于除2,带进位的移会影响CY和P。 5、控制转移类指令
(1)无条件转移指令
LJMP addr16;addr16→PC,64KB
AJMP addr11;(PC)+2→PC,addr11→PC10~0,2KB SJMP rel;(PC)+2+rel→PC,256B
JMP @A+DPTR;(A)+(DPTR)→PC,64KB (2)条件转移指令
累加器A判0转移指令
JZ rel;A为0 JNZ rel;A不为0 比较不相等转移指令
CJNE A/Rn/@Ri,#data,rel CJNE A,direct,rel
注意:第一操作数和第二操作数不相等,程序转移,若第一大于第二,CY=0,第一小于第二,CY=1。第一操作数和第二操作数相等,程序顺序执行,CY=0。
减1不为0转移指令 DJNZ Rn/direct,rel;(Rn/direct)-1不为0,程序转移。 (3)调用和返回指令
LCALL addr16;(PC)+3→PC,先入低8位,再入高8位,addr16→PC
ACALL addr11;(PC)+2→PC,先入低8位,再入高8位,addr11→PC10~0 RET;先出高8位,再出低8位 6、位操作类指令
(1)位传送指令 MOV C,bit MOV bit,C (2)位赋值指令 CLR C/bit SETB C/bit
(3)位逻辑运算指令
ANL/ORL C,bit或/bit CPL C/bit
注意:实现逻辑表达式 (4)位控制转移指令 JC rel;(CY)=1 JNC rel;(CY)=0 JB bit,rel;(bit)=1 JNB bit,rel;(bit)=0
JBC bit,rel;(bit)=1,转移,清0 考试复习题:
1、下列指令中不影响标志位CY的指令有( )。
a)ADD A,20H b)CLR A c)RRC A d)INC A 2、当需要从MCS-51单片机程序存储器取数据时,采用的指令为( )。 a)MOV A, @R1 b)MOVC A, @A + DPTR
6
c)MOVX A, @ R0 d)MOVX A, @ DPTR 3、下列哪条指令是正确的( )
a) PUSH R2 b) ADD R0,A c) MOVX A @DPTR d) MOV @R0,A
4、MOVX A , @R0指令中,源操作数采用( )寻址方式,指令作用在( )区间。 (A)寄存器,外部数据存储器 (B)直接,程序存储器
(C)寄存器间接 ,内部数据存储器 (D)寄存器间接,外部数据存储器 5、在中断服务程序中,至少应有一条( )
A、传送指令 B、转移指令 C、加法指令 D、中断返回指令
6、要用传送指令访问80C51外部RAM,它的指令助记符应是( ) A、MOV B、MOVX C、MOVC D、MOVD
7、执行LCALL 4000指令时,80C51所完成的操作是( )
A、保护PC B、PC←4000H C、保护现场 D、PC+3入栈,PC←4000H 8、以下运算中对溢出标志OV没有影响或不受OV影响的运算是( ) A、逻辑运算 B、符号数加减法运算 C、乘法运算 D、除法运算 9、必须进行十进制调整的十进制运算( )
A、只有加法 B、有乘法和除法 C、有加法和减法 D、只有减法 10、指令AJMP的跳转范围是( ) A、256B B、1KB C、2KB D、4KB
11、执行PUSH ACC指令,80C51完成的操作是( )
A、SP←(SP)+1 (SP)←(ACC) B、(SP)←(ACC) SP←(SP)-1 C、SP←(SP)-1 (SP)←(ACC) D、(SP)←(ACC) SP←(SP)+1 12、A7H和5BH两个立即数相加后,和为( ),(CY)是( )。
(A)1CH,0 (B) C1H,0 (C) 02H,1 (D) C1H,1 13、若(A)=86H,(PSW)=80H,则执行RRC A指令后( ) (A)C3H (B) B3H (C) 0DH (D) 56H 14、如果(P0)=65H ,则当
CPL P0.2 SETB C
MOV P0.4 ,C 执行后(P0)=( )
(A)61H (B) 75H (C) 71H (D) 17H
15、8031单片机中,将累加器A中的数送入外RAM的40H单元,可执行的指令((A) MOV R1 ,40H (B) MOV R1 ,#40H
MOVX @R1 , A MOVX R1 , A (C) MOVX 40H , A (D) MOV R1, #40H
MOVX @R1 , A
16、ORG 2000H LACLL 3000H ORG 3000H RET
上边程序执行完RET指令后,PC=( )
A.2000H B.3000H C.2003H D.3003H 17、JNZ REL指令的寻址方式是( )
。
7
)
A.立即寻址 B.寄存器寻址 C.相对寻址 D.位寻址 18、下面哪条指令产生WR信号( )
A.MOVX A,@DPTR B.MOVC A,@A+PC C.MOVC A,@A+DPTR D.MOVX @DPTR,A 19、MOVX A,@DPTR指令中源操作数的寻址方式是( )
A. 寄存器寻址 B. 寄存器间接寻址 C.直接寻址 D. 立即寻址
20、已知累加器A的数值为98H,它与0FAH相加,相加后会影响标志位CY、AC和OV位。各个位的值是( )。
(A) 0、0、0 (B) 1、0、1 (C) 1、1、1 (D) 1、1、0 21、ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H
当CPU响应外部中断0后,PC的值是( )
A.0003H B.2000H C.000BH D.3000H
22、假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的
值为( )
A、36H B、37H C、38H D、39H
23、要把P0口高4位变0,低4位不变,应使用指令( )
A.ORL P0,#0FH B.ORL P0,#0F0H C.ANL P0,#0F0H D.ANL P0,#0FH 24、MCS-51执行完MOV A,#08H后,PSW的哪一位被置位( ) A.CY B. F0 C.OV D.P
25、对于指令JNB 12H,$,其操作码为80H,其操作数(即偏移量)为______。 26、JZ e的操作码地址为1000H,e=20H,它的转移目的地址为 。 27、执行下列程序段后,(P1)=_______。 MOV P1,#5DH CPL P1.1 CPL P1.2 CLR P1.6 SETB P1.7
28、执行下列程序段后,(A)=_______,(CY)=____。 MOV A,#C5H RL A
29、下列程序段执行后,(R0)=_______,(7EH)=____,(7FH)=_______。 MOV R0,#7EH MOV 7EH,#0FFH MOV 7FH,#40H 1NC @R0 1NC R0 1NC @R0
30、已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALL SUBTRN双字节指令后,(PC)=___,(61H)=_______,(62H)= ____。 31、ORL A,#0F0H是将A的高4位置1,而低4位 。
32、SJMP e的指令操作码地址为0050H,e=65H,那么它的转移目的地址为 。
8