《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > MCS51單片機的檢索查找程序

MCS51單片機的檢索查找程序

2009-01-16
關鍵詞: MCS51 源代碼

MCS51單片機的檢索查找程序

;單字節順序查找程序
;入口    :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

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线免费不卡视频| 性色一区二区三区| 国产视频精品免费播放| 欧美午夜片在线免费观看| 欧美国产一区二区三区激情无套| 久久久久久香蕉网| 久久精品国产久精国产爱| 欧美一区二区三区免费观看视频 | 一区在线视频观看| 激情成人综合网| 亚洲欧美中日韩| 性色一区二区三区| 欧美在线视频一区二区| 久久国产欧美| 久久久女女女女999久久| 久久精品视频99| 久久久久在线观看| 老司机aⅴ在线精品导航| 免费一区视频| 欧美插天视频在线播放| 欧美国产日韩在线| 欧美日韩精品一本二本三本| 欧美三级在线播放| 国产精品制服诱惑| 国内精品福利| 亚洲国内在线| 一道本一区二区| 亚洲在线视频观看| 久久国产精品黑丝| 最新热久久免费视频| 99re热这里只有精品免费视频| 亚洲最快最全在线视频| 亚洲欧美日韩国产成人精品影院| 性欧美暴力猛交另类hd| 久久只有精品| 欧美理论电影在线观看| 国产精品免费一区二区三区在线观看 | 一区二区三区**美女毛片 | 99视频超级精品| 亚洲专区在线| 久久久国产精品亚洲一区| 欧美+亚洲+精品+三区| 欧美四级在线| 韩国精品在线观看| 亚洲精品久久久久中文字幕欢迎你| 亚洲视频成人| 欧美中文在线观看国产| 9久re热视频在线精品| 欧美一区二区日韩| 欧美成人性网| 国产精品视频网址| 国产一区视频在线观看免费| 最新国产拍偷乱拍精品| 亚洲男同1069视频| 亚洲欧洲精品一区二区精品久久久| 中文国产一区| 久久精品国产99国产精品澳门| 欧美激情在线狂野欧美精品| 国产欧美精品日韩精品| 亚洲国产精品综合| 亚洲综合色激情五月| 亚洲精品乱码久久久久久按摩观| 先锋影院在线亚洲| 欧美成人蜜桃| 国产日韩欧美另类| 日韩香蕉视频| 亚洲第一主播视频| 亚洲男人的天堂在线观看| 免费观看日韩av| 国产乱码精品一区二区三区不卡| 亚洲国产另类久久久精品极度| 亚洲愉拍自拍另类高清精品| 亚洲美女电影在线| 久久久久久久久久久久久9999| 欧美日韩国产一区二区三区地区| 国产综合精品| 亚洲午夜久久久久久尤物| 亚洲精品视频啊美女在线直播| 欧美一区二区三区在线视频| 欧美精品久久99久久在免费线| 国精品一区二区三区| 亚洲影院色无极综合| 999在线观看精品免费不卡网站| 久久久夜夜夜| 国产老女人精品毛片久久| 亚洲狼人精品一区二区三区| 亚洲国产cao| 欧美在线观看一区二区三区| 欧美日韩直播| 91久久精品国产91性色tv| 久久国产精品72免费观看| 午夜在线精品| 欧美四级在线观看| 亚洲精品永久免费精品| 亚洲精品精选| 美女诱惑一区| 黄色综合网站| 久久精品官网| 久久精品视频播放| 国产欧美一区二区三区国产幕精品 | 亚洲欧美日韩国产中文在线| 欧美激情综合在线| 在线观看日韩av电影| 久久精品人人做人人爽电影蜜月| 欧美亚洲综合在线| 国产精品三上| 亚洲一区欧美二区| 香蕉成人久久| 国产精品美女999| 一区二区高清| 在线亚洲精品福利网址导航| 欧美精品久久一区| 亚洲欧洲精品一区二区三区波多野1战4 | 日韩视频在线观看一区二区| 亚洲精品美女91| 欧美国产日本在线| 最新国产乱人伦偷精品免费网站| 亚洲人成在线播放| 欧美精品v日韩精品v国产精品 | 亚洲天堂偷拍| 欧美日韩一区二区在线播放| 日韩一本二本av| 亚洲影院在线观看| 国产精品电影在线观看| 亚洲无吗在线| 欧美在线3区| 国产亚洲人成a一在线v站 | 黄色日韩网站视频| 亚洲国产成人在线视频| 蜜臀av一级做a爰片久久| 亚洲国产你懂的| 日韩午夜剧场| 欧美日一区二区在线观看 | 亚洲五月六月| 国产精品欧美久久| 欧美亚洲在线视频| 另类激情亚洲| 亚洲区一区二区三区| 一本色道久久综合一区| 欧美午夜免费影院| 亚洲欧美欧美一区二区三区| 久久久久99精品国产片| 在线精品一区二区| 亚洲理伦电影| 欧美午夜精品一区二区三区| 亚洲一区二区三区影院| 久久高清一区| 在线观看欧美日本| 亚洲视频第一页| 国产女主播一区二区| 久久精品视频99| 欧美日韩免费观看一区二区三区 | 欧美成人综合网站| 日韩一级大片| 午夜精品一区二区三区在线播放| 国产欧美高清| 亚洲国产天堂久久综合网| 欧美日韩第一区| 亚洲主播在线观看| 免费成人美女女| 夜夜爽99久久国产综合精品女不卡| 欧美一区二区精美| 亚洲黄色免费网站| 性欧美精品高清| 亚洲国产成人一区| 午夜精品在线视频| 在线观看91精品国产麻豆| 亚洲网站在线| 一区二区三区在线免费播放| 一本久久青青| 国产一区二区三区日韩欧美| 一本大道av伊人久久综合| 国产小视频国产精品| 一区二区三区不卡视频在线观看 | 欧美亚洲午夜视频在线观看| 欧美精品麻豆| 欧美一级欧美一级在线播放| 欧美黑人在线观看| 亚洲欧美另类久久久精品2019| 欧美高清自拍一区| 亚洲欧美久久久| 欧美另类高清视频在线| 欧美亚洲在线| 欧美午夜精品| 亚洲欧洲综合另类| 国产欧美一区二区三区久久| aa级大片欧美| 红杏aⅴ成人免费视频| 国产精品99久久久久久宅男| 国外成人免费视频| 亚洲综合激情| 亚洲黄色视屏| 久久只精品国产| 亚洲摸下面视频| 欧美伦理91i| 亚洲国产精品高清久久久| 国产精品手机视频| 一本色道婷婷久久欧美| 在线免费一区三区| 先锋资源久久|