
单片机汇编语言指令表.docx
8页附录 5 MCS-51 指令表MCS-51 指令中所用符号和含义Rn 当前工作寄存器组的8个工作寄存器(n=0~7)Ri——可用于间接寻址的寄存器,只能是当前寄存器组中的2个寄存器RO、R1 (i=0, 1) direct——内部RAM中的8位地址(包括内部RAM低128单元地址和专用寄存器单元地址) #data——8 位常数data16——16 位常数addr16——16位目的地址,只限于在LCALL和LJMP指令中使用addrll——11位目的地址,只限于在ACALL和AJMP指令中使用rel——相对转移指令中的8位带符号偏移量DPTR——数据指针,16位寄存器,可用作16位地址寻址SP——堆栈指针,用来保护有用数据bit 内部RAM或专用寄存器中的直接寻址位A——累加器B——专用寄存器,用于乘法和除法指令或暂存器C——进位标志或进位位,或布尔处理机中的累加器@——间接寻址寄存器的前缀标志,如@Ri,@DPTR/——位操作数的前缀,表示对位操作数取反,女口/bitX)——以X的内容为地址的单元中的内容,X为表示指针的寄存器Ri (i=0、1)、DPTR、 SP (Ri、DPTR、SP的内容均为地址)或直接地址单元。
如:为了区别地址单元与立即数如30H 单元与立即数30H,注释时,表述地址单元时用括号如(30H),立即数直接表示30H——表示当前指令的地址<=>——表示数据交换<——箭头左边的内容被箭头右边的内容所代替十六进制 代码助记符功能对标志位影响字节数周 期 数POVACCY算术运算指令28 〜2FADD A,RnA+ Rn—AVVVV1125ADD A,direc tA+(direc t)—AVVVV2126,27ADD A,@RiA+( Ri )—AVVVV1124ADD A,#da taA+ data —AVVVV2138 〜3FADDC A,RnA+ Rn+CY—AVVVV1135ADDC A,direc tA+(direc t)+CY—AVVVV2136,37ADDC A,@RiA+( Ri )+CY—AVVVV1134ADDC A,#da taA+ data +CY—AVVVV2198 〜9FSUBB A,RnA- Rn-CY—AVVVV1195SUBB A,directA-(direc t) -CY—AVVVV2196,97SUBB A,@RiA-( Ri )-CY—AVVVV1194SUBB A,#da taA- data -CY—AVVVV2104INC AA+1—AVXXX1108 〜OFINC RnRn+1— RnXXXX1105INC direct(direc t)+l— (direc t)XXXX2106,07INC @Ri(Ri )+1—( Ri )XXXX11A3INC DPTRDPTR+1— DPTR1214DEC AA-1—AVXXX1118 〜IFDEC RnRn-1— RnXXXX1115DEC direct(direc t)T— (direc t)XXXX2116,17DEC @Ri(Ri )-1—( Ri )XXXX11A4MUL ABA* B—BAVVX01484DIV ABA/B—A……BVVX014D4DA A对A进行十进制调整VXVV11逻辑卜运算指令58 〜5FANL A,RnAA Rn—AVXXX1155ANL A,direc tAA(direc t)—AVXXX2156, 57ANL A,@RiAA( Ri )—AVXXX1154ANL A,#da taAAda ta —AVXXX2152ANL direc t,A(direc t)AA—(direc t)XXXX2153ANL direc t,#da ta(direc t)A data —(direct)XXXX3248~4FORL A,RnAVRn—AVXXX1145ORL A,direc tAV(direc t)—AVXXX21十六进制 代码助记符功能对标志位影响字节数周 期 数POVACCY46,47ORLA,@RiAV( Ri )—AVXXX1144ORLA,#da taAVda ta —AVXXX2142ORLdirec t,A(direc t)VA— (direc t)XXXX2143ORLdirec t,#da ta(direc t)V data —(direct)XXXX3268~6FXRLA,RnA ㊉ Rn—AVXXX1165XRLA,direc tA㊉(direct)—AVXXX2166,67XRLA,@RiA@( Ri )—AVXXX1164XRLA,#da taA㊉data —AVXXX2162XRLdirec t,A(direc t)㊉A—(direc t)XXXX2163XRLdirec t,#da ta(direct)㊉ data —(direct)XXXX32E4CLRA0—AVXXX11F4CPLAA —aXXXX1123RLAA循环左移一位XXXX1133RLCAA带进位位循环左移一位VXXV1103RRAA循环右移一位XXXX1113RRCAA带进位位循环右移一位VXXV11C4SWAPAA半字节父换XXXX11数据号传送指令E8 〜EFMOVA,RnRn—AVXXX11E5MOVA,direc t(direc t)—AVXXX21E6,E7MOVA,@Ri(Ri )—AVXXX1174MOVA,#da tadata —AVXXX21F8~FFMOVRn, AA—RnXXXX11A8~AFMOVRn ,direc t(direc t)— RnXXXX2278~7FMOVRn ,#da tadata — RnXXXX21F5MOVdirect , AA— (direc t)XXXX2188~8FMOVdirec t ,Rndirec t— RnXXXX2285MOV directl ,direct2(direc t2) — (direc tl)XXXX3286,87MOVdirec t ,@Ri(Ri )— (direc t)XXXX2275MOVdirect ,#datadata — (direct)XXXX32F6,F7MOV@Ri , AA—(Ri)XXXX11A6,A7MOV@Ri ,direc t(direc t) — (Ri)XXXX2276,77MOV@Ri ,#da tadata — (Ri)XXXX2190MOVDPTR,#da ta16data16— DPTRXXXX3293MOVCA,@A+DPTRA+DPTR—AVXXX1283MOVCA,@A+PCA+PC—AVXXX12十六进制 代码助记符功能对标志位影响字 节 数周 期 数POVACCYE2,E3MOVX A,@ Ri(Ri)-AVXXX12E0MOVX A,@ DPTR(DPTR)-AVXXX12F2,F3MOVX @ Ri,AA-(Ri)XXXX12F0MOVX @DPTR,AAf(DPTR)XXXX12COPUSH directSP+l-SP (direc t) —SPXXXX22DOPOP directSPf(direc t)SP-l—SPXXXX22C8~CFXCH A, RnA<=>RnVXXX11C5XCH A, direc tA〈二〉(direct)VXXX21C6,C7XCH A,@ RiA<=>( Ri)VXXX11D6,D7XCHD A,@ RiA <=>( Ri)VXXX11位操作指令C3CLR CO—CYXXXV11C2CLR bit0—bi tXXX21D3SETB C1—CYXXXV11D2SETB bit1—bi tXXX21B3CPL CCY —CYXXXV11B2CPL bitbit —bitXXX2182ANL C, bitCYAbi t—CYXX。












