home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / develop / hc11dev / hcs / mul16c11.s < prev    next >
Text File  |  1995-02-27  |  1KB  |  61 lines

  1. *-----------------------------------------------------------------------*
  2. *    Multiply 16 by 16 bit unsigned integer routine for the 6811.
  3. *
  4. *    1/23/87
  5. *    D. G. Weiss
  6. *    MCU Technical Marketing
  7. *    Motorola Microprocessor Group
  8. *    Oak Hill, TX
  9. *
  10. *    Accepts:
  11. *     Multiplier:    Register D
  12. *    Multiplicand:    Y^[0..1]
  13. *    Yields:
  14. *    Product:    X^[0..3]
  15. *-----------------------------------------------------------------------*
  16.     ORG    $00    ; Beginning of RAM
  17.  
  18. mpr    rmb    2    ; Multiplier Scratch Locn.
  19. mpr1    equ    mpr    ;    "          byte 1 (high order)
  20. mpr0    equ    mpr+1    ;    "          byte 0 (low order)
  21.  
  22. mpd    equ    0    ; Multiplicand Offsets from Y Reg.
  23. mpd1    equ    mpd    ;    "          byte 1 (high order)
  24. mpd0    equ    mpd+1    ;    "          byte 0 (low order)
  25.  
  26. prod    equ    0    ; Product Offsets from X Reg.
  27. prod3    equ    prod    ;    "          byte 3 (high order)
  28. prod2    equ    prod+1
  29. prod1    equ    prod+2
  30. prod0    equ    prod+3    ;    "          byte 0 (low order)
  31.  
  32. CTR    RMB    1    ; Iteration counter
  33.  
  34.     ORG    $10
  35.  
  36. mpy16    EQU    *
  37.     std    mpr
  38.     ldd    #0
  39.     std    prod3,X
  40.     ldaa    mpr0
  41.     ldab    mpd0,Y
  42.     mul
  43.     std    prod1,X
  44.     ldaa    mpr0
  45.     ldab    mpd1,Y
  46.     mul
  47.     addd    prod2,X
  48.     std    prod2,X
  49.     ldaa    mpr1
  50.     ldab    mpd0,Y
  51.     mul
  52.     addd    prod2,X
  53.     std    prod2,X
  54.     rol    prod3,X
  55.     ldaa    mpr1
  56.     ldab    mpd1,Y
  57.     mul
  58.     addd    prod3,X
  59.     std    prod3,X
  60.     rts
  61.