1.数据传送指令
寄存器寻址: MOV R0,30H ;把30H单元内容赋给寄存器R0
直接寻址: MOV ACC,30H ;把30H单元内容赋给累加器A
立即寻址: MOV R0,#30H ;把立即数30H赋给寄存器R0
寄存器间接寻址: MOV RO,@R1 ;把R1内容存放的地址单元内的数赋给R0
变址寻址(查表指令):MOVC A,@A+DPTR ;((A)+(DPTR))的值赋给A
相对寻址: SJMP $ ;转移到自身的首地址,构成死循环
位寻址: CLR C ;清零Cy
外部数据传送指令: MOV DPTR,#1818H ;将外部存储器单元的地址数赋给DPTR寄存器
MOVX A,@DPTR ;将DPTR指定的外部数据存储器单元中的数据送入A
MOVX A,@Ri ;
堆栈指令: PUSH ACC ;(SP)++,(A)赋给((SP))
pop 78H ;(Sp)--,((Sp))赋给78H单元
数据交换指令: XCH A,R0 ; A与R0数据交换
XCHD A,R0 ;A与R0低四位数据交换
SWAP A ;A的高四位与低四位交换
2.算术运算指令
不带进位加法: ADD A,R0 ;(A)=(A)+(R0);
带进位加法: ADDC A,RO ;(A)=(A)+(R0)+(Cy)
加一: INC A ;(A)++
减法: SUBB A,R0 ;(A)=(A)-(R0)-(Cy)
减一: DEC A ;(A)--
乘法: MUL AB ;(B)(A)=(A)*(B)
除法: DIV AB ;(A)..(B)=(A)/(B)
3.逻辑运算和移位指令
逻辑与: ANL A,R0 ;(A)=(A)&(R0)
逻辑或: ORL A,R0 ;(A)=(A)|(R0)
逻辑异或: XRL A,R0 ;(A)=(A)异或(R0)
累加器清零: CLR A ;(A)=0
累加器取反: CPL A ;(A)=!(A)
不带进位左移: RL A;
不带进位右移: RR A;
带进位左移: RLC A;
带进位右移: RLR A;
4.位操作指令
位传送: MOV bit,C;
位清零: CLR C;
位置1: SETB C;
位运算: ANL bit,C;
ORL bit,C;
5.控制转移指令
无条件转移: LJMP MAIN;
子程序调用: LCALL FUN1;
子程序返回: RET
累加器判0转移: JZ FUN1 ;若A==0,则转移FUN1,否则执行下一条指令
JNZ FUN1 ;若A!=0,则转移FUN1,否则执行下一条指令
减一条件转移: DJNZ R0,FUN1 ;(R0)--,若R0!=0,则转移FUN1,否则执行下一条指令
比较条件转移: CJNE R0,A,FUN1 ;若R0!=A,则转移FUN1,否则执行下一条指令
以Cy内容转移: JC FUN1 ;若(Cy)!=0,转移FUN1,否则执行下一条指令
JNC FUN1 ;若(Cy)=0,转移FUN1,否则执行下一条指令
以bit内容转移: JB bit,FUN1 ;若(bit)!=0,转移FUN1,否则执行下一条指令
JNB bit,FUN1 ;若(bit)==0,转移FUN1,否则执行下一条指令
6.空操作指令
NOP
MCS-51单片机常用汇编指令大全
最新推荐文章于 2025-04-12 11:48:38 发布