MCS-51指令速查表

合集下载

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单片机汇编指令速查表

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的指令表

mcs_51的指令表
2
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单片机指令简表

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指令速查表

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单片机指令总表

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指令汇总表

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指令及编码表

机器周期数 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
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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
厦门大学厦门大学厦门大学
厦门大学厦门大学。

相关文档
最新文档