《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > MCS51單片機(jī)的檢索查找程序

MCS51單片機(jī)的檢索查找程序

2009-01-16
關(guān)鍵詞: MCS51 源代碼

MCS51單片機(jī)的檢索查找程序

;單字節(jié)順序查找程序
;入口    :R0,R1,A,R7
;占用資源:B
;堆棧需求:2字節(jié)
;出口    :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

;單字節(jié)順序查找程序
;入口    :R0,R1,A,R6,R7
;占用資源:B
;堆棧需求:2字節(jié)
;出口    :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

;雙字節(jié)字符串順序查找程序
;入口    :R0,R1,R3,R4,R7
;占用資源:ACC,B
;堆棧需求:2字節(jié)
;出口    :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

;雙字節(jié)字符串順序查找程序
;入口    :R0,R1,R3,R4,R6,R7
;占用資源:ACC,B
;堆棧需求:2字節(jié)
;出口    :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字節(jié)字符串順序查找程序
;入口    :ADDPH,ADDPL,R0,R6,R7,N
;占用資源:ACC,B,R2,NCNT
;堆棧需求:2字節(jié)
;出口    :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

;單字節(jié)最值查找程序
;入口    :R0,R1,R6,R7
;占用資源:ACC,B
;堆棧需求:2字節(jié)
;出口    :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

;浮點(diǎn)數(shù)順序查找程序
;入口    :R0,R1,R2,R3,R4,R6,R7
;占用資源:B,NCNT,FCMP
;堆棧需求:2字節(jié)
;出口    :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

;浮點(diǎn)數(shù)最值查找程序
;入口    :ADDPH,ADDPL,R6,R7
;占用資源:ACC,B,NCNT,ITEMOV,EBMOV,MOVB,MOVR1,FCMP
;堆棧需求:5字節(jié)
;出口    :[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

;單字節(jié)折半查找程序
;入口    :A,R0,R1,R6,R7
;占用資源:B,R2
;堆棧需求:2字節(jié)
;出口    :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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 啊用力点国产嗯快在线观看| 国产精品久久毛片| 久久久久亚洲精品无码网址色欲| 欧美日韩国产精品自在自线 | 国产一区二区在线视频| 国产精品2019| 欧美婷婷六月丁香综合色| 国产二区在线播放| 97久久精品一区二区三区| 小兔子被蛇用两根是什么小说| 久久aa毛片免费播放嗯啊| 日韩欧美一区二区三区免费观看| 亚洲免费视频观看| 精品一区二区三区在线观看| 国产一区日韩二区欧美三区| 国产成人精品免费视频动漫| 国产精品久久久久一区二区| 91香蕉国产在线观看人员| 天堂资源中文在线| www.夜夜操| 日韩三级免费看| 亚洲精品国产第1页| 理论片福利理论电影| 国产又色又爽又刺激视频| 欧美激情性xxxxx| 国产精品亚洲成在人线| 4399理论片午午伦夜理片| 国内精品在线播放| 99久久精品美女高潮喷水| 成年大片免费视频| 亚洲av无码成人网站在线观看| 欧美日韩在线成人| 亚洲欧美中文日韩在线v日本| 污污小视频在线观看| 人人妻人人澡av天堂香蕉| 色中文字幕在线| 国产乱人视频在线播放| 课外辅导的秘密在线观看| 国产亚洲精品91| 午夜性色吃奶添下面69影院| 女人是男人的未来1分29分|