
51单片机汇编指令集[附记忆方法].doc
6页51单片机汇编指令集一、数据传送类指令〔7种助记符MOV〔英文为Move:对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;MOVC〔Move Code读取程序存储器数据表格的数据传送;MOVX
8种常用伪指令1.ORG 16位地址 ;此指令用在原程序或数据块的开始,指明此语句后面目标程序或数据块存放的起始地址2.[标号:] DB 字节数据项表;将项表中的字节数据存放到从标号开始的连续字节单元中例如:SEG: DB 88H,100,"7","C"3.[标号:]DW 双字节数据项表;定义16位地址表,16地址按低位地址存低位字节,高位地址存高位字节例如:TAB: DW 1234H,7BH4.名字 EQU 表达式 或名字=表达式;用与给一个表达式赋值或给字符串起名字之后名字可用做程序地址,数据地址或立即数地址使用名字必须是一字母开头的字母数字串例如:COUNT=10 或 SPACE EQU 10H5.名字 DATA 直接字节地址;给8位内部RAM单元起个名字,名字必须是一字母开头的字母数字串同一单元可起多个名字例如:ERROR DATA 80H6.名字 XDATA 直接字节地址;给8位外部RAM起个名字,名字规定同DATA伪指令例如:IO_PORT XDATA 0CF04H7.名字 BIT 位指令;给一可位寻址的位单元起个名字,规定同DATA伪指令例如:SWT BIT 30H8.[标号:] END;指出源程序到此结束,汇编对其后的程序语句不予理睬。
源程序只在主程序最后使用一个END指 令 集〔111条助 记 符说明字节周期代 码1.数据传送指令〔30条MOV A,Rn寄存器送 A 11E8--EFMOV A,data直接字节送A 21E5MOV A,@Ri间接RAM 送A 11E6--E7MOV A,#data立接数送 A 2174MOV Rn,AA 送寄存器11F8--FFMOV Rn,data直接数送寄存器22A8--AFMOV Rn,#data立即数送寄存器2178--7FMOV data,AA 送直接字节21F5MOV data,Rn寄存器送直接字节2188—8FMOV data,data直接字节送直接字节3285MOV data,@Ri间接 Rn 送直接字节2286;87MOV data,#data立即数送直接字节3275MOV @Ri,AA 送间接 Rn12F6;F7MOV @Ri,data直接字节送间接Rn11A6;A7MOV @Ri,#data立即数送间接 Rn2276;77MOV DPTR,#data1616 位常数送数据指针3190MOV C,bit直接位送进位位21A2MOV bit,C进位位送直接位2292MOVC A,@A+DPTRA+DPTR 寻址程序存贮字节送 A3293MOVC A,@A+PCA+PC 寻址程序存贮字节送A1283MOVX A,@Ri外部数据送A〔8 位地址12E2;E3MOVX A,@DPTR外部数据送A〔16 位地址12E0MOVX @Ri,AA 送外部数据〔8 位地址12F2;F3MOVX @DPTR,A A 送外部数据〔16 位地址12F0PUSH data直接字节进栈道,SP 加122C0POP data直接字节出栈,SP 减122D0XCH A,Rn寄存器与 A 交换11C8—CFXCH A,data直接字节与A 交换21C5XCH A,@Ri间接Rn 与A 交换11C6;C7XCHD A,@Ri间接Rn 与A 低半字节交换11D6;D72.逻辑运算指令〔35条ANL A,Rn寄存器与到A1158—5FANL A,data直接字节与到A2155ANL A,@Ri间接RAM与到A1156;57ANL A,#data立即数与到A2154ANL data,AA与到直接字节2152ANL data,#data立即数与到直接字节3253ANL C,bit直接位与到进位位2282ANL C,/bit直接位的反码与到进位位22B0ORL A,Rn寄存器或到A1148—4FORL A,data直接字节或到A2145ORL A,@Ri间接RAM或到A1146;47ORL A,#data立即数或到A2144ORL data,AA或到直接字节2142ORL data,#data立即数或到直接字节3243ORL C,bit直接位或到进位位2272ORL C,/bit直接位的反码或到进位位22A0XRL A,Rn寄存器异或到A1168—6FXRL A,data直接字节异或到A2165XRL A,@Ri间接RAM异或到A1166;67XRL A,#data立即数异或到A2164XRL data,AA异或到直接字节2162XRL data,#data立即数异或到直接字节3263SETB C进位位置 111D3SETB bit直接位置 121D2CLR AA清011E4CLR C进位位清 011C3CLR bit直接位清 021C2CPL AA求反码11F4CPL C进位位取反 11B3CPL bit直接位取反21B2RL AA循环左移一位 1123RLC AA 带进位左移一位1133RR AA右移一位1103RRC AA 带进位右移一位1113SWAP AA 半字节交换11C43.算术运算指令〔24条ADD A,Rn寄存器加到A 1128—2FADD A,data直接字节加到A2125ADD A,@Ri间接RAM 加到A1126;27ADD A,#data立即数加到A2124ADDC A,Rn寄存器带进位加到 A1138—3FADDC A,data直接字节带进位加到A2135ADDC A,@Ri间接RAM 带进位加到A1136;37ADDC A,#data立即数带进位加到 A2134SUBB A,Rn从A 中减去寄存器和进位1198—9FSUBB A,data从A 中减去直接字节和进位2195SUBB A,@Ri 从A 中减去间接RAM 和进位1196;97SUBB A,#data从A 中减去立即数和进位2194INC AA加11104INC Rn寄存器加 11108—0FINC data直接字节加12105INC @Ri间接RAM 加11106;07INC DPTR数据指针加112A3DEC AA减11114DEC Rn寄存器减 11118—1FDEC data直接字节减12115DEC @Ri间接RAM 减11116;17MUL ABA乘B14。
