单片机原理及应用考试复习知识点 下载本文

第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