⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dfskwinc.asm

📁 PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用
💻 ASM
字号:
;********************DFSKWINC********************
;本程序实现在单字节无符号增序数据块中对分查找特定值(即关键字)。
;入口参数:关键字在SOU中,数据块首址在SADR中,数据个数在W中。
;出口参数:如果找到,则其地址在SADR中,且STATUS:C为0,如果没找到,则STATUS:C为1。
;占用资源:W,STATUS,FSR,020H,022H,024H,一重堆栈。
;说    明: 1.如果有多个数据等于特定值,则只能给出其中一个的地址.
;          2.本程序的执行对原数据块并无影响. 

           IFNDEF       DFSKWINC1
            #DEFINE     DFSKWINC1
                        
DFSKWINC    ADDWF       SADR,W
            ADDLW       0FFH
            MOVWF       DADR        ;得到末地址
            MOVWF       FSR
            MOVF        INDF,W
            SUBWF       SOU,W
            BTFSC       STATUS,Z    ;最后一个是否为所找的数
            GOTO        DONE8       ;找到
LOOP60      MOVF        DADR,W
            ADDWF       SADR,W      ;SADR+DADR
            MOVWF       FSR
            RRF         FSR,F       ;FSR=(SADR+DADR)/2
            MOVF        INDF,W
            SUBWF       SOU,W
            BTFSC       STATUS,Z
            GOTO        DONE8       ;找到
            MOVF        FSR,W
            SUBWF       SADR,W
            BTFSC       STATUS,Z
            GOTO        NMATCH
            MOVF        INDF,W
            SUBWF       SOU,W
            MOVF        FSR,W
            BTFSC       STATUS,C
            MOVWF       SADR
            BTFSS       STATUS,C
            MOVWF       DADR        ;缩小查找范围
            GOTO        LOOP60
NMATCH      BSF         STATUS,C
            RETLW       1
DONE8       MOVF        FSR,W
            MOVWF       SADR
            BCF         STATUS,C
            RETLW       0
           ENDIF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -