视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
汇编语言最全指令表
2025-09-29 17:10:44 责编:小OO
文档
伪指令

1、定位伪指令

             ORG         m

•2、定义字节伪指令

              DB    X1,X2,X3,…,Xn

•3、字定义伪指令

DW     Y1,Y2,Y3,…,Yn

4、汇编结束伪指令

              END

寻址方式

MCS-51单片机有五种寻址方式:

           1、寄存器寻址                                        2、 寄存器间接寻址

           3、直接寻址                                          4、立即数寻址 

           5、基寄存器加变址寄存器间接寻址                      6、相对寻址  

           7、位寻址

数据传送指令

一、以累加器A为目的操作数的指令(4条)

•MOV    A,Rn        ;(Rn)→A                n=0~7   

•MOV    A,direct    ;( direct )→A      

•MOV    A,@Ri    ;((Ri))→A           i=0~1        

•MOV    A,#data    ;  data →A

二、以Rn为目的操作数的指令(3条)

        MOV      Rn ,A        ;(A)→ Rn 

MOV    Rn ,direct        ;( direct )→ Rn 

MOV    Rn ,#data        ;  data → Rn 

•三、以直接寻址的单元为目的操作数的指令(5条)

MOV    direct,A        ;(A)→direct

        MOV    direct,Rn        ;(Rn)→direct

        MOV    direct,direct     ;(源direct)→目的direct

        MOV    direct,@Ri          ;((Ri))→direct

        MOV    direct,#data          ;  data→direct

四、以寄存器间接寻址的单元为目的操作数的指令(3条)

MOV      @Ri,A        ;(A)→(Ri)

        MOV    @Ri,direct        ;(direct)→(Ri)

        MOV    @Ri,#data          ;   data→ (Ri)

五、十六位数据传送指令(1条)

MOV    DPTR,#data16    ;dataH→DPH,dataL →DPL

六、堆栈操作指令

进栈指令

PUSH    direct    ;(SP)+1 → SP ,(direct) → SP

退栈指令

POP    direct  

七、字节交换指令(5条)

•XCH    A,Rn    ;(A)→(Rn)        

•XCH    A,direct          ;(A)→(direct)       

•XCH    A,@Ri            ;(A)→((Ri))•

八、半字节交换指令

•XCHD       A,@Ri    ;(A)0~3→((Ri)) 0~3

九、加器A与外部数据存贮器传送指令(4条)

•MOVX    A,@DPTR    ; ((DPTR))→A         

•MOVX    A,@ Ri        ; ((Ri))→A        i=0,1

•MOVX    @ DPTR ,A    ; (A)→( DPTR)        

•MOVX    @ Ri , A        ; (A)→(Ri)        i=0,1

十、查表指令

(i)MOVC    A ,@ A+PC    ;((A)+(PC))→A

•    (ii)MOVC  A , @A+ DPTR    ;((A)+(DPTR))

算术运算指令

一、不带进位的加法指令(4条)

ADD    A,Rn        ;(A)+(Rn)→A        

ADD    A,direct    ;(A)+(direct)→A        

ADD    A,@Ri     ;(A)+((Ri))→A        

ADD    A,#data    ;(A)+#data→A

二、带进位加法指令(4条)

ADDC    A,Rn        ;(A)+(Rn)+CY→A            

ADDC    A,direct    ;(A)+(direct) +CY →A            

ADDC    A,@Ri    ;(A)+((Ri)) +CY →A           

ADDC    A,#data    ;(A)+  #data +CY →A

三、增量指令(5条)

INC    A        ;(A)+1 →A    

•INC    Rn        ;(Rn)+1 → Rn     

•INC    direct    ;(direct)+1 → direct     

•INC    @Ri        ;((Ri))+1 →(Ri)    

•INC    DPTR    ;(DPTR)+1 →DPTR

四、十进制调整指令(1条)

DA    A

减法指令

一、带进位减法指令

SUBB   A,Rn

    SUBB   A,direct

    SUBB   A,@Ri

    SUBB   A,#data

二、减1指令(4条)

DEC    A                  

DEC    Rn           

DEC    direct       

DEC    @Ri 

乘法指令

MUL    AB 

除法指令

DIV    AB 

逻辑运算指令

累加器A的逻辑操作指令

一、累加器A清0

CLR  A

二、累加器A取反

CPL  A

三、左环移指令

RL   A 

四、带进位左环移指令

RLC  A 

五、右环移指令

RR   A

六、带进位右环移指令

RRC     A

七、累加器ACC半字节交换指令

SWAP   A

两个操作数的逻辑操作指令

逻辑与指令

ANL   A,Rn

        ANL   A,direct 

        ANL   A, @Ri

        ANL   A,#data

        ANL   direct  ,A

        ANL   direct,#data

逻辑或指令

ORL  A,Rn

        ORL  A,direct

        ORL  A, @Ri

        ORL  A,#data

        ORL  direct,A

        ORL  direct,#data

逻辑异或指令

XRL    A,Rn          

        XRL    A,direct         

        XRL    A,@Ri       

          XRL    A,#data          

        XRL    direct,A          

        XRL    direct,#data 

位操作指令

位变量传送指令

MOV    C,bit

MOV    bit,C

位变量修改指令

CLR     C

    CLR     bit

    CPL     C

CPL     bit

SETB     C

SETB     bit

位变量逻辑与指令

ANL  C,bit

    ANL  C,/bit

位变量逻辑或指令

ORL    C,bit

    ORL    C,/bit

控制转移指令

无条件转移指令(4条)

1、短跳转指令

AJMP    addr11 ;先(PC)+2→PC ;addr11→PC10~0 ,(PC15~11)

2、跳转指令

LJMP    addr16 ;Addr16→PC

3、转移指令

4、

SJMP    rel    ;先(PC)+2→PC;后(PC)+rel→PC

4、寄存器加变址存器间接转移指令(散转指令)

JMP    @A+DPTR      ;(A)+(DPTR)→PC

条件转移指令()

一、测试条件符合转移指令

JZ    rel ;            当A=0 时,(PC)+rel→(PC)转移;当A≠0时,顺序执行。

JNZ       rel ;        当A≠0 时,(PC)+rel→(PC)转移;当A=0时,顺序执行。

JC         rel            如果进位标志CY为1,则执行转移;

JNC     rel            如果进位标志CY为0,则执行转移;

JB          bit,  rel    如果直接寻址位的值为1,则执行转移;

JNB      bit , rel    如果直接寻址位的值为0,则执行转移;

JBC      bit , rel    如果直接寻址位的值为1,则执行转移;然后清“0”直接寻址位(bit)。

二、比较不相等转移指令

CJNE    (目的操作数),(源操作数),rel

CJNE    A,direct,rel   

CJNE    A,#data,rel   

CJNE   Rn,#data,rel   

          ;若(Rn) >#data ,则(PC)+rel→PC,且0→CY;           

      ;若(Rn) < #data ,则(PC)+rel→PC,且1→CY;           

          ;若(Rn) = #data ,则顺序执行,且0→CY。

三、减1不为0转移指令

DJNZ    Rn,rel    ;(Rn)-1→Rn;

;若(Rn)≠0, 则(PC)+rel →PC;

;若(Rn) = 0, 则结束循环, 顺序执行

•DJNZ    direct,rel    ;(direct )-1→ direct ;

        ;若(direct)≠0,则(PC)+rel →PC;

        ;若(direct) = 0,则结束循环,顺序执行

调用和返回指令

一、短调用指令

ACALL    addr11    ;(PC)+2→PC

                ;(SP)+1→SP,(PC 0~7)→(SP)

                ;(SP)+1→SP,(PC 8~15)→(SP)

                ;addr0~10→PC0~10,(PC11~15)不变

二、长调用指令

LCALL    addr16    ;(PC)+3→PC

        ;(SP)+1→SP,(PC 0~7)→(SP)

        ;(SP)+1→SP,(PC 8~15)→(SP)

        ;addr0~15→PC

三、返回指令

1.  从子程序返回指令

RET    ;((SP)) →PC 8~15 ,(SP) -1→SP

                ;((SP)) →PC 0~7   ,(SP) -1→SP

2.  中断服务程序返回指令

RETI    ;((SP)) →PC 8~15 , (SP) -1→SP

                     ; ((SP)) →PC 0~7  , (SP) -1→SP

                 ;开放中断逻辑

四、空操作指令

NOP下载本文

显示全文
专题