sort.asm:
;################################################################################################### CBLOCK 0x20 r_SORT__1 r_SORT__2 r_SORT__3 r_SORT__4 r_SORT__5 r_SORT__6 r_SORT__7 r_SORT__8 r_SORT__9 r_SORT__IX_1 r_SORT__IX_2 r_SORT__TMP ENDC ;--------------------------------------------------------------------------------------------------- ;################################################################################################### _SORT: ;--------------------------------------------------------------------------------------------------- MOVLW .9 ; --. 'n' dekadicky pocet prvku ke trideni MOVWF r_SORT__IX_1 ; <-' _SORT.Smycka_1: ; --- SMYCKA 1: (r_SORT__IX_1) = 'n' AZ 1 --- MOVLW .1 ; --. MOVWF r_SORT__IX_2 ; <-' _SORT.Smycka_2: ; --- SMYCKA 2: (r_SORT__IX_2): 1 AZ (r_SORT__IX_1) --- ; --- (INDF[r_SORT__IX_2 -1]) - (INDF[r_SORT__IX_2 ]) --- MOVFW r_SORT__IX_2 ; ADDLW r_SORT__1 ; MOVWF FSR ; FSR pointr: (r_SORT__IX_2) MOVFW INDF ; (W) = (INDF[r_SORT__IX_2]) DECF FSR,f ; FSR pointr: (r_SORT__IX_2 -1) SUBWF INDF,w ; (W) = (INDF[r_SORT__IX_2 -1]) - (W) ; --- SMER TRIDENI SE VOLI ODKOMENTOVANIM BTFSC... NEBO BTFSS... --- BTFSC STATUS,C ; ?? PROHODIT PRO VZESTUPNE ?? ; BTFSS STATUS,C ; ?? PROHODIT PRO SESTUPNE ?? CALL _SORT.Prohozeni ; 'ANO' INCF r_SORT__IX_2,f ; (r_SORT__IX_2) +1 ; --- (r_SORT__IX_1) >= (r_SORT__IX_2) --- INCF r_SORT__IX_2,w ; (W) = (r_SORT__IX_2) +1 SUBWF r_SORT__IX_1,w ; (W) = (r_SORT__IX_1) - (r_SORT__IX_2) ; --- ZAKONCENI SMYCKY 2 --- BTFSC STATUS,C ; ?? (r_SORT__IX_1) >= (r_SORT__IX_2) ?? GOTO _SORT.Smycka_2 ; 'ANO' ; --- ZAKONCENI SMYCKY 1 --- DECFSZ r_SORT__IX_1,f ; ?? DOSAZENA '0' ?? GOTO _SORT.Smycka_1 ; 'NE' RETURN _SORT.Prohozeni: ; --- (INDF[r_SORT__IX_2 -1]) <-PROHOZENI-> (INDF[r_SORT__IX_2 ]) --- MOVFW INDF ; --. MOVWF r_SORT__TMP ; <-' (r_SORT__TMP) = (INDF[r_SORT__IX_2 -1]) INCF FSR,f ; FSR pointr: (r_SORT__IX_2) MOVFW INDF ; ->(W) DECF FSR,f ; FSR pointr: (r_SORT__IX_2 -1) MOVWF INDF ; <-(W) INCF FSR,f ; FSR pointr: r_SORT__IX_2 MOVFW r_SORT__TMP ; --. MOVWF INDF ; <-' (INDF[r_SORT__IX_2]) = (r_SORT__TMP) RETURN ;###################################################################################################
