Advertisement
MMBC

unsignedmaths

Jul 22nd, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. __idivs_ASM:
  2. ; Performs signed interger division
  3. ; Inputs:
  4. ;  HL : Operand 1
  5. ;  BC : Operand 2
  6. ; Outputs:
  7. ;  HL = HL/BC
  8.     ex  de,hl
  9.     xor a,a
  10.     sbc hl,hl
  11.     sbc hl,bc
  12.     jp  p,+_
  13.     push    hl
  14.     pop bc
  15.     inc a
  16.  
  17. _:  or  a,a
  18.     sbc hl,hl
  19.     sbc hl,de
  20.     jp  m,+_
  21.     ex  de,hl
  22.     inc a
  23.  
  24. _:  add hl,de
  25.     rra
  26.     ld  a,24
  27.  
  28. _:  ex  de,hl
  29.     adc hl,hl
  30.     ex  de,hl
  31.     adc hl,hl
  32.     add hl,bc
  33.     jr  c,+_
  34.     sbc hl,bc
  35. _:  dec a
  36.     jr  nz,--_
  37.  
  38.     ex  de,hl
  39.     adc hl,hl
  40.     ret c
  41.     ex  de,hl
  42.     sbc hl,hl
  43.     sbc hl,de
  44.     ret
  45.  
  46. __imuls_ASM:
  47. __imulu_ASM:
  48. ; Performs (un)signed integer multiplication
  49. ; Inputs:
  50. ;  HL : Operand 1
  51. ;  BC : Operand 2
  52. ; Outputs:
  53. ;  HL = HL*BC
  54.     push    bc
  55.     push    hl
  56.     ex  de,hl
  57.     ld  hl,2
  58.     add hl,sp
  59.     ld  b,(hl)
  60.     mlt bc
  61.     inc hl
  62.     inc hl
  63.     inc hl
  64.     ld  a,d
  65.     ld  d,(hl)
  66.     mlt de
  67.     dec hl
  68.     ld  l,(hl)
  69.     ld  h,a
  70.     mlt hl
  71.     ld  a,l
  72.     add a,e
  73.     add a,c
  74.     pop de
  75.     pop bc
  76.     push    bc
  77.     or  a,a
  78.     sbc hl,hl
  79.     add.s   hl,de
  80.     ex  de,hl
  81.     ld  h,b
  82.     mlt hl
  83.     ld  b,d
  84.     mlt bc
  85.     add hl,bc
  86.     add a,h
  87.     ld  h,a
  88.     pop bc
  89.     ld  d,c
  90.     mlt de
  91.     add hl,hl
  92.     add hl,hl
  93.     add hl,hl
  94.     add hl,hl
  95.     add hl,hl
  96.     add hl,hl
  97.     add hl,hl
  98.     add hl,hl
  99.     add hl,de
  100.     ret
  101.  
  102. _abs24de:
  103.     sbc hl, hl
  104.     adc hl, de
  105.     jp p, +_
  106.     or a, a
  107.     sbc hl, hl
  108.     sbc hl,de
  109. _:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement