aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/avr8/words/d-minus.asm
blob: a4588515e23e9a7dd3ac23eb0526cf54ecd592e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
; ( d1 d2 -- d3 ) 
; Arithmetics
; subtract d2 from d1 
VE_DMINUS:
    .dw $ff02
    .db "d-"
    .dw VE_HEAD
    .set VE_HEAD = VE_DMINUS
XT_DMINUS:
    .dw PFA_DMINUS
PFA_DMINUS:
    ld temp2, Y+
    ld temp3, Y+

    ld temp4, Y+
    ld temp5, Y+
    ld temp6, Y+
    ld temp7, Y+

    sub temp6, temp2
    sbc temp7, temp3
    sbc temp4, tosl
    sbc temp5, tosh

    st -Y, temp7
    st -Y, temp6
    movw tosl, temp4
    jmp_ DO_NEXT