MCS-51单⽚机常⽤汇编指令⼤全
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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。