婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

51單片機匯編程序集

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2008/10/31


1、片內RAM初始化子程序
2、片外RAM初始化子程序
3、片外RAM初始化子程序(雙字節個單元)
4、內部RAM數據復制程序
5、外部RAM數據復制程序
6、外部RAM數據復制程序
7、外部RAM數據復制到內部RAM程序
8、限幅濾波程序
9、中位值濾波程序
10、N點算術平均濾波
11、N點加權平均濾波
12、一階加權滯后濾波程序
13、雙字節取補程序
14、N節取補程序
15、雙字節無符號數加法程序
16、N字節無符號數加法程序
17、雙字節無符號數減法程序
18、N字節無符號數減法程序
19、單字節無符號數乘法程序
20、單字節無符號數乘法程序
21、單字節無符號數乘法程序
22、雙字節無符號數乘法程序
23、雙字節無符號數乘法程序
24、N字節無符號數乘法程序
25、單字節無符號除法程序
26、單字節無符號除法程序
27、雙字節無符號除法程序
28、N字節無符號除法程序(組合)
29、N字節無符號除法程序
30、N字節數據左移程序
31、原碼有符號雙字節減法程序
32、原碼有符號雙字節加法程序
33、原碼有符號雙字節乘法程序
34、原碼有符號雙字節除法程序
35、單字節順序查找程序
36、單字節順序查找程序
37、雙字節字符串順序查找程序
38、雙字節字符串順序查找程序
39、N字節字符串順序查找程序
40、單字節最值查找程序
41、浮點數順序查找程序

42、浮點數最值查找程序
43、單字節折半查找程序

;片內RAM初始化子程序
IBCLR    :MOV    A,R0
          MOV    R1,A
          CLR    A
IBC1     :MOV    @R1,A
          INC    R1
          DJNZ   R7,IBC1
          RET
;片外RAM初始化子程序
EBCLR1   :MOV    A,ADDPL
          MOV    DPL,A
          MOV    A,ADDPH
          MOV    DPH,A
          CLR    C
EBC11    :MOVX   @DPTR,A
          INC    DPTR
          DJNZ   R7,EBC11
          RET
;片外RAM初始化子程序(雙字節個單元)
EBCLR2   :MOV    A,ADDPL
          MOV    DPL,A
          MOV    A,ADDPH
          MOV    DPH,A
          MOV    A,R7
          JZ     EBC21
          INC    R6
EBC21    :CLR    A
          MOVX   @DPTR,A
          INC    DPTR
          DJNZ   R7,EBC21
          DJNZ   R6,EBC21
          RET

;內部RAM數據復制程序
;入口    :R0,R7
;占用資源:A
;堆棧需求:2字節
;出口    :R1
IBMOV    :MOV    A,R0
          ADD    A,R7
          MOV    R0,A
          MOV    A,R1
          ADD    A,R7
          MOV    R1,A
IBM1     :DEC    R0
          DEC    R1
          MOV    A,@R0
          MOV    @R1,A
          DJNZ   R7,IBM1
          RET
;外部RAM數據復制程序
;入口    :ADDPH,ADDPL,R7
;占用資源:ACC
;堆棧需求:2字節
;出口    :R0,R1
EBMOV1   :MOV    A,ADDPL
          ADD    A,R7
          MOV    DPL,A
          CLR    A
          ADDC   A,ADDPH
          MOV    DPH,A
          MOV    A,R7
          ADD    A,R1
          XCH    A,R0
          ADDC   A,#00H
          MOV    P2,A
EBM11    :DEC    R0
          CJNE   R0,#0FFH,EBM12
          DEC    P2
EBM12    :DEC    DPL
          MOV    A,DPL
          CJNE   A,#0FFH,EBM13
          DEC    DPH
EBM13    :MOVX   A,@R0
          MOVX   @DPTR,A
          DJNZ   R7,EBM11
          RET
;外部RAM數據復制程序
;入口    :ADDPH,ADDPL,R6,R7
;占用資源:ACC
;堆棧需求:2字節
;出口    :R0,R1
EBMOV2   :MOV    A,ADDPL
          ADD    A,R7
          MOV    DPL,A
          MOV    A,R6
          ADDC   A,ADDPH
          MOV    DPH,A
          MOV    A,R7
          ADD    A,R1
          XCH    A,R0
          ADDC   A,R6
          MOV    P2,A
          MOV    A,R7
          JZ     EBM21
          INC    R6
EBM21    :DEC    R0
          CJNE   R0,#0FFH,EBM22
          DEC    P2
EBM22    :DEC    DPL
          MOV    A,DPL
          CJNE   A,#0FFH,EBM23
          DEC    DPH
EBM23    :MOVX   A,@R0
          MOVX   @DPTR,A
          DJNZ   R7,EBM21
          DJNZ   R6,EBM21
          RET
;外部RAM數據復制到內部RAM程序
;入口    :ADDPH,ADDPL,R7
;占用資源:ACC
;堆棧需求:2字節
;出口    :R0
ITEMOV  :MOV    A,ADDPL
         ADD    A,R7
         MOV    DPL,A
         MOV    A,ADDPH
         ADDC   A,#00H
         MOV    DPH,A
         MOV    A,R0
         ADD    A,R7
         MOV    R0,A
ITEM1   :DEC    R0
         DEC    DPL
         MOV    A,DPL
         CJNE   A,#0FFH,ITEM2
         DEC    DPH
ITEM2   :MOVX   A,@DPTR
         MOV    @R0,A
         DJNZ   R7,ITEM1
         RET
 
;限幅濾波程序
;入口    :A,SDAT,DELTY
;占用資源:B
;堆棧需求:2字節
;出口    :A
JUGFILT  :MOV    B,A
          CLR    C
          SUBB   A,SDAT
          JNC    JUGFT1
          CPL    A
          INC    A
JUGFT1   :SETB   A
          SUBB   A,#DELTY
          JNC    JUGFT3
          MOV    A,SDAT
          RET
JUGFT3   :MOV    A,B
          MOV    SDAT,A   
          RET
;中位值濾波程序
;入口    :ADDPH,ADDPL,N
;占用資源:ESELSORT
;堆棧需求:4字節
;出口    :A
MEDFILT  :LCALL  ESELSORT
          MOV    A,N
          CLR    C
          RRC    A
          ADD    A,ADDPL
          MOV    DPL,A
          MOV    A,ADDPH
          MOV    DPH,A
          JNC    MEDFT1
          INC    DPH
MEDFT1   :MOVX   A,@DPTR
          RET
;N點算術平均濾波
;入口    :ADDPH,ADDPL,N
;占用資源:B,R3,R4
;堆棧需求:2字節
;出口    :A
AVFILT   :MOV    A,ADDPL
          MOV    DPL,A
          MOV    A,ADDPH
          MOV    DPH,A
          CLR    A
          MOV    R3,A
          MOV    R4,A
          MOV    R7,N
AVFT1    :MOVX   A,@DPTR
          INC    DPTR
          ADD    A,R4
          MOV    R4,A
          JNC    AVFT2
          INC    R3
AVFT2    :DJNZ   R7,AVFT1
          MOV    R7,N
          MOV    R2,#00H
          LCALL  NDIV31
          MOV    A,R4
          RET
;N點加權平均濾波
;入口    :ADDPH,ADDPL,N
;占用資源:B,R3,R4
;堆棧需求:2字節
;出口    :A
QAVFILT  :CLR    A
          MOV    R3,A
          MOV    R4,A
          MOV    R7,N
          MOV    P2,ADDPH
          MOV    R1,ADDPL
          MOV    DPTR,#QAVTAB
QAVFT1   :MOVC   A,@A+DPTR
          MOV    B,A
          MOVX   A,@R1
          INC    DPTR
          INC    R1
          MUL    AB
          ADD    A,R4
          MOV    R4,A
          MOV    A,B
          ADDC   A,R3
          MOV    R3,A
          DJNZ   R7,QAVFT1
          MOV    A,R4
          JNB    ACC.7,QAVFT2
          INC    R3
QAVFT2   :MOV    A,R3
          RET
QAVTAB   :DB
;一階加權滯后濾波程序
;入口    :A,DELTY
;占用資源:B,R3,R4
;堆棧需求:2字節
;出口    :A
BQFILT   :MOV    B,A
          CLR    A
          MOV    DPTR,#ABTAB
          MOVC   A,@A+DPTR
          MUL    AB
          MOV    R4,A
          MOV    R3,B
          MOV    A,#01H
          MOVC   A,@A+DPTR
          MOV    B,DELTY
          MUL    AB
          ADD    A,R4
          MOV    R4,A
          MOV    A,B
          ADDC   A,R3
          MOV    R3,A
          MOV    A,R4
          JNB    ACC.7,FT1
          INC    R3
FT1      :MOV    A,R3
          MOV    DELTY,A
          RET
BQTAB    :DB     80H,80H
 
;雙字節取補程序 /(R3R4)=(R3R4)
;入口    :R3,R4
;占用資源:ACC
;堆棧需求:2字節
;出口    :R3,R4
CMPT     :MOV    A,R4
          CPL    A
          ADD    A,#01H
          MOV    R4,A
          MOV    A,R3
          CPL    A
          ADDC   A,#00H
          MOV    R3,A
          RET
;N節取補程序 /([R0])=([R0])
;入口    :R0,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R0
NCMPTN   :MOV    B,R0
          SETB   C
NCPT1    :MOV    A,@R0
          CPL    A
          ADDC   A,#00H
          MOV    @R0,A
          INC    R0
          DJNZ   R7,NCPT1
          MOV    R0,B
          RET
;雙字節無符號數加法程序 (R3R4+R6R7)=(R3R4)
;入口    :R3,R4,R6,R7
;占用資源:ACC
;堆棧需求:2字節
;出口    :R3,R4,CF
NADD     :MOV    A,R4
          ADD    A,R7
          MOV    R4,A
          MOV    A,R3
          ADDC   A,R6
          MOV    R3,A
          RET

;N字節無符號數加法程序 ([R0]+[R1])=([R0])
;入口    :R0,R1,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R0,CF
NADDN    :MOV    B,R0
          CLR    C
NADN1    :MOV    A,@R0
          ADDC   A,@R1
          MOV    @R0,A
          INC    R0
          INC    R1
          DJNZ   R7,NADN1
          MOV    R0,B
          RET
;雙字節無符號數減法程序 (R3R4-R6R7)=(R3R4)
;入口    :R3,R4,R6,R7
;占用資源:ACC
;堆棧需求:2字節
;出口    :R3,R4
NSUB     :MOV    A,R4
          CLR    C
          SUBB   A,R7
          MOV    R4,A
          MOV    A,R3
          SUBB   A,R6
          MOV    R3,A
          RET
;N字節無符號數減法程序 ([R0]-[R1])=([R0])
;入口    :R0,R1,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R0,CF
NSUBN    :MOV    B,R0
          MOV    R7,N
          CLR    C
NSUBN1   :MOV    A,@R0
          SUBB   A,@R1
          MOV    @R0,A
          INC    R0
          INC    R1
          DJNZ   R7,NSUBN1
          MOV    R0,B
          RET
;單字節無符號數乘法程序 (R3R4*R7)=(R2R3R4)
;入口    :R3,R4,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R2,R3,R4
NMUL21   :MOV    A,R4
          MOV    B,R7
          MUL    AB
          MOV    R4,A
          MOV    A,B
          XCH    A,R3
          MOV    B,R7
          MUL    AB
          ADD    A,R3
          MOV    R3,A
          CLR    A
          ADDC   A,B
          MOV    R2,A
          CLR    OV
          RET
;單字節無符號數乘法程序 (R2R3R4*R7)=(R5R2R3R4)
;入口    :R2,R3,R4,R6,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R5,R2,R3,R4
NMUL31   :MOV    A,R4
          MOV    B,R7
          MUL    AB
          MOV    R4,A
          MOV    A,B
          XCH    A,R3
          MOV    B,R7
          MUL    AB
          ADD    A,R3
          MOV    R3,A
          CLR    A
          ADDC   A,B
          XCH    A,R2
          MOV    B,R7
          MUL    AB
          ADD    A,R2
          MOV    R2,A
          CLR    A
          ADDC   A,B
          MOV    R5,A
          CLR    OV
          RET
;單字節無符號數乘法程序 (R5R2R3R4*R7)=(R7R5R2R3R4)
;入口    :R5,R2,R3,R4,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R7,R5,R2,R3,R4
NMUL41   :MOV    A,R4
          MOV    B,R7
          MUL    AB
          MOV    R4,A
          MOV    A,B
          XCH    A,R3
          MOV    B,R7
          MUL    AB
          ADD    A,R3
          MOV    R3,A
          CLR    A
          ADDC   A,B
          XCH    A,R2
          MOV    B,R7
          MUL    AB
          ADD    A,R2
          MOV    R2,A
          CLR    A
          ADDC   A,B
          XCH    A,R5
          MOV    B,R7
          MUL    AB
          ADD    A,R5
          MOV    R5,A
          CLR    A
          ADDC   A,B
          MOV    R7,A
          CLR    OV
          RET
;雙字節無符號數乘法程序 (R3R4*R6R7)=(R5R2R3R4)
;入口    :R3,R4,R6,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R5,R2,R3,R4
NMUL22   :MOV    A,R4
          MOV    B,R7
          MUL    AB
          XCH    A,R4
          MOV    R5,B
          MOV    B,R6
          MUL    AB
          ADD    A,R5
          MOV    R5,A
          CLR    A
          ADDC   A,B
          MOV    R2,A
          MOV    A,R3
          MOV    B,R7
          MUL    AB
          ADD    A,R5
          MOV    R5,A
          MOV    A,B
          ADDC   A,R2
          MOV    R2,A
          CLR    A
          ADDC   A,#00H
          XCH    A,R3
          MOV    B,R6
          MUL    AB
          ADD    A,R2
          MOV    R2,A
          MOV    A,B
          ADDC   A,R3
          XCH    A,R5
          MOV    R3,A
          CLR    OV
          RET
;雙字節無符號數乘法程序 (R2R3R4*R6R7)=(R1R5R2R3R4)
;入口    :R2,R3,R4,R6,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R1,R5,R2,R3,R4
NMUL32   :MOV    A,R4
          MOV    B,R7
          MUL    AB
          XCH    A,R4
          MOV    R5,B
          MOV    B,R6
          MUL    AB
          ADD    A,R5
          MOV    R5,A
          CLR    A
          ADDC   A,B
          MOV    R1,A
          MOV    A,R3
          MOV    B,R7
          MUL    AB
          ADD    A,R5
          MOV    R5,A
          MOV    A,B
          ADDC   A,R1
          MOV    R1,A
          CLR    A
          ADDC   A,#00H
          XCH    A,R3
          MOV    B,R6
          MUL    AB
          ADD    A,R1
          MOV    R1,A
          MOV    A,B
          ADDC   A,R3
          XCH    A,R5
          MOV    R3,A
          MOV    A,R2
          MOV    B,R7
          MUL    AB
          ADD    A,R1
          MOV    R1,A
          MOV    A,B
          ADDC   A,R5
          MOV    R5,A
          CLR    A
          ADDC   A,#00H
          XCH    A,R2
          MOV    B,R6
          MUL    AB
          ADD    A,R5
          MOV    R5,A
          MOV    A,B
          ADDC   A,R2
          XCH    A,R1
          MOV    R2,A
          CLR    OV
          RET
;N字節無符號數乘法程序 ([R0]*[R1])=([R0])
;入口    :R0,R1,M,N
;占用資源:ACC,B,R2,R5,R6,R7,NCNT
;堆棧需求:2字節
;出口    :R0
NMULMN   :MOV    A,M
          ADD    A,R0
          MOV    R5,A
          XCH    A,R1
          XCH    A,R5
          ADD    A,N
          XCH    A,R0
          MOV    R6,A
          MOV    B,M
          MOV    NCNT,B
NMLMN1   :DEC    R0
          DEC    R1
          CLR    A
          XCH    A,@R1
          MOV    @R0,A
          DJNZ   NCNT,NMLMN1
          MOV    NCNT,B
NMLMN2   :CLR    A
          XCH    A,@R0
          MOV    R2,A
          MOV    A,R6
          MOV    R0,A
          MOV    A,R5
          MOV    R1,A
          MOV    R7,N
          CLR    C
NMLMN3   :MOV    A,R2
          MOV    B,@R1
          INC    R1
          MUL    AB
          ADDC   A,@R0
          MOV    @R0,A
          INC    R0
          MOV    A,B
          ADDC   A,@R0
          MOV    @R0,A
          DJNZ   R7,NMLMN3
          INC    R0
          INC    R6
          DJNZ   NCNT,NMLMN2
          MOV    A,R0
          CLR    C
          SUBB   A,M
          SUBB   A,N
          MOV    R0,A
          RET
;單字節無符號除法程序 (R2R3R4/R7)=(R2)R3R4 余數R7
;入口    :R2,R3,R4,R7
;占用資源:ACC,B,F0
;堆棧需求:3字節
;出口    :(R2),R3,R4,R7,OV
NDIV31   :MOV    A,R2
          MOV    B,R7
          DIV    AB
          PUSH   A
          MOV    R2,B
          MOV    B,#10H
NDV311   :CLR    C
          MOV    A,R4
          RLC    A
          MOV    R4,A
          MOV    A,R3
          RLC    A
          MOV    R3,A
          MOV    A,R2
          RLC    A
          MOV    R2,A
          MOV    F0,C
          CLR    C
          SUBB   A,R7
          JB     F0,NDV312
          JC     NDV313
NDV312   :MOV    R2,A
          INC    R4
NDV313   :DJNZ   B,NDV311
          POP    A
          CLR    OV
          JZ     NDV314
          SETB   OV
NDV314   :XCH    A,R2
          MOV    R7,A
          RET
;單字節無符號除法程序 (R5R2R3R4/R7)=(R5)R2R3R4 余數R7
;入口    :R2,R3,R4,R7
;占用資源:ACC,B,F0
;堆棧需求:3字節
;出口    :(R5),R2,R3,R4,R7,OV
NDIV41   :MOV    A,R5
          MOV    B,R7
          DIV    AB
          PUSH   A
          MOV    R5,B
          MOV    B,#18H
NDV411   :CLR    C
          MOV    A,R4
          RLC    A
          MOV    R4,A
          MOV    A,R3
          RLC    A
          MOV    R3,A
          MOV    A,R2
          RLC    A
          MOV    R2,A
          MOV    A,R5
          RLC    A
          MOV    R5,A
          MOV    F0,C
          CLR    C
          SUBB   A,R7
          JB     F0,NDV412
          JC     NDV413
NDV412   :MOV    R5,A
          INC    R4
NDV413   :DJNZ   B,NDV411
          POP    A
          CLR    OV
          JZ     NDV414
          SETB   OV
NDV414   :XCH    A,R5
          MOV    R7,A
          RET
;雙字節無符號除法程序 (R5R2R3R4/R6R7)=(R2)R3R4 余數R6R7
;入口    :R5,R2,R3,R4,R6,R7
;占用資源:ACC,B,F0
;堆棧需求:4字節
;出口    :(R2),R3,R4,R6,R7,OV
NDIV42   :MOV    A,R1
          PUSH   A
          MOV    B,#00H
NDV421   :MOV    A,R2
          CLR    C
          SUBB   A,R7
          MOV    R1,A
          MOV    A,R5
          SUBB   A,R6
          JC     NDV422
          MOV    R5,A
          MOV    A,R1
          MOV    R2,A
          INC    B
          SJMP   NDV421
NDV422   :PUSH   B
          MOV    B,#10H
NDV423   :CLR    C
          MOV    A,R4
          RLC    A
          MOV    R4,A
          MOV    A,R3
          RLC    A
          MOV    R3,A
          MOV    A,R2
          RLC    A
          MOV    R2,A
          XCH    A,R5
          RLC    A
          XCH    A,R5
          MOV    F0,C
          CLR    C
          SUBB   A,R7
          MOV    R1,A
          MOV    A,R5
          SUBB   A,R6
          JB     F0,NCV424
          JC     NDV425
NCV424   :MOV    R5,A
          MOV    A,R1
          MOV    R2,A
          INC    R4
NDV425   :DJNZ   B,NDV423
          POP    A
          CLR    OV
          JNZ    NDV426
          SETB   OV
NDV426   :XCH    A,R2
          MOV    R7,A
          MOV    A,R5
          MOV    R6,A
          POP    A
          MOV    R1,A
          RET
;N字節無符號除法程序(組合) ([R0]/[R1])=([R0])
;入口    :R0,R1,M,N
;占用資源:ACC,R2,R3,R4,R5,R7,NCNT,F0,NADDN,NSUBBN,NRLCN
;堆棧需求:4字節
;出口    :R0
;NDIVMN   :MOV    A,M
          CLR    C
          SUBB   A,N
          MOV    NCNT,A
          ADD    A,R0
          MOV    R4,A
          XCH    A,R0
          MOV    R3,A
          MOV    A,R1
          MOV    R5,A
          MOV    R2,#00H
NDVMN1   :MOV    R7,N
          LCALL  NSUBN
          MOV    A,R5
          MOV    R1,A
          JC     NDVMN2
          INC    R2
          SJMP   NDVMN1
NDVMN2   :MOV    R7,N
          LCALL  NADDN
          MOV    A,NCNT
          SWAP   A
          RR     A
          MOV    NCNT,A
NDVMN3   :MOV    A,R3
          MOV    R0,A
          MOV    R7,M
          LCALL  NRLCN
          MOV    F0,C
          MOV    A,R4
          MOV    R0,A
          MOV    A,R5
          MOV    R1,A
          MOV    R7,N
          LCALL  NSUBN
          JB     F0,NDVMN4
          JC     NDVMN5
NDVMN4   :MOV    A,R3
          MOV    R0,A
          INC    @R0
          SJMP   NDVMN6
NDVMN5   :MOV    A,R5
          MOV    R1,A
          MOV    R7,N
          LCALL  NADDN
NDVMN6   :DJNZ   NCNT,NDVMN3
          MOV    A,R4
          MOV    R1,A
          MOV    A,R2
          MOV    @R1,A
          MOV    A,R3
          MOV    R0,A
          RET
;N字節無符號除法程序(集成) ([R0]/R[1])=([R0])
;入口    :R0,R1,M,N
;占用資源:ACC,R2,R3,R4,R5,R7,F0
;堆棧需求:2字節
;出口    :R0
NDIVMN   :MOV    A,M
          CLR    C
          SUBB   A,N
          MOV    B,A
          ADD    A,R0
          MOV    R4,A
          XCH    A,R0
          MOV    R3,A
          MOV    A,R1
          MOV    R5,A
          MOV    R2,#00H
NDVMN1   :MOV    R7,N
          CLR    C
NDVMN2   :MOV    A,@R0
          SUBB   A,@R1
          MOV    @R0,A
          INC    R0
          INC    R1
          DJNZ   R7,NDVMN2
          MOV    A,R4
          MOV    R0,A
          MOV    A,R5
          MOV    R1,A
          JC     NDVMN3
          INC    R2
          SJMP   NDVMN1
NDVMN3   :MOV    R7,N
          CLR    C
NDVMN4   :MOV    A,@R0
          ADDC   A,@R1
          MOV    @R0,A
          INC    R0
          INC    R1
          DJNZ   R7,NDVMN4
          MOV    A,#08H
          MUL    AB
          MOV    B,A
NDVMN5   :MOV    A,R3
          MOV    R0,A
          MOV    R7,M
          CLR    C
NDVMN6   :MOV    A,@R0
          RLC    A
          MOV    @R0,A
          INC    R0
          DJNZ   R7,NDVMN6
          MOV    F0,C
          MOV    A,R4
          MOV    R0,A
          MOV    A,R5
          MOV    R1,A
          MOV    R7,N
          CLR    C
NDVMN7   :MOV    A,@R0
          SUBB   A,@R1
          MOV    @R0,A
          INC    R0
          INC    R1
          DJNZ   R7,NDVMN7
          JB     F0,NDVMNB
          JC     NDVMN8
NDVMNB   :MOV    A,R3
          MOV    R0,A
          INC    @R0
          SJMP   NDVMNA
NDVMN8   :MOV    R7,N
          MOV    A,R4
          MOV    R0,A
          MOV    A,R5
          MOV    R1,A
          CLR    C
NDVMN9   :MOV    A,@R0
          ADDC   A,@R1
          MOV    @R0,A
          INC    R0
          INC    R1
          DJNZ   R7,NDVMN9
NDVMNA   :DJNZ   B,NDVMN5
          MOV    A,M
          CLR    C
          SUBB   A,N
          ADD    A,R3
          MOV    R1,A
          MOV    A,R2
          MOV    @R1,A
          MOV    A,R3
          MOV    R0,A
          RET
;N字節數據左移程序 RLC([R0])=(CF[R0])
;入口    :R0,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R0,CF
NRLCN    :MOV    B,R0
          CLR    C
NRLN1    :MOV    A,@R0
          RLC    A
          MOV    @R0,A
          INC    R0
          DJNZ   R7,NRLN1
          MOV    R0,B
          RET
;原碼有符號雙字節減法程序 (R3R4-R6R7)=R3R4
;入口    :R3,R4,R6,R7
;占用資源:ACC,DADD
;堆棧需求:6字節
;出口    :R3,R4,OV
DSUB     :MOV    A,R6
          CPL    ACC.7
          MOV    R6,A
          LCALL  DADD
          RET
;原碼有符號雙字節加法程序 (R3R4+R6R7)=R3R4
;入口    :R3,R4,R6,R7
;占用資源:ACC,SR0,NADD,NSUB,CMPT
;堆棧需求:4字節
;出口    :R3,R4,OV
DADD     :MOV    A,R3
          MOV    C,ACC.7
          MOV    SR0,C
          XRL    A,R6
          MOV    C,ACC.7
          MOV    A,R3
          CLR    ACC.7
          MOV    R3,A
          MOV    A,R6
          CLR    ACC.7
          MOV    R6,A
          JC     DAB2
          LCALL  NADD
          MOV    A,R3
          JB     ACC.7,DABE
DAB1     :MOV    C,SR0
          MOV    ACC.7,C
          MOV    R3,A
          CLR    OV
          RET
DABE     :SETB   OV
          RET
DAB2     :LCALL  NSUB
          MOV    A,R3
          JNB    ACC.7,DAB1
          LCALL  CMPT
          CPL    SR0
          SJMP   DAB1
;原碼有符號雙字節乘法程序 (R3R4*R6R7)=(R5R2R3R4)
;入口    :R3,R4,R6,R7
;占用資源:ACC,SR0,NMUL22
;堆棧需求:4字節
;出口    :R5,R2,R3,R4
IMUL     :MOV    A,R3
          XRL    A,R6
          MOV    C,ACC.7
          MOV    SR0,C
          MOV    A,R3
          CLR    ACC.7
          MOV    R3,A
          MOV    A,R6
          CLR    ACC.7
          MOV    R6,A
          LCALL  NMUL22
          MOV    A,R5
          MOV    C,SR0
          MOV    ACC.7,C
          MOV    R5,A
          RET
;原碼有符號雙字節除法程序 (R5R2R3R4/R6R7)=(R3R4) 余數(R6R7)
;入口    :R5,R2,R3,R4
;占用資源:ACC,SR0,NDIV42
;堆棧需求:6字節
;出口    :R3,R4,R6,R7,OV
IDIV     :MOV    A,R5
          XRL    A,R6
          MOV    C,ACC.7
          MOV    SR0,C
          MOV    A,R5
          CLR    ACC.7
          MOV    R5,A
          MOV    A,R6
          CLR    ACC.7
          MOV    R6,A
          LCALL  NDIV42
          MOV    A,R3
          JB     ACC.7,IDIVE
          JB     OV,IDIVE
          MOV    C,SR0
          MOV    ACC.7,C
          MOV    R3,A
          RET
IDIVE    :SETB   OV
          RET
 
;單字節順序查找程序
;入口    :R0,R1,A,R7
;占用資源:B
;堆棧需求:2字節
;出口    :R0,R1,A
FINDB1   :MOV    B,A
          MOV    DPL,R1
          MOV    DPH,R0
FINDB11  :MOVX   A,@DPTR
          CJNE   A,B,FINDB12
          MOV    R1,DPL
          MOV    R0,DPH
          CLR    A
          RET
FINDB12  :INC    DPTR
          DJNZ   R7,FINDB11
          MOV    A,#0FFH
          RET
;單字節順序查找程序
;入口    :R0,R1,A,R6,R7
;占用資源:B
;堆棧需求:2字節
;出口    :R0,R1,A
FINDB2   :MOV    B,A
          MOV    DPL,R1
          MOV    DPH,R0
          MOV    A,R7
          JZ     FINDB21
          INC    R6
FINDB21  :MOVX   A,@DPTR
          CJNE   A,B,FINDB22
          MOV    R1,DPL
          MOV    R0,DPH
          CLR    A
          RET
FINDB22  :INC    DPTR
          DJNZ   R7,FINDB21
          DJNZ   R6,FINDB21
          MOV    A,#0FFH
          RET
;雙字節字符串順序查找程序
;入口    :R0,R1,R3,R4,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R0,R1,A
FINDS1   :MOV    DPL,R1
          MOV    DPH,R0
FINDS11  :MOVX   A,@DPTR
          INC    DPTR
          CLR    C
          SUBB   A,R4
          JNZ    FINDS12
          MOVX   A,@DPTR
          SUBB   A,R3
          JNZ    FINDS12
          MOV    A,DPL
          CLR    C
          SUBB   A,#01H
          MOV    R1,A
          MOV    A,DPH
          SUBB   A,#00H
          MOV    R0,A
          CLR    A
          RET
FINDS12  :DJNZ   R7,FINDS11
          MOV    A,#0FFH
          RET
;雙字節字符串順序查找程序
;入口    :R0,R1,R3,R4,R6,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R0,R1,A
FINDS2   :MOV    DPL,R1
          MOV    DPH,R0
          MOV    A,R7
          JZ     FINDS21
          INC    R6
FINDS21  :MOVX   A,@DPTR
          INC    DPTR
          CLR    C
          SUBB   A,R4
          JNZ    FINDS22
          MOVX   A,@DPTR
          SUBB   A,R3
          JNZ    FINDS22
          MOV    A,DPL
          CLR    C
          SUBB   A,#01H
          MOV    R1,A
          MOV    A,DPH
          SUBB   A,#00H
          MOV    R0,A
          CLR    A
          RET
FINDS22  :DJNZ   R7,FINDS21
          DJNZ   R6,FINDS21
          MOV    A,#0FFH
          RET
;N字節字符串順序查找程序
;入口    :ADDPH,ADDPL,R0,R6,R7,N
;占用資源:ACC,B,R2,NCNT
;堆棧需求:2字節
;出口    :ADDPH,ADDPL,A
FINDN    :MOV    A,R0
          MOV    R2,A
          MOV    A,ADDPL
          MOV    DPL,A
          MOV    A,ADDPH
          MOV    DPH,A
          MOV    A,R7
          JZ     FINDN1
          INC    R6
FINDN1   :MOV    A,R2
          MOV    R0,A
          MOV    A,N
          MOV    NCNT,A
FINDN2   :MOVX   A,@DPTR
          CLR    C
          SUBB   A,@R0
          JNZ    FINDN3
          INC    DPTR
          INC    R0
          DJNZ   NCNT,FINDN2
          MOV    A,DPL
          CLR    C
          SUBB   A,N
          MOV    ADDPL,A
          MOV    A,DPH
          SUBB   A,#00H
          MOV    ADDPH,A
          CLR    A
          RET
FINDN3   :CLR    C
          MOV    A,R0
          SUBB   A,R2
          JNZ    FINDN4
          INC    DPTR
FINDN4   :DJNZ   R7,FINDN1
          DJNZ   R6,FINDN1
          MOV    A,#0FFH
          RET
;單字節最值查找程序
;入口    :R0,R1,R6,R7
;占用資源:ACC,B
;堆棧需求:2字節
;出口    :R0(最大值),R1(最小值),R2,R3,R4,R5
FMAMIB   :MOV    DPL,R1
          MOV    DPH,R0
          MOVX   A,@DPTR
          MOV    R0,A
          MOV    R1,A
          MOV    A,DPL
          MOV    R3,A
          MOV    R5,A
          MOV    A,DPH
          MOV    R2,A
          MOV    R4,A
          MOV    A,R7
          JZ     FMMB1
          INC    R6
FMMB1    :MOVX   A,@DPTR
          MOV    B,A
          SETB   C
          SUBB   A,R0
          JC     FMMB2
          MOV    R0,B
          MOV    R3,DPL
          MOV    R2,DPH
          SJMP   FMMB3
FMMB2    :MOV    A,B
          CLR    C
          SUBB   A,R1
          JNC    FMMB3
          MOV    R1,B
          MOV    R5,DPL
          MOV    R4,DPH
FMMB3    :INC    DPTR
          DJNZ   R7,FMMB1
          DJNZ   R6,FMMB1
          RET
;浮點數順序查找程序
;入口    :R0,R1,R2,R3,R4,R6,R7
;占用資源:B,NCNT,FCMP
;堆棧需求:2字節
;出口    :R0,R1,A
FINDF    :MOV    DPL,R1
          MOV    DPH,R0
          MOV    A,R7
          MOV    B,A
          MOV    NCNT,R6
          JZ     FINDF1
          INC    NCNT
FINDF1   :MOVX   A,@DPTR
          INC    DPTR
          MOV    R5,A
          MOVX   A,@DPTR
          INC    DPTR
          MOV    R6,A
          MOVX   A,@DPTR
          INC    DPTR
          MOV    R7,A
          LCALL  FCMP
          JNZ    FINDF2
          MOV    A,DPL
          CLR    C
          SUBB   A,#03H
          MOV    R1,A
          MOV    A,DPH
          SUBB   A,#00H
          MOV    R0,A
          CLR    A
          RET
FINDF2   :DJNZ   B,FINDF1
          DJNZ   NCNT,FINDF1
          MOV    A,#0FFH
          RET
;浮點數最值查找程序
;入口    :ADDPH,ADDPL,R6,R7
;占用資源:ACC,B,NCNT,ITEMOV,EBMOV,MOVB,MOVR1,FCMP
;堆棧需求:5字節
;出口    :[R0](最大值),[R1](最小值),R2,R3,R4,R5
FMAMIF   :MOV    A,ADDPL
          MOV    R3,A
          MOV    R5,A
          MOV    DPL,A
          MOV    A,ADDPH
          MOV    R2,A
          MOV    R4,A
          MOV    DPH,A
          MOV    B,R7
          MOV    R7,#03H
          LCALL  ITEMOV
          MOV    R7,#03H
          LCALL  IBMOV
          MOV    A,B
          JZ     FMMF1
          INC    NCNT
FMMF1    :PUSH   B
          MOVX   A,@DPTR
          INC    DPTR
          MOV    R2,A
          MOVX   A,@DPTR
          INC    DPTR
          MOV    R3,A
          MOVX   A,@DPTR
          INC    DPTR
          MOV    R4,A
          LCALL  MOVR1
          LCALL  FCMP
          JNC    FMMF2
          MOV    A,R0
          XCH    A,R1
          MOV    R0,A
          LCALL  MOVB
          MOV    R5,DPL
          MOV    R4,DPH
          MOV    A,R0
          XCH    A,R1
          MOV    R0,A
          SJMP   FMMF3
FMMF2    :MOV    A,R0
          XCH    A,R1
          MOV    R0,A
          LCALL  MOVR1
          LCALL  FCMP
          MOV    A,R0
          XCH    A,R1
          MOV    R0,A
          JZ     FMMF3
          JC     FMMF3
          LCALL  MOVB
          MOV    R3,DPL
          MOV    R2,DPH
FMMF3    :POP    B
          DJNZ   B,FMMF1
          DJNZ   NCNT,FMMF1
          RET

;單字節折半查找程序
;入口    :A,R0,R1,R6,R7
;占用資源:B,R2
;堆棧需求:2字節
;出口    :R0,R1
SEARCHB  :MOV    B,A
          MOV    A,R1
          ADD    A,R7
          MOV    R7,A
          MOV    A,R0
          ADDC   A,R6
          MOV    R6,A
          MOV    A,R7
          SUBB   A,#01H
          MOV    R7,A
          JNC    SECH1
          DEC    R6
SECH1    :MOV    A,R7
          CLR    C
          SUBB   A,R1
          MOV    A,R6
          SUBB   A,R0
          JNC    SECH2
          MOV    A,#0FFH
          RET
SECH2    :MOV    A,R7
          ADD    A,R1
          MOV    R2,A
          MOV    A,R6
          ADDC   A,R0
          RRC    A
          MOV    DPH,A
          MOV    A,R2
          RRC    A
          MOV    DPL,A
          MOVX   A,@DPTR
          CLR    C
          SUBB   A,B
          JNC    SECH3
          INC    DPTR
          MOV    R0,DPH
          MOV    R1,DPL
          SJMP   SECH1
SECH3    :JZ     SECH5
          MOV    A,DPL
          SUBB   A,#01H
          MOV    R7,A
          JNC    SECH4
          MOV    R6,DPH
          DEC    R6
SECH4    :SJMP   SECH1
SECH5    :MOV    R0,DPH
          MOV    R1,DPL
          CLR    A
          RET

Tags:單片機編程,單片機匯編語言,語法  
責任編輯:admin
相關文章列表
沒有相關文章
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
<button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • 欧美a级黄色大片| 青青青国产在线观看| 玩弄japan白嫩少妇hd| 日韩欧美不卡在线| 日本手机在线视频| 人妻久久久一区二区三区| 色乱码一区二区三区熟女| 中文字幕黄色大片| 国产成人生活片| 国产真人做爰毛片视频直播| 成年人看的毛片| 国产女大学生av| 亚洲色精品三区二区一区| 黄色永久免费网站| 热这里只有精品| 欧美黄色免费网址| 国产a级片免费观看| 最新天堂中文在线| 9色视频在线观看| 国产亚洲精品网站| 欧美日韩精品区别| 91九色丨porny丨国产jk| 91看片就是不一样| 异国色恋浪漫潭| 日韩av三级在线| 五月激情婷婷在线| 国产二区视频在线| 色天使在线观看| 婷婷五月综合缴情在线视频| 韩国日本美国免费毛片| 99亚洲精品视频| 亚洲乱码国产一区三区| 国产不卡的av| 国产又黄又猛视频| 亚洲精品少妇一区二区| 熟女人妇 成熟妇女系列视频| 午夜天堂在线视频| 欧美 激情 在线| 女人被男人躁得好爽免费视频| 激情网站五月天| av无码久久久久久不卡网站| 国产色视频在线播放| 欧日韩免费视频| www.午夜色| 黄色手机在线视频| a在线视频观看| 777久久精品一区二区三区无码| 亚洲乱码国产一区三区| www.xxx麻豆| 91传媒免费视频| 国产又粗又猛大又黄又爽| 999精品网站| 亚洲 欧美 日韩 国产综合 在线 | 亚洲免费av一区| 国产l精品国产亚洲区久久| 成人一级生活片| 成人在线免费观看网址| 99re精彩视频| xxww在线观看| 午夜大片在线观看| 肉色超薄丝袜脚交| 91国内在线播放| 中文字幕第38页| 亚洲自拍第三页| 在线视频一二区| 久久久久亚洲av无码专区喷水| 久久精品久久99| 无码人妻aⅴ一区二区三区日本| 久久久久xxxx| 午夜影院免费版| 亚洲精品天堂成人片av在线播放 | 妞干网这里只有精品| 欧美国产在线一区| 91精品国产吴梦梦| 99热亚洲精品| 99免费视频观看| √天堂资源在线| 农民人伦一区二区三区| 97在线播放视频| 日本中文字幕精品—区二区| www.污网站| 超碰成人免费在线| 欧美自拍小视频| 亚洲在线观看网站| 国产不卡一区二区视频| 欧美精品一区二区三区免费播放| 无码日韩人妻精品久久蜜桃| 国产亚洲视频一区| 成人一区二区免费视频| 中文字幕乱码人妻综合二区三区| 国产视频一区二区三区在线播放 | 大桥未久一区二区| 亚洲 自拍 另类小说综合图区| 精品中文字幕av| 黄色网址在线免费看| 欧美日韩在线视频一区二区三区| 伊人网在线综合| 999在线观看视频| 激情在线观看视频| 那种视频在线观看| 亚洲高潮无码久久| 日本美女高潮视频| 妞干网视频在线观看| 色国产在线视频| www国产精品内射老熟女| www.成人黄色| 国产真实乱子伦| 精品国产av无码一区二区三区| 少妇高清精品毛片在线视频| 成人手机在线播放| 亚洲高清在线不卡| 亚洲色图 在线视频| www一区二区www免费| 久久久天堂国产精品| 手机在线成人免费视频| 国产综合免费视频| 久久亚洲中文字幕无码| 国产成人生活片| 日韩精品在线播放视频| 99国产精品久久久久久| 最新中文字幕2018| 国产精品亚洲二区在线观看| 免费一级特黄特色毛片久久看| 九九久久九九久久| 超碰97在线看| 欧美做受777cos| 老司机激情视频| 国产精品日韩三级| 草草视频在线免费观看| 免费视频爱爱太爽了| 99国产精品白浆在线观看免费| 图片区乱熟图片区亚洲| 视频一区二区视频| 8x8x华人在线| 九九爱精品视频| 久热免费在线观看| 色婷婷狠狠18| 午夜免费一级片| www.18av.com| 精品久久一二三| 91av在线免费播放| www.com久久久| 桥本有菜av在线| 亚洲人成无码网站久久99热国产 | 免费看av软件| 久久观看最新视频| 草草久久久无码国产专区| 国产极品美女高潮无套久久久| 亚洲精品一二三四五区| 午夜天堂在线视频| 日韩在线观看a| 91猫先生在线| 免费黄频在线观看| 国产精品久久久久7777| 国产成人a亚洲精v品无码| www.天天射.com| 超碰10000| 精品免费国产一区二区| 国产999免费视频| 黄色av网址在线播放| 最新天堂在线视频| 免费不卡av在线| 天堂av在线8| 欧洲精品一区二区三区久久| 成人亚洲精品777777大片| 国产一区 在线播放| 在线免费观看av的网站| www.在线观看av| 婷婷激情综合五月天| 男人天堂999| 白白操在线视频| 午夜不卡福利视频| 久久久久久三级| 精品国产一区三区| 99热都是精品| 亚洲天堂国产视频| 成年人免费在线播放| 男人c女人视频| 亚洲黄色片免费看| 亚洲欧美自偷自拍另类| 欧美 日韩 国产在线观看| 成人免费黄色av| 在线能看的av网站| 黄色在线视频网| 免费黄色特级片| 国产黄色一级网站| 亚洲熟妇无码一区二区三区| 50度灰在线观看| 2025韩国大尺度电影| 天天影视色综合| 不卡的在线视频| 日本黄色福利视频| 在线观看岛国av| 国产精品视频分类| 少妇一级淫免费播放| 国产熟女高潮视频| 最近免费中文字幕中文高清百度| 1024av视频| 虎白女粉嫩尤物福利视频| 天天摸天天碰天天添|