suinc.asm

来自「本程序实现ASCII码转化为一位十六进制数 原ASCII码在SOU中 结果在」· 汇编 代码 · 共 39 行

ASM
39
字号
;********************SUINC********************
;本程序实现对单字节无符号数据块进行增序排列。
;入口参数:数据块首址在SADR中,数据个数在W中。
;出口参数:排好序的数据仍在原数据块中。
;占用资源:W,STATUS,FSR,020H,028H,029H,02AH,02BH,一重堆栈。


           IFNDEF       SUINC1
            #DEFINE     SUINC1
                     
SUINC       ADDLW       0FFH        ;字节数减1是比较次数
            MOVWF       TEMP3       ;TEMP3暂存内循环计数值
LOOP63      MOVF        TEMP3,W
            MOVWF       TEMP4       ;循环计数器减1
            BCF         TEMP1,0     ;TEMP1:0作为交换标志位
            MOVF        SADR,W
            MOVWF       FSR
LOOP62      MOVF        INDF,W
            INCF        FSR,F
            SUBWF       INDF,W
            BTFSC       STATUS,C
            GOTO        NEXT30
            SUBWF       INDF,W
            MOVWF       TEMP2       ;TEMP2暂存将要交换的数
            MOVF        INDF,W
            DECF        FSR,F
            MOVWF       INDF
            MOVF        TEMP2,W
            INCF        FSR,F
            MOVWF       INDF        ;完成交换
            BSF         TEMP1,0     ;置交换标志
NEXT30      DECFSZ      TEMP4,F
            GOTO        LOOP62
            BTFSS       TEMP1,0
            RETLW       0
            DECFSZ      TEMP3,F
            GOTO        LOOP63
            RETLW       0
           ENDIF

⌨️ 快捷键说明

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