1 2SECTION code_clib 3SECTION code_l 4 5PUBLIC l_long_sbc_mde_mhl 6 7l_long_sbc_mde_mhl: 8 9 ; subtract the two longs at addresses hl & de 10 ; 11 ; enter : de = long *A 12 ; hl = long *B 13 ; 14 ; exit : dehl = A - B - carry 15 ; flags set as result of msb subtraction 16 ; 17 ; uses : af, bc, de, hl 18 19 ld a,(de) 20 inc de 21 sbc a,(hl) 22 inc hl 23 ld c,a 24 25 ld a,(de) 26 inc de 27 sbc a,(hl) 28 inc hl 29 ld b,a 30 31 push bc ; save LSW of result 32 33 ld a,(de) 34 inc de 35 sbc a,(hl) 36 inc hl 37 ld c,a 38 39 ld a,(de) 40 sbc a,(hl) 41 42 ld d,a 43 ld e,c 44 pop hl ; dehl = result 45 46 ret 47