aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/msp430/words/cmove-up.asm
blob: 0bbe4a312534919f5daf535adae31b6d7cb1a735 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
;X CMOVE>  c-addr1 c-addr2 u --  move from top
; as defined in the ANSI optional String word set
        CODEHEADER(XT_CMOVEUP,6,"cmove>")
        MOV     @PSP+,W     ; dest adrs
        MOV     @PSP+,X     ; src adrs
        CMP     #0,TOS
        JZ      CMOVU_X
        ADD     TOS,W       ; start at end
        ADD     TOS,X
CMOVU_1: SUB    #1,X
        SUB     #1,W
        MOV.B   @X,0(W)     ; copy byte
        SUB     #1,TOS
        JNZ     CMOVU_1
CMOVU_X: MOV    @PSP+,TOS   ; pop new TOS
        NEXT