Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __idivs_ASM:
- ; Performs signed interger division
- ; Inputs:
- ; HL : Operand 1
- ; BC : Operand 2
- ; Outputs:
- ; HL = HL/BC
- ex de,hl
- xor a,a
- sbc hl,hl
- sbc hl,bc
- jp p,+_
- push hl
- pop bc
- inc a
- _: or a,a
- sbc hl,hl
- sbc hl,de
- jp m,+_
- ex de,hl
- inc a
- _: add hl,de
- rra
- ld a,24
- _: ex de,hl
- adc hl,hl
- ex de,hl
- adc hl,hl
- add hl,bc
- jr c,+_
- sbc hl,bc
- _: dec a
- jr nz,--_
- ex de,hl
- adc hl,hl
- ret c
- ex de,hl
- sbc hl,hl
- sbc hl,de
- ret
- __imuls_ASM:
- __imulu_ASM:
- ; Performs (un)signed integer multiplication
- ; Inputs:
- ; HL : Operand 1
- ; BC : Operand 2
- ; Outputs:
- ; HL = HL*BC
- push bc
- push hl
- ex de,hl
- ld hl,2
- add hl,sp
- ld b,(hl)
- mlt bc
- inc hl
- inc hl
- inc hl
- ld a,d
- ld d,(hl)
- mlt de
- dec hl
- ld l,(hl)
- ld h,a
- mlt hl
- ld a,l
- add a,e
- add a,c
- pop de
- pop bc
- push bc
- or a,a
- sbc hl,hl
- add.s hl,de
- ex de,hl
- ld h,b
- mlt hl
- ld b,d
- mlt bc
- add hl,bc
- add a,h
- ld h,a
- pop bc
- ld d,c
- mlt de
- add hl,hl
- add hl,hl
- add hl,hl
- add hl,hl
- add hl,hl
- add hl,hl
- add hl,hl
- add hl,hl
- add hl,de
- ret
- _abs24de:
- sbc hl, hl
- adc hl, de
- jp p, +_
- or a, a
- sbc hl, hl
- sbc hl,de
- _:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement