MCS-51指令速查表
51指令速查表
数据传送类1.MOV A,RnMOV A,dirMOV A,@RiMOV A,#dataMOV Rn,AMOV Rn,dirMOV Rn,#dataMOV dir,AMOV dir,RnMOV dir,dirMOV dir,@RiMOV dir,#dataMOV @Ri,AMOV @Ri,dirMOV @Ri,#dataMOV DPTR,#data16 MOV C,bitMOV bit,C数据查表2.MOVC A,@A+DPTR MOVC A,@A+PC数据传送3.RAMMOVX A,@RiMOVX A,@DPTRMOVX @Ri,AMOVX @DPTR,A出入栈4..PUSH dirPOP dir字节交换5. XCH A,RnXCH A,dirXCH A,@RiXCHD A,@Ri与运算6.""ANL A,RnANL A,dirANL A,@RiANL A,#dataANL dir,AANL dir,#dataANL C,bitANL C,/bit或运算7.""ORL A,RnORL A,dirORL A,@RiORL A,#dataORL dir,AORL dir.#dataORL C,bitORL C,/bit异或运算8.""XRL A,RnXRL A,dirXRL A,@RiXRL A,dataXRL dir,AXRL dir,#data置位9.SETB CSETB bit清除10.CLR ACLR CCLR bit取反11.CPL ACPL CCPL bit左右移为进位12..CRL ARLC ARR ARRC A高低半字节交换13.SWAP A加法14.ADD A,RnADD A,dirADD A,@RiADD A,#data带进位加法15.ADDC A,RnADDC A,dirADDC A,@RiADDC A,#data借位减法送16.(A-X A)SUBB A,RnSUBB A,dirSUBB A,@RiSUBB A,#data加17.1INC AINC RnINC dirINC @RiINC DPTR减18.1DEC ADEC RnDEC dirDEC @Ri乘法19..(A*B=BA)MUL AB除法商在余20..(A/B,A,数在B)DIV AB十进制调整21.DA A无条件转移22.AJMP addt11LJMP addr16SJMP rel间接转移23.JMP @A+DPTR累加器判转移24.0JZ relJNZ rel判转移25.C1JC relJNC rel位判转移26.1JB bit,relJNB bit,rel带清除JBC bit,rel()比较不等转移27.CJNE A,dir,relCJNE A,#data,relCJNE @Ri,#data,relCJNE Rn,#data,rel减非转移28.10DJNZ Rn,relDJNZ dir,rel子程序调用29.ACALL addr11LCALL addr16其它命令30.子程序返回RET中断返回RETI空操作NOP伪指令31.指定起始地址ORG等值EQU数据地址赋值DATA定义存储字节DB定义存储双字节DW定义空间DS位地址符号BIT汇编结束END指令系统提供MCS-51 MCU 。
51单片机汇编指令速查表
51单片机汇编指令速查表指令格式功能简述字节数周期一、数据传送类指令MOV A, Rn 寄存器送累加器 1 1MOV Rn,A 累加器送寄存器 1 1MOV A ,@Ri 内部RAM单元送累加器 1 1MOV @Ri ,A 累加器送内部RAM单元 1 1MOV A ,#data 立即数送累加器 2 1MOV A ,direct 直接寻址单元送累加器 2 1MOV direct ,A 累加器送直接寻址单元 2 1MOV Rn,#data 立即数送寄存器 2 1MOV direct ,#data 立即数送直接寻址单元 3 2MOV @Ri ,#data 立即数送内部RAM单元 2 1MOV direct ,Rn 寄存器送直接寻址单元 2 2MOV Rn ,direct 直接寻址单元送寄存器 2 2MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指针 3 2MOVX A ,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri ,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1XCH A ,@Ri 累加器与内部RAM单元交换 1 1XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1POP direct 栈顶弹出指令直接寻址单元 2 2PUSH direct 直接寻址单元压入栈顶 2 2二、算术运算类指令ADD A, Rn 累加器加寄存器 1 1ADD A,@Ri 累加器加内部RAM单元 1 1ADD A, direct 累加器加直接寻址单元 2 1ADD A, #data 累加器加立即数 2 1ADDC A, Rn 累加器加寄存器和进位标志 1 1ADDC A,@Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标志 2 1 ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1INC Rn 寄存器加1 1 1INC direct 直接寻址单元加1 2 1INC @Ri 内部RAM单元加1 1 1INC DPTR 数据指针加1 1 2DA A 十进制调整 1 1SUBB A, Rn 累加器减寄存器和进位标志 1 1SUBB A,@Ri 累加器减内部RAM单元和进位标志 1 1 SUBB A, #data 累加器减立即数和进位标志 2 1 SUBB A, direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减1 1 1DEC Rn 寄存器减1 1 1DEC @Ri 内部RAM单元减1 1 1DEC direct 直接寻址单元减1 2 1MUL AB 累加器乘寄存器B 1 4DIV AB 累加器除以寄存器B 1 4三、逻辑运算类指令ANL A, Rn 累加器与寄存器 1 1ANL A,@Ri 累加器与内部RAM单元 1 1ANL A, #data 累加器与立即数 2 1ANL A, direct 累加器与直接寻址单元 2 1ANL direct, A 直接寻址单元与累加器 2 1ANL direct, #data 直接寻址单元与立即数 3 1ORL A, Rn 累加器或寄存器 1 1ORL A,@Ri 累加器或内部RAM单元 1 1ORL A,#data 累加器或立即数 2 1ORL A,direct 累加器或直接寻址单元 2 1ORL direct, A 直接寻址单元或累加器 2 1ORL direct, #data 直接寻址单元或立即数 3 1XRL A, Rn 累加器异或寄存器 1 1XRL A,@Ri 累加器异或内部RAM单元 1 1XRL A,#data 累加器异或立即数 2 1XRL A,direct 累加器异或直接寻址单元 2 1XRL direct, A 直接寻址单元异或累加器 2 1XRL direct, #data 直接寻址单元异或立即数 3 2RL A 累加器左循环移位 1 1RLC A 累加器连进位标志左循环移位 1 1RR A 累加器右循环移位 1 1RRC A 累加器连进位标志右循环移位 1 1CPL A 累加器取反 1 1CLR A 累加器清零 1 1四、控制转移类指令类ACCALL addr11 2KB范围内绝对调用 2 2AJMP addr11 2KB范围内绝对转移 2 2LCALL addr16 2KB范围内长调用 3 2LJMP addr16 2KB范围内长转移 3 2SJMP rel 相对短转移 2 2JMP @A+DPTR 相对长转移 1 2RET 子程序返回 1 2RET1 中断返回 1 2JZ rel 累加器为零转移 2 2JNZ rel 累加器非零转移 2 2CJNE A ,#data ,rel 累加器与立即数不等转移 3 2 CJNE A ,direct ,rel 累加器与直接寻址单元不等转移 3 2 CJNE Rn,#data ,rel 寄存器与立即数不等转移 3 2 CJNE @Ri ,#data,rel RAM单元与立即数不等转移 3 2 DJNZ Rn ,rel 寄存器减1不为零转移 2 2DJNZ direct ,rel 直接寻址单元减1不为零转移 3 2 NOP 空操作 1 1五、布尔操作类指令(C表示进位标识)MOV C, bit 直接寻址位送C 2 1MOV bit, C C送直接寻址位 2 1CLR C C清零 1 1CLR bit 直接寻址位清零 2 1CPL C C取反 1 1CPL bit 直接寻址位取反 2 1SETB C C置位 1 1SETB bit 直接寻址位置位 2 1ANL C, bit C逻辑与直接寻址位 2 2 ANL C, /bit C逻辑与直接寻址位的反 2 2 ORL C, bit C逻辑或直接寻址位 2 2 ORL C, /bit C逻辑或直接寻址位的反 2 2 JC rel C为1转移 2 2JNC rel C为零转移 2 2JB bit,rel 直接寻址位为1转移 3 2JNB bit,rel 直接寻址为0转移。
mcs_51的指令表
2
#data8
8位立即数送入间接RAM单元
#00H~#FFH
2
1
MCS-51单片机指令表(共111条指令)
表D.1 8位数据传送指令
表D.2 16位数据的传送类指令
助记符
功能说明
寻址范围
字节数
机器周期
MOV DPTR,#data16
16位立即数地址送入数据指针寄存器
0000H~FFFFH
3
2
表D.3外部数据传送类指令
直接地址单元内容与累加器内容交换
00H~FFH
2
1
@Ri
间接RAM内容与累加器内容交换
(R0~R7) , 00H~FFH
1
1
MOVC A,@A+DPTR
以DPTR为基地址变址寻址单元中的数据送入A
0000H~FFFFH
1
2
MOVC A,@A+PC
以PC为基地址变址寻址单元中的数据送入A
PC向下00H~FFH
堆栈中的数据弹出到到直接地址单元
2
2
NOP
空操作
1
1
表D.10位操作类指令
助记符
功能说明
字节数
机器周期
CLR C
清进位位
1
1
CLR bit
清直接地址位
2
1
SETB C
置进位位
1
1
SETB bit
置直接地址位
2
1
CPL C
进位位求反
1
1
CPL bit
直接地址位求反
2
1
ANL C,bit
进位位内容与直接地址位内容相与
3
MCS-51单片机指令简表
算 术 运 算 类 指 令
算 术 运 算 类 指 令
04 08~0F 05 __ 06~07 A3 14 18~1F 16~17 15 __ A4 84 D4 58~5F 56~57 54 __ 55 __ 52 __ 53 __ __ 48~4F 46~47 44 __ 45 __ 42 __ 43 __ __ 68~6F 66~67 64 __ 65 __ 62 __ 63 __ __ 23 33 03 13 F4 E4 A2 __ 92 __ C3 C2 __ B3 B2 __ D3 D2 __ 82 __ B0 __
高四位 ↓ → 低四位 0 1 0 1 NOP JBC bit,rel AJMP0 ACALL0
(反汇编)
2 LJMP addr16 LCALL addr16 RET RETI ORL dir,A
3 RR A RRC A RL A RLC A ORL dir,#data ANL dir,#data XRL dir,#data
INC A INC Rn INC direct INC @Ri INC DPTR DEC A DEC Rn DEC @Ri DEC direct MUL AB DIV AB DA A ANL A, Rn ANL A, @Ri ANL A, #data ANL A, direct ANL direct, A ANL direct, #data ORL A, Rn ORL A,@Ri ORL A,#data ORL A,direct ORL direct, A ORL direct,#data XRL A, Rn XRL A,@Ri XRL A,#data XRL A,direct XRL direct, A XRL direct,#data RL A RLC A RR A RRC A CPL A CLR A MOV MOV CLR CLR CPL CPL SETB SETB ANL ANL C,bit bit,C C bit C bit C bit C,bit C,/ bit
MCS-51指令速查表
MCS—51指令速查表PSW寄存器 C AC FO RSI RSO OV—P n=0,1,2,3,4,5,6,7;i=0,1 指令操作说明MOV x,y ;x←y ,A,direct←Rn,@Rj,direct,#data ;Rn,@Ri←A,direct,#dataDPTR←#data ; c y⇔bitMOVX x,y ;x←y ,A⇔@Ri , @DPTRMOVC x,y ;x←y,A←@A+DPTR , @A+PCXCH x,y ;x<= =>y,A<= =>Rn , @Ri , directXCHD x,y ;A低四<= =>@Rj低四SWAP A ;A低四<= =>A高四PUSH direct ;加1压入POP direct ;弹出减1ADD x,y ;x←x+y,x=A,y≡Rn,@Ri , direct , #data * ADDC x,y ;x←x+y+cy,x=A,y≡Rn,@Ri , direct , #data * SUBB x,y ;x←x-y-cy,x=A,y≡Rn,@Ri , direct , #data * INC x ;x←x+1,x≡A,Rn , @Ri , direct , DPTRDEC x ;x←x-1,x≡A,Rn , @Ri , directDA A ;对A进行十进制调整MUL AB ;BA←A×BDIV AB ;A/B,A←商,B←余ANL x,y ;x←x∧y x=A,y≡Rn,@Ri , direct , #data; *x≡direct , y≡A,#dataORL x,y ;x←x∨y x=A,y≡Rn,@Ri , direct , #data; *x≡direct , y ≡A,#dataXRL x,y ;x←x○+y x=A,y≡Rn,@Ri , direct , #data; *x≡direct , y ≡A,#dataCPL A ;A←A—CLR A ;A←0RL A ;CyRR A ;CyRLC A ;RRC A ;指令操作说明AJMP addr 11 ;pc←addr 11LJMP addr 16 ;pc←addr 16SJMP rel ;pc←pc+2+relJMP @A+DPTR;pc←A+DPTRJZ rel ;A=0, 则转,pc ←pc+2+relJNZ rel ;A≠0, 则转,pc ←pc+2+relCJNE A,direct , re l;A≠(direct),则转,pc ←pc+3+rel * CJNE A,#data , re l;A≠#data,则转,pc ←pc+3+rel * CJNE Rn,#data , re l;Rn≠#data,则转,pc ←pc+3+rel * CJNE @Ri,#data , re l; @Ri≠#data,则转,pc ←pc+3+rel *DJNZ Rn,rel ; Rn-1≠0,则转, pc←pc+2+rel TP95 DJNZ direct,rel; direct-1≠0,则转,pc←pc+3+relACALL add 11 ;pc ←pc+2, pc压栈,pc10~0←addr 11LCA LL add 16 ;pc ←pc+3, pc压栈,pc15~0←addr 16RET ;弹出→pcRETI ;弹出→pc,0→“优先级激动”触发器CPL x ;x←_x,x≡cy,bitCLR x ;x←0,x≡cy,bitSETB x ;x←1,x≡cy,bitANL c,bit ; cy←cy∧bitORL c,bit ;cy←cy∨bitANL c,bit ; cy←cy∧bitORL c;cy←cy∨bitJC rel ; cy=1, 则转,pc←pc+2+relJNC rel ; cy≠1, 则转,pc←pc+2+relJB bit,rel ; bit=1, 则转,pc←pc+3+relJNB bit,rel ; bit≠1, 则转,pc←pc+2+relJBC bit,rel ; bit=1, 则转,bit←0, pc←pc+2+rel。
MCS-51单片机指令总表
MCS-51指令系统中的常用符号说明Rn——当前选中的寄存器区中的8个工作寄存器R0~R7(n=0~7)。
Ri——当前选中的寄存器区中的2个工作寄存器R0、R1(i=0,1)。
direct—8位的内部数据存储器单元中的地址。
#data——包含在指令中的8位常数。
#data16——包含在指令中的16位常数。
addr16——16位目的地址。
addr11——11位目的地址。
rel——8位带符号的偏移字节,简称偏移量,范围为+127~-128。
DPTR——数据指针,可用作16位地址寄存器。
bit——内部RAM或专用寄存器中的直接寻址位。
A——累加器。
B——专用寄存器,在执行乘法和除法前用于存放乘数和除数。
执行后存放乘法的高8位结果和除法的余数。
C——进位标志,可已作为进位位或布尔处理机中的位累加器。
@——间址寄存器或基址寄存器的前缀,如@Ri,@A+DPTR。
/ ——位操作数的前缀,表示对该位操作数取反,如/bit。
(×)——片内RAM的直接地址中的内容。
(Rn)——由某寄存器间接寻址的单元中的内容。
←箭头左边的内容被箭头右边的内容所代替。
说明:这些符号只是为了起说明指示的作用,在具体写指令的时候,必须用实际含义的内容来替代。
如direct,在写指令的时候,可以用20H之类的地址码来代替。
1、指令的基本格式MCS-51单片机指令主要由标号、操作码、操作数、注释组成。
例如:LOOP:MOV R0, #20H ;将数据20H送到寄存器R0。
指令分类表为了方便大家的学习和记忆,在下面章节中按功能的分类来介绍MCS-51的指令系统。
51指令汇总表
MCS51单片机指令汇总表51指令概况:44个助记符、33种功能、111条指令、255种机器码。
111条指令中:指令长度──单字节49、双字节46、三字节16执行时间──单周期64、双周期45、四周期2计算机指令执行时间的相关概念:●时钟——利用振荡电路产生稳定、均匀的方波(脉冲),作为所有电路动作的节拍信号。
(保证数字电路动作的步调一致。
几百万、上千万个门电路不能各自为政!)●时钟周期——振荡电路的振荡周期,这是指令动作的最小时间单位。
●机器周期——固定的若干时钟周期作为一个较大时间单位,这是完成指令一个分解动作需要的时间。
51单片机是以12个时钟周期为一个机器周期。
●指令周期——执行一条指令需要的机器周期数(只能是整数)。
注意:从机器周期的定义可以看出,一条指令的执行时间是以机器周期为单位,不是以时钟周期为单位。
这也有助于反过来理解为什么有机器周期这个单位。
111条指令分为5类:数据传送29条(8个助记符)算术操作24条(8个助记符)逻辑操作24条(9个助记符)控制转移17条(13个助记符)布尔操作17条(11个助记符,其中与前面重复5个)下面的指令表中,“字节数”一栏是该指令翻译成机器码(2进制形式)的长度,指令长度是以字节为单位,或1字节、或2字节、或3字节(其它CPU的指令系统可能还有更长的),不存在非整数字节的情况。
下面的指令表中,“振荡器周期”一栏就是时钟周期数,51单片机以12个振荡周期=1个机器周期,可以看出51的指令执行时间或是1机器周期、或是2机器周期、或是4机器周期。
数据传送指令一览表位操作指令一览表:。
MCS-51指令及编码表
机器周期数 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2
指令助记符 NOP AJMP LJMP RR INC INC INC INC INC INC INC INC INC INC INC INC JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC EDC EDC JB
机器周期数 1 1 1 2 2 2 2 1 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 4 2 1 1 1 1 1 1 1 1 1 1 2 2 2
指令助记符 XRL XRL XRL JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV SJMP AJMP ANL MOVC DIV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV ACALL MOV
操作数 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 bit,rel code addr11 direct,A direct,#data A,#data A,direct A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 bit,rel code addr11 direct,A direct,#data A,#data A,direct A,@R0 A,@R1 A,R0 A,R1 A,R2 A,R3 A,R4
6
续表 机器码 [H] DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
MCS-51单片机指令周期表
MCS-51单片机指令周期表mcs-51指令速查表类别指令格式功能简述字节数周期MOV A,Rn寄存器送累加器11MOV Rn,A累加器送寄存器11MOV A,@Ri内部RAM单元送累加器11MOV@Ri,A累加器送内部RAM单元11MOV A,#data立即数送累加器21MOV A,direct直接寻址单元送累加器21MOV direct,A累加器送直接寻址单元21MOV Rn,#data立即数送寄存器21MOV direct,#data立即数送直接寻址单元32MOV@Ri,#data立即数送内部RAM单元21MOV direct,Rn寄存器送直接寻址单元22数据传送类指令期MOV Rn,direct直接寻址单元送寄存器22MOV direct,@Ri内部RAM单元送直接寻址单元22MOV@Ri,direct直接寻址单元送内部RAM单元22MOV direct2,direct1直接寻址单元送直接寻址单元32MOV DPTR,#data1616位立即数送数据指针32MOVX A,@Ri外部RAM单元送累加器(8位地址)12MOVX@Ri,A累加器送外部RAM单元(8位地址)12MOVX A,@DPTR外部RAM单元送累加器(16位地址)12MOVX@DPTR,A累加器送外部RAM单元(16位地址)12MOVC A,@A+DPTR查表数据送累加器(DPTR为基址)12MOVC A,@A+PC查表数据送累加器(PC为基址)12XCH A,Rn累加器与寄存器交换11算术运算类指令XCH A,@Ri累加器与内部RAM单元交换11XCHD A,direct累加器与直接寻址单元交换21XCHD A,@Ri累加器与内部RAM单元低4位交换11SWAP A累加器高4位与低4位交换11POP direct栈顶弹出指令直接寻址单元22PUSH direct直接寻址单元压入栈顶22ADD A,Rn累加器加寄存器11ADD A,@Ri累加器加内部RAM单元11ADD A,direct累加器加直接寻址单元21ADD A,#data累加器加立即数21ADDC A,Rn累加器加寄存器和进位标志11ADDC A,@Ri累加器加内部RAM单元和进位标志11ADDC A,#data累加器加立即数和进位标志21ADDC A,direct累加器加直接寻址单元和进位标志21INC A累加器加111INC Rn寄存器加111INC direct直接寻址单元加121INC@Ri内部RAM单元加111INC DPTR数据指针加112DA A十进制调整11SUBB A,Rn累加器减寄存器和进位标志11SUBB A,@Ri累加器减内部RAM单元和进位标志11SUBB A,#data累加器减立即数和进位标志21SUBB A,direct累加器减直接寻址单元和进位标志21DEC A累加器减111DEC Rn寄存器减111DEC@Ri内部RAM单元减111DEC direct直接寻址单元减121MUL AB累加器乘寄存器B14DIV AB累加器除以寄存器B14ANL A,Rn累加器与寄存器11逻辑运算类指令ANL A,@Ri累加器与内部RAM单元11ANL A,#data累加器与立即数21ANL A,direct累加器与直接寻址单元21ANL direct,A直接寻址单元与累加器21ANL direct,#data直接寻址单元与立即数31ORL A,Rn累加器或寄存器11ORL A,@Ri累加器或内部RAM单元11ORL A,#data累加器或立即数21ORL A,direct累加器或直接寻址单元21ORL direct,A直接寻址单元或累加器21ORL direct,#data直接寻址单元或立即数31XRL A,Rn累加器异或寄存器11XRL A,@Ri累加器异或内部RAM单元11XRL A,#data累加器异或立即数21XRL A,direct累加器异或直接寻址单元21XRL direct,A直接寻址单元异或累加器21XRL direct,#data直接寻址单元异或立即数32RL A累加器左循环移位11RLC A累加器连进位标志左循环移位11RR A累加器右循环移位11RRC A累加器连进位标志右循环移位11CPL A累加器取反11CLR A累加器清零11ACCALL addr112KB范围内绝对调用22AJMP addr112KB范围内绝对转移22LCALL addr162KB范围内长调用32LJMP addr162KB范围内长转移32SJMP rel相对短转移22JMP@A+DPTR相对长转移12RET子程序返回12RET1中断返回12控制转移类指令JZ rel累加器为零转移22JNZ rel累加器非零转移22CJNE A,#data,rel累加器与立即数不等转移32CJNE A,direct,rel累加器与直接寻址单元不等转移32CJNE Rn,#data,rel寄存器与立即数不等转移32CJNE@Ri,#data,rel RAM单元与立即数不等转移32DJNZ Rn,rel寄存器减1不为零转移22DJNZ direct,rel直接寻址单元减1不为零转移32NOP空操作11MOV C,bit直接寻址位送C21MOV bit,C C送直接寻址位21CLR C C清零11CLR bit直接寻址位清零21CPL C C取反11CPL bit直接寻址位取反21SETB C C置位11SETB bit直接寻址位置位21布尔操作类指令ANL C,bit C逻辑与直接寻址位22ANL C,/bit C逻辑与直接寻址位的反22ORL C,bit C逻辑或直接寻址位22ORL C,/bit C逻辑或直接寻址位的反22JC rel C为1转移22JNC rel C为零转移22JB bit,rel直接寻址位为1转移32JNB bit,rel直接寻址为0转移32JBC bit,rel直接寻址位为1转移并清该位32。
附录 MCS-51单片机指令表
1 1 1 1 1 1
移位指令
RR RLC RRC
附录 MCS-51单片机指令表 MCS-51单片机指令表
指令类型 指令 代码 LJMP 无条件转移指令 AJMP SJMP JMP JZ JNZ CJNE 条件转移指令 CJNE CJNE CJNE DJNZ DJNZ 操作数 addr16 addr11 rel @A+DPTR rel rel A,#data, #data, rel A,direct, direct, rel Rn,#data, Rn,#data, rel 操作说明 PC←addr16 PC←PC+2, 10PC←PC+2,PC10-0←addr11 PC←PC+2, PC←PC+2,PC←PC+rel PC←+A+DPTR 若A=0,PC←PC+2+rel A=0, A≠0, 若A≠0,PC←PC+2 若A≠0,PC←PC+2+rel A≠0, A=0, 若A=0,PC←PC+2 不相等转移 不相等转移 不相等转移 字节数 3 2 2 1 2 2 3 3 3 3 2 3 机器周 期数 2 2 2 2 2 2 2 2 2 2 2 2
若Ac=1或A的低四位大于9, Ac=1或 的低四位大于9 A←A+06H Cy=1或 的高四位大于9 若Cy=1或A的高四位大于9 ,A←A+60H A×B=BA,形成标志 B=BA, A÷B=A…B,形成标志 B=A…B, A←A∩Rn A←A∩ (direct) A←A∩ (Ri) A←A∩#data (direct)←(direct) ∩ A (direct)←(direct) ∩ #data
附录 MCS-51单Hale Waihona Puke 机指令表 MCS-51单片机指令表
单片机MC51指令表
MCS-51单片机操作数共有5种操作数1、立即数( 常数) #data 例 #20、#14H 、#00010100B2、寄存器 R0~R7、 A 、 B 、 DPTR 等3、存储器4、位操作数5、相对转移地址 relMCS-51单片机操作数1、立即数(常数)操作数 #data例 #20、#14H 、#00010100B例:1)、 MOV A , #14H2)、 MOV R0, #20称为立即数寻址方式2、寄存器操作数 R0~R7、 A 、 B 、 DPTR(1)4组通用工作寄存区共32个工作寄存器。
(2)部分特殊功能寄存器,例如A 、B 以及数据指针寄存器DPTR 等。
例: 1)、 MOV A , R12)、 MOV R5, #00010100B3)MOV DPTR, #1000H称为寄存器寻址方式3、存储器操作数 片内RAM 器 片外RAM ROM片内RAM 器片外RAMROM1)、片内RAM表示方法a、直接地址表示00H~7FH、80H~FFH中21个SFR例MOV A , 30HMOV A , P1 或MOV A , 90H称为直接寻址方式b、寄存器间接地址表示为@R0 、@R1例MOV A , @R1 (假设R1=0030H)称为寄存器间接寻址方式2)、片外RAM表示方法(只能寄存器间接表示)a、8位寄存器间接地址表示为@R0、@R1例MOVX A , @R0 (假设R0=0040H)b、16位寄存器间接地址表示为@DPTR例MOVX A , @DPTR (假设DPTR=1020H) 称为寄存器间接寻址方式3)、ROM表示方法(只能寄存器间接表示)@A+PC、@A+DPTRCPU对ROM的访问用MOVC指令格式1:MOVC A , @A+DPTR格式2:MOVC A , @A+PC格式2: JMP @A+DPTR其中@A+DPTR 与@A+PC表示ROM中某个单元称为基址寄存器加变址寄存器寻址方式4 位操作数位操作数为片内RAM的位寻址区20H~2FH( 位地址00~7FH)及特殊功能寄存器中的可寻址位。
MCS-51经典指令表
经典MCS-51系列单片机指令表2006-11-20 09:34MCS-51系列单片机指令以A开头的指令有18条,分别为:ACALL addr11 ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data ADDC A,RnADDC A,direct ADDC A,@Ri ADDC A,#data AJMP addr11 ANL A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data ANL C,bit ANL C,/bit1、ACALL addr11指令名称:绝对调用指令指令代码:A10 A9 A9 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,进行子程序调用。
其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。
操作内容:PC←(PC)+2SP←(SP)+1(SP)←(PC)7~0SP←(SP)+1(SP)←(PC)15~8PC10~0←addrl0~0字节数: 2机器周期:2使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。
2、ADD A,Rn指令名称:寄存器加法指令指令代码:28H~2FH指令功能:累加器内容与寄存器内容相加操作内容:A←(A)+(Rn), n=0~7字节数: 1机器周期;1影响标志位:C,AC,OV3、ADD A,direct指令名称:直接寻址加法指令指令代码:25H指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct)字节数: 2机器周期:1影响标志位:C,AC,OV4、ADD A,@Ri ’指令名称:间接寻址加法指令指令代码:26H~27H指令功能:累加器内容与内部RAM低128单元内容相加操作内容:A←(A)+((Ri)), i=0,1字节数: 1机器周期:1影响标志位:C,AC,OV5、ADD A,#data指令名称:立即数加法指令指令代码:24H指令功能:累加器内容与立即数相加操作内容:A←(A)+data字节数: 2机器周期:1影响标志位:C,AC,OV6、ADDC A,Rn指令名称:寄存器带进位加法指令指令代码:38H~3FH指令功能:累加器内容、寄存器内容和进位位相加操作内容:A←(A)+(Rn)+(C), n=0~7字节数: 1机器周期:1影响标志位:C,AC,OV7、ADDC A,direct指令名称:直接寻址带进位加法指令指令代码:35H指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加操作内容:A←(A)+(direct)+(C)字节数: 2机器周期:1影响标志位:C,AC,OV8、ADDC A,@Ri指令名称:间接寻址带进位加法指令指令代码:36H~37H指令功能:累加器内容、内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C), i=0,1字节数: 1机器周期:1影响标志位:C,AC,OV9、ADDC A,#data指令名称:立即数带进位加法指令指令代码:34H指令功能:累加器内容、立即数及进位位相加操作内容:A←(A)+data+(C)字节数: 2机器周期:1影响标志位:C,AC,OV10、AJMP addr11指令名称:绝对转移指令指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,实现程序转移。
MCS_51_指令速查表
✓
✓
✓
✓
1
1
6
ADDC A,@Ri
累加器加内部RAM单元和进位标志
✓
✓
✓
✓
1
1
7
ADDC A,#data
累加器加立即数和进位标志
✓
✓
✓
✓
2
1
8
ADDC A,direct
累加器加直接寻址单元和进位标志
✓
✓
✓
✓
2
1
9
INC A
累加器加1
✓
✗
✗
✗
1
1
10
INC Rn
寄存器加1
✗
✗
✗
外部RAM单元送累加器(8位地址)
✓
✗
✗
✗
1
2
20
MOVX A,@DPTR
外部RAM单元送累加器(16位地址)
✓
✗
✗
✗
1
2
21
MOVX@Ri,A
累加器送外部RAM单元(8位地址)
✗
✗
✗
✗
1
2
22
MOVX@DPTR,A
累加器送外部RAM单元(16位地址)
✗
✗
✗
✗
1
2
23
PUSH direct
直接寻址单元压入栈顶
MOV Rn,A
累加器送寄存器
✗
✗
✗
✗
1
1
6
MOV Rn,direct
直接寻址单元送寄存器
✗
✗
✗
✗
2
2
7
MOV Rn,#data
51单片机指令速查
51单片机速查指令AC|辅助进位。
程序状态寄存器PSW的D6位;当进行加(或减)法运算时.如果低半字节D3向高半字节进(或借)位ACALL|■ACALL addr11 子程序调用;地址11位;2字节2周期。
ACC|累加器AADD|■ADD A,#data 加法指令;data+A→A ■ADD A,direct ■ADD A,Rn ■ADD A,@Ri ADDC|■ADDC A,#data 带进位位的加法指令;data+A+C→A ■ADDC A,direct ■ADDC A,Rn ■ADDC A,@RiAJMP|■AJMP addr11 短转移指令;地址为11位;addr11→PC;2字节2周期。
ANL|■ANL A,direct 逻辑与操作指令;A∧(direct)→A ■ANL direct,#data ■ANL A,#data ■ANL A,Rn ■ANL direct,A ■ANL A,@Ri ■ANL C,bit 位逻辑运算;C∧bit→C ■ANL C,/bit 把指定位取反后再和CY执行与操作。
B|寄存器B,主要用于乘法和除法运算,也可以当作一般寄存器。
C|进位位CY,是程序状态寄存器PSW的D7位。
CJNE|■CJNE A,direct rel 条件转移指令;如果A≠(direct)则转移,即PC+rel→PC。
■CJNE A,#data rel ■CJNE Rn,#data,rel ■CJNE @Ri,#data relCLR|■CLR A 清零指令;00H→A ■CLR C ■CLR bitCPL|■CPL A 取反指令;累加器A中的内容按位取反。
■CPL C 把C取反。
■3) CPL bit 指定位取反。
DA|■DA A 这是BCD码调整指令;单字节单周期。
DB|定义字节伪指令DEC|■DEC A 减1指令;A-1→A ■DEC direct ■DEC @Ri ■DEC RnDIV|■DIV AB 除法指令;用A中的无符号数除B中的无符号数,商放在A中,余数放在B中。
MCS-51单片机指令周期表
MCS-51单片机指令周期表mcs-51指令速查表类别指令格式功能简述字节数周期MOV A,Rn寄存器送累加器11MOV Rn,A累加器送寄存器11MOV A,@Ri内部RAM单元送累加器11MOV@Ri,A累加器送内部RAM单元11MOV A,#data立即数送累加器21MOV A,direct直接寻址单元送累加器21MOV direct,A累加器送直接寻址单元21MOV Rn,#data立即数送寄存器21MOV direct,#data立即数送直接寻址单元32MOV@Ri,#data立即数送内部RAM单元21MOV direct,Rn寄存器送直接寻址单元22数据传送类指令期MOV Rn,direct直接寻址单元送寄存器22MOV direct,@Ri内部RAM单元送直接寻址单元22MOV@Ri,direct直接寻址单元送内部RAM单元22MOV direct2,direct1直接寻址单元送直接寻址单元32MOV DPTR,#data1616位立即数送数据指针32MOVX A,@Ri外部RAM单元送累加器(8位地址)12MOVX@Ri,A累加器送外部RAM单元(8位地址)12MOVX A,@DPTR外部RAM单元送累加器(16位地址)12MOVX@DPTR,A累加器送外部RAM单元(16位地址)12MOVC A,@A+DPTR查表数据送累加器(DPTR为基址)12MOVC A,@A+PC查表数据送累加器(PC为基址)12XCH A,Rn累加器与寄存器交换11算术运算类指令XCH A,@Ri累加器与内部RAM单元交换11XCHD A,direct累加器与直接寻址单元交换21XCHD A,@Ri累加器与内部RAM单元低4位交换11SWAP A累加器高4位与低4位交换11POP direct栈顶弹出指令直接寻址单元22PUSH direct直接寻址单元压入栈顶22ADD A,Rn累加器加寄存器11ADD A,@Ri累加器加内部RAM单元11ADD A,direct累加器加直接寻址单元21ADD A,#data累加器加立即数21ADDC A,Rn累加器加寄存器和进位标志11ADDC A,@Ri累加器加内部RAM单元和进位标志11ADDC A,#data累加器加立即数和进位标志21ADDC A,direct累加器加直接寻址单元和进位标志21INC A累加器加111INC Rn寄存器加111INC direct直接寻址单元加121INC@Ri内部RAM单元加111INC DPTR数据指针加112DA A十进制调整11SUBB A,Rn累加器减寄存器和进位标志11SUBB A,@Ri累加器减内部RAM单元和进位标志11SUBB A,#data累加器减立即数和进位标志21SUBB A,direct累加器减直接寻址单元和进位标志21DEC A累加器减111DEC Rn寄存器减111DEC@Ri内部RAM单元减111DEC direct直接寻址单元减121MUL AB累加器乘寄存器B14DIV AB累加器除以寄存器B14ANL A,Rn累加器与寄存器11逻辑运算类指令ANL A,@Ri累加器与内部RAM单元11ANL A,#data累加器与立即数21ANL A,direct累加器与直接寻址单元21ANL direct,A直接寻址单元与累加器21ANL direct,#data直接寻址单元与立即数31ORL A,Rn累加器或寄存器11ORL A,@Ri累加器或内部RAM单元11ORL A,#data累加器或立即数21ORL A,direct累加器或直接寻址单元21ORL direct,A直接寻址单元或累加器21ORL direct,#data直接寻址单元或立即数31XRL A,Rn累加器异或寄存器11XRL A,@Ri累加器异或内部RAM单元11XRL A,#data累加器异或立即数21XRL A,direct累加器异或直接寻址单元21XRL direct,A直接寻址单元异或累加器21XRL direct,#data直接寻址单元异或立即数32RL A累加器左循环移位11RLC A累加器连进位标志左循环移位11RR A累加器右循环移位11RRC A累加器连进位标志右循环移位11CPL A累加器取反11CLR A累加器清零11ACCALL addr112KB范围内绝对调用22AJMP addr112KB范围内绝对转移22LCALL addr162KB范围内长调用32LJMP addr162KB范围内长转移32SJMP rel相对短转移22JMP@A+DPTR相对长转移12RET子程序返回12RET1中断返回12控制转移类指令JZ rel累加器为零转移22JNZ rel累加器非零转移22CJNE A,#data,rel累加器与立即数不等转移32CJNE A,direct,rel累加器与直接寻址单元不等转移32CJNE Rn,#data,rel寄存器与立即数不等转移32CJNE@Ri,#data,rel RAM单元与立即数不等转移32DJNZ Rn,rel寄存器减1不为零转移22DJNZ direct,rel直接寻址单元减1不为零转移32NOP空操作11MOV C,bit直接寻址位送C21MOV bit,C C送直接寻址位21CLR C C清零11CLR bit直接寻址位清零21CPL C C取反11CPL bit直接寻址位取反21SETB C C置位11SETB bit直接寻址位置位21布尔操作类指令ANL C,bit C逻辑与直接寻址位22ANL C,/bit C逻辑与直接寻址位的反22ORL C,bit C逻辑或直接寻址位22ORL C,/bit C逻辑或直接寻址位的反22JC rel C为1转移22JNC rel C为零转移22JB bit,rel直接寻址位为1转移32JNB bit,rel直接寻址为0转移32JBC bit,rel直接寻址位为1转移并清该位32。
51指令周期表
51指令周期表2455阅读0评论2008-09-27uliang2008分类:8051指令周期表mcs-51 指令速查表类别指令格式功能简述字节数周期数据传送类指令期MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1MOV A, @Ri 内部RAM单元送累加器 1 1MOV @Ri, A 累加器送内部RAM单元 1 1MOV A, #data 立即数送累加器 2 1MOV A, direct 直接寻址单元送累加器 2 1MOV direct, A 累加器送直接寻址单元 2 1MOV Rn,#data 立即数送寄存器 2 1MOV direct, #data 立即数送直接寻址单元 3 2MOV @Ri, #data 立即数送内部RAM单元 2 1MOV direct, Rn 寄存器送直接寻址单元 2 2MOV Rn, direct 直接寻址单元送寄存器 2 2MOV direct, @Ri 内部RAM单元送直接寻址单元2 2MOV @Ri, direct 直接寻址单元送内部RAM单元2 2MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR, #data16 16位立即数送数据指针 3 2MOVX A, @Ri 外部RAM单元送累加器(8位地址) 1 2MOVX @Ri, A 累加器送外部RAM单元(8位地址) 1 2MOVX A, @DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR, A 累加器送外部RAM单元(16位地址) 1 2 MOVC A, @A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A, @A+PC 查表数据送累加器(PC为基址) 1 2算术运算类指令XCH A, Rn 累加器与寄存器交换 1 1 XCH A, @Ri 累加器与内部RAM单元交换 1 1XCHD A, direct 累加器与直接寻址单元交换 2 1XCHD A, @Ri 累加器与内部RAM单元低4位交换1 1SWAP A 累加器高4位与低4位交换 1 1POP direct 栈顶弹出指令直接寻址单元 2 2PUSH direct 直接寻址单元压入栈顶 2 2ADD A, Rn 累加器加寄存器 1 1ADD A, @Ri 累加器加内部RAM单元 1 1ADD A, direct 累加器加直接寻址单元 2 1ADD A, #data 累加器加立即数 2 1ADDC A, Rn 累加器加寄存器和进位标志 1 1ADDC A, @Ri 累加器加内部RAM单元和进位标志1 1ADDC A, #data 累加器加立即数和进位标志 2 1ADDC A, direct 累加器加直接寻址单元和进位标志 2 1INC A 累加器加1 1 1INC Rn 寄存器加1 1 1INC direct 直接寻址单元加1 2 1INC @Ri 内部RAM单元加1 1 1INC DPTR 数据指针加1 1 2DA A 十进制调整 1 1SUBB A, Rn 累加器减寄存器和进位标志 1 1SUBB A, @Ri 累加器减内部RAM单元和进位标志1 1SUBB A, #data 累加器减立即数和进位标志 2 1SUBB A, direct 累加器减直接寻址单元和进位标志 2 1DEC A 累加器减1 1 1DEC Rn 寄存器减1 1 1DEC @Ri 内部RAM单元减1 1 1DEC direct 直接寻址单元减1 2 1MUL AB 累加器乘寄存器B 1 4DIV AB 累加器除以寄存器B 1 4逻辑运算类指令ANL A, Rn 累加器与寄存器 1 1ANL A, @Ri 累加器与内部RAM单元 1 1ANL A, #data 累加器与立即数 2 1ANL A, direct 累加器与直接寻址单元 2 1ANL direct, A 直接寻址单元与累加器 2 1ANL direct, #data 直接寻址单元与立即数 3 1ORL A, Rn 累加器或寄存器 1 1ORL A,@Ri 累加器或内部RAM单元 1 1ORL A,#data 累加器或立即数 2 1ORL A,direct 累加器或直接寻址单元 2 1ORL direct, A 直接寻址单元或累加器 2 1ORL direct, #data 直接寻址单元或立即数 3 1XRL A, Rn 累加器异或寄存器 1 1XRL A,@Ri 累加器异或内部RAM单元1 1XRL A,#data 累加器异或立即数 2 1XRL A,direct 累加器异或直接寻址单元 2 1XRL direct, A 直接寻址单元异或累加器 2 1XRL direct, #data 直接寻址单元异或立即数 3 2RL A 累加器左循环移位 1 1RLC A 累加器连进位标志左循环移位 1 1RR A 累加器右循环移位 1 1RRC A 累加器连进位标志右循环移位 1 1CPL A 累加器取反 1 1CLR A 累加器清零 1 1控制转移类指令ACCALL addr11 2KB范围内绝对调用 2 2 AJMP addr11 2KB范围内绝对转移 2 2LCALL addr16 2KB范围内长调用 3 2LJMP addr16 2KB范围内长转移 3 2SJMP rel 相对短转移 2 2JMP @A+DPTR 相对长转移 1 2RET 子程序返回 1 2RET1 中断返回 1 2JZ rel 累加器为零转移 2 2JNZ rel 累加器非零转移 2 2CJNE A, #data, rel 累加器与立即数不等转移 3 2CJNE A, direct, rel 累加器与直接寻址单元不等转移 3 2 CJNE Rn,#data, rel 寄存器与立即数不等转移 3 2 CJNE @Ri, #data, rel RAM单元与立即数不等转移 3 2 DJNZ Rn, rel 寄存器减1不为零转移 2 2DJNZ direct, rel 直接寻址单元减1不为零转移 3 2布尔操作类指令NOP 空操作 1 1MOV C, bit 直接寻址位送C 2 1MOV bit, C C送直接寻址位 2 1CLR C C清零 1 1CLR bit 直接寻址位清零 2 1CPL C C取反 1 1CPL bit 直接寻址位取反 2 1SETB C C置位 1 1SETB bit 直接寻址位置位 2 1ANL C, bit C逻辑与直接寻址位 2 2ANL C, /bit C逻辑与直接寻址位的反 2 2ORL C, bit C逻辑或直接寻址位 2 2ORL C, /bit C逻辑或直接寻址位的反 2 2JC rel C为1转移 2 2JNC rel C为零转移 2 2JB bit,rel 直接寻址位为1转移 3 2JNB bit,rel 直接寻址为0转移 3 2JBC bit,rel 直接寻址位为1转移并清该位 3 2上一篇:基于ARM的FLASH读写下一篇:C51的延时程序ITPUB博客| ITPUB论坛| chinaunix论坛北京皓辰网域网络信息技术有限公司. 版权所有。
MCS-51单片机的指令集(分类)
子程序返回
1
24
RETI
中断返回
1
24
AJMP addr11
绝对短转移
2
24
LJMP addr16
长转移
3
24
SJMP rel
相对转移
2
24
JMP @A+DPTR
相对于DPTR的间接转移
1
24
JZ rel
累加器为零转移
2
24
JNZ rel
累加器非零转移
2
24
CJNE A,direct,rel
累加器与直接地址单元比较,不等则转移
2
12
MOV direct,Rn
寄存器内容送入直接地址单元
2
24
MOV direct,direct
直接地址单元中的数据送入直接地址单元
3
24
MOV direct,@Ri
间接RAM中的数据送入直接地址单元
2
24
MOV direct,#data8
8位立即数送入直接地址单元
3
24
MOV @Ri,A
累加器内容送入间接RAM单元
DEC @Ri
间接RAM内容减1
1
12
MUL A,B
A乘以B
1
48
DIV A,B
A除以B
1
48
DA A
累加器进行十进制转换
1
12
3、逻辑操作类指令
助记符
功能说明
字节数
振荡周期
ANL A,Rn
累加器与寄存器相“与”
1
12
ANL A,direct
累加器与直接地址单元相“与”
MCS-51单片机指令表(打印版)
数据存储器数据存储器也称为随机存取数据存储器。
数据存储器分为内部数据存储和外部数据存储。
MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB的RAM,构成两个地址空间,访问片内RAM用“MOV”指令,访问片外RAM用“MOVX”指令。
它们是用于存放执行的中间结果和过程数据的。
MCS-51的数据存储器均可读写,部分单元还可以位寻址。
MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:数据存储器空间(低128单元);特殊功能寄存器空间(高128单元);这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。
下面我们就来详细的与大家讲解一下:低128单元:片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。
也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。
从上图中我们可以看到,8051单片机片内RAM共有256个单元(00H-FFH),这256个单元共分为两部分。
其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。
从80H—FFH 地址单元(也是128个字节)为特殊寄存器(SFR)单元。
从下图中可清楚地看出它们的结构分布。
1、通用寄存器区(00H-1FH)在00H—1FH共32个单元中被均匀地分为四块,如下图,每块包含八个8位寄存器,均以R0—R7来命名,我们常称这些寄存器为通用寄存器。
这四块中的寄存器都称为R0—R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL工程师们又安排了一个寄存器——程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的D3和D4位(RS0和RS1),即可选中这四组通用寄存器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MCS—51指令速查表
PSW寄存器 C AC FO RSI RSO OV—P n=0,1,2,3,4,5,6,7;i=0,1 指令操作说明
MOV x,y ;x←y ,A,direct←Rn,@Rj,direct,#data ;
Rn,@Ri←A,direct,#data
DPTR←#data ; c y⇔bit
MOVX x,y ;x←y ,A⇔@Ri , @DPTR
MOVC x,y ;x←y,A←@A+DPTR , @A+PC
XCH x,y ;x<= =>y,A<= =>Rn , @Ri , direct
XCHD x,y ;A低四<= =>@Rj低四
SWAP A;A低四<= =>A低四
PUSH direct ;加1压入
POP direct ;弹出减1
ADD x,y ;x←x+y,x=A,y≡Rn,@Ri , direct , #data * ADDC x,y ;x←x+y+cy,x=A,y≡Rn,@Ri , direct , #data * SUBB x,y ;x←x-y-cy,x=A,y≡Rn,@Ri , direct , #data * INC x ;x←x+1,x≡A,Rn , @Ri , direct , DPTR
DEC x ;x←x-1,x≡A,Rn , @Ri , direct
DA A;对A进行十进制调整
MUL AB ;BA←A×B
DIV AB ;A/B,A←商,B←余
ANL x,y ;x←x∧y x=A,y≡Rn,@Ri , direct , #data; *
x≡direct , y≡A,#data
ORL x,y ;x←x∨y x=A,y≡Rn,@Ri , direct , #data; *
x≡direct , y ≡A,#data
XRL x,y ;x←x○+y x=A,y≡Rn,@Ri , direct , #data; *
x≡direct , y ≡A,#data
CPL A;A←A—
CLR A;A←0
RL A;Cy
RR A;Cy
RLC A;
RRC A;
指令操作说明
AJMP addr 11 ;pc←addr 11
LJMP addr 16 ;pc←addr 16
SJMP rel ;pc←pc+2+rel
JMP @A+DPTR;pc←A+DPTR
JZ rel ;A=0, 则转,pc ←pc+2+rel
JNZ rel ;A≠0, 则转,pc ←pc+2+rel
CJNE A,direct , re l;A≠(direct),则转,pc ←pc+3+rel * CJNE A,#data , re l;A≠#data,则转,pc ←pc+3+rel * CJNE Rn,#data , re l;Rn≠#data,则转,pc ←pc+3+rel * CJNE @Ri,#data , re l; @Ri≠#data,则转,pc ←pc+3+rel * DJNZ Rn,rel ; Rn-1≠0,则转, pc←pc+2+rel
DJNZ direct,rel; direct-1≠0,则转,pc←pc+3+rel ACALL add 11 ;pc ←pc+2, pc压栈,pc10~0←addr 11
LCA LL add 16 ;pc ←pc+3, pc压栈,pc15~0←addr 16
RET ;弹出→pc
RETI ;弹出→pc,0→“优先级激动”触发器CPL x ;x←_x,x≡cy,bit
CLR x ;x←0,x≡cy,bit
SETB x ;x←1,x≡yc,bit
ANL c,bit ; cy←cy∧bit
ORL c,bit ;cy←cy∨bit
ANL c,bit ; cy←cy∧bit
ORL c;cy←cy∨bit
JC rel ; cy=1, 则转,pc←pc+2+rel
JNC rel ; cy≠1, 则转,pc←pc+2+rel
JB bit,rel ; bit=1, 则转,pc←pc+3+rel
JNB bit,rel ; bit≠1, 则转,pc←pc+2+rel
JBC bit,rel ; bit=1, 则转,bit←0, pc←pc+2+rel
厦门大学厦门大学厦门大学
厦门大学厦门大学。