《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 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亚洲国产精品_日韩亚洲一区二区
国产美女搞久久| 亚洲福利精品| 欧美大色视频| 久久婷婷蜜乳一本欲蜜臀| 欧美一区二区三区视频在线| 亚洲午夜在线视频| 99精品福利视频| 亚洲精品一区在线| 亚洲欧洲一区二区天堂久久| 久久精品国产77777蜜臀| 亚洲一区二三| 亚洲男女自偷自拍| 亚洲欧美成人网| 亚洲性xxxx| 亚洲影音一区| 亚洲欧美三级在线| 亚洲欧美在线aaa| 亚洲综合导航| 午夜精品久久久久久99热软件| 中文国产成人精品久久一| 亚洲四色影视在线观看| 亚洲伊人观看| 亚洲欧美日本另类| 午夜在线成人av| 久久高清免费观看| 亚洲激情专区| 亚洲美女精品成人在线视频| 99一区二区| 亚洲一区二区三区影院| 亚洲欧美视频一区| 久久gogo国模啪啪人体图| 久久久久亚洲综合| 女同一区二区| 欧美日韩国产成人在线| 国产精品久久久99| 国产日韩欧美一区二区| 精品91在线| 亚洲精品日韩久久| 亚洲一二三区视频在线观看| 欧美一级淫片播放口| 亚洲激情成人网| a4yy欧美一区二区三区| 亚洲在线视频免费观看| 欧美一区在线直播| 免费观看成人网| 欧美日韩亚洲不卡| 国产欧美视频一区二区| 激情欧美一区二区三区| 亚洲精品少妇网址| 亚洲在线观看视频| 亚洲激情视频在线| 亚洲曰本av电影| 久久综合狠狠综合久久激情| 欧美日韩伦理在线免费| 国产欧美日韩视频一区二区| 亚洲国产婷婷综合在线精品| 亚洲色图在线视频| 亚洲电影在线看| 亚洲系列中文字幕| 久久久久久久久久久久久久一区| 欧美国产综合视频| 国产美女高潮久久白浆| 91久久精品久久国产性色也91| 亚洲视频 欧洲视频| 亚洲电影在线看| 亚洲欧美日本精品| 另类国产ts人妖高潮视频| 欧美特黄一级大片| 精品1区2区| 亚洲一二三区精品| 亚洲精品视频免费| 久久精品国产精品亚洲综合| 欧美激情小视频| 国产视频久久网| 99视频有精品| 亚洲激情在线播放| 欧美在线免费观看| 欧美日韩精品一区二区| 国语自产精品视频在线看一大j8 | 欧美一区二区精品久久911| 亚洲精品久久久久久久久久久| 翔田千里一区二区| 欧美日韩国产一区二区| 韩国成人精品a∨在线观看| 一区二区欧美精品| 亚洲精品乱码久久久久久黑人 | 亚洲精品乱码久久久久久| 久久国产精品99国产精| 亚洲女性裸体视频| 欧美绝品在线观看成人午夜影视| 国产在线拍揄自揄视频不卡99| 宅男精品视频| 99视频精品免费观看| 久久综合久久久久88| 国产欧美韩日| 一区二区高清视频在线观看| 亚洲另类自拍| 米奇777超碰欧美日韩亚洲| 国产亚洲欧洲997久久综合| 亚洲午夜精品国产| 宅男66日本亚洲欧美视频| 老司机午夜精品视频| 国产日韩精品入口| 亚洲综合社区| 亚洲欧美在线aaa| 欧美日韩在线播放一区二区| 亚洲国产日韩欧美| 亚洲黄色在线观看| 久久综合给合久久狠狠色| 国产一区二区三区四区在线观看 | 欧美一区二区三区四区在线 | 久久av在线看| 国产农村妇女精品一区二区| 中文久久乱码一区二区| 亚洲视频一区二区| 欧美日韩在线三级| 日韩亚洲国产精品| 一本色道久久综合亚洲二区三区| 欧美大片在线观看一区| 亚洲国产精品悠悠久久琪琪| 亚洲精品久久久久中文字幕欢迎你| 麻豆精品一区二区av白丝在线| 影音国产精品| 91久久精品国产91久久| 欧美电影打屁股sp| 亚洲激情自拍| 一本色道久久综合亚洲精品小说| 欧美日产在线观看| 夜夜夜精品看看| 先锋影音网一区二区| 国产精品一区二区在线观看网站| 亚洲欧美区自拍先锋| 久久九九国产精品| 一区免费观看视频| 亚洲精品久久久久久久久久久 | 欧美午夜电影在线观看| 亚洲视频精品| 欧美一区二区性| 国产有码在线一区二区视频| 久久高清一区| 欧美激情免费在线| 一本色道久久综合亚洲精品不卡| 亚洲免费人成在线视频观看| 国产欧美视频一区二区| 久久黄色级2电影| 欧美激情亚洲视频| 亚洲私人影院在线观看| 欧美在线在线| 亚洲第一网站| 亚洲在线视频| 韩国女主播一区二区三区| 亚洲日本乱码在线观看| 欧美日韩精品免费观看视一区二区 | 一区二区三区精品视频| 国产精品国产自产拍高清av王其| 亚洲欧美日韩成人高清在线一区| 久久夜色精品亚洲噜噜国产mv| 亚洲片区在线| 午夜精品婷婷| 一色屋精品视频在线观看网站| 亚洲最黄网站| 国产精品自拍网站| 亚洲激情自拍| 国产精品毛片在线| 亚洲第一黄色| 欧美视频在线免费看| 欧美在线资源| 欧美日韩视频一区二区三区| 欧美一级日韩一级| 欧美日本韩国在线| 性做久久久久久免费观看欧美| 欧美国产精品中文字幕| 亚洲图片欧洲图片日韩av| 乱中年女人伦av一区二区| 99综合电影在线视频| 久久综合狠狠| 亚洲一区二区在线播放| 欧美黄色免费网站| 亚洲欧美日韩国产一区二区| 欧美肥婆在线| 午夜精品福利视频| 欧美老女人xx| 欧美一区二区视频在线观看2020| 欧美日韩美女一区二区| 欧美影视一区| 欧美亚男人的天堂| 亚洲日本无吗高清不卡| 国产人成一区二区三区影院| 一区二区精品在线观看| 好吊一区二区三区| 午夜激情综合网| 最新国产精品拍自在线播放| 久久国产免费| 亚洲一区在线免费| 亚洲一区二区三区视频播放| 亚洲午夜精品视频| 亚洲国产高清高潮精品美女| 久久国产综合精品| 日韩午夜中文字幕| 欧美成人免费网站|