MCS-51指令速查表
- 格式:doc
- 大小:33.48 KB
- 文档页数:2
数据传送类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单片机汇编指令速查表指令格式功能简述字节数周期一、数据传送类指令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指令速查表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指令系统中的常用符号说明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的指令系统。
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单片机指令周期表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单片机操作数共有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系列单片机指令表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指令功能:构造目的地址,实现程序转移。
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指令速查表类别指令格式功能简述字节数周期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指令周期表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指令速查表
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
厦门大学厦门大学厦门大学
厦门大学厦门大学。