home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src6.dms / in.adf / DMZ.LZH / PRG5.1 < prev    next >
Encoding:
Text File  |  1987-12-17  |  819 b   |  43 lines

  1. MULTIPLY:    MOVEM.L    D0-D4,-(SP)
  2.         CLR.W    D4        ; Positivt tecken
  3.  
  4.         TST.L    D6        ; Är D6 positivt ?
  5.         BPL.S    POSITIVE1
  6.         NEG.L    D6        ; D6 = -D6
  7.         NOT.W    D4        ; Byt tecken
  8.  
  9. POSITIVE1:    TST.L    D7        ; Är D7 positivt ?
  10.         BPL.S    POSITIVE2
  11.         NEG.L    D7        ; D7 = -D7
  12.         NOT.W    D4        ; Byt tecken
  13.  
  14. POSITIVE2:    MOVE.W    D6,D1        ; D1 = decimaldel1
  15.         SWAP    D6
  16.         MOVE.W    D6,D0        ; D0 = heltalsdel1
  17.         MOVE.W    D7,D3        ; D3 = decimaldel2
  18.         SWAP    D7
  19.         MOVE.W    D7,D2        ; D2 = heltalsdel2
  20.  
  21.         MOVE.W    D3,D7
  22.         MULU    D0,D7        ; D7 = heltal1*decimal2
  23.  
  24.         MULU    D2,D0
  25.         SWAP    D0
  26.         CLR.W    D0
  27.         ADD.L    D0,D7        ; D7 = D7+heltal1*heltal2
  28.  
  29.         MULU    D1,D2
  30.         ADD.L    D2,D7        ; D7 = D7+decimal1*heltal2
  31.  
  32.         MULU    D3,D1
  33.         CLR.W    D1
  34.         SWAP    D1
  35.         ADD.L    D1,D7        ; D7 =D7+decimal1*decimal2
  36.  
  37.         TST.W    D4        ; Vilket tecken ?
  38.         BEQ.S    SIGNOK
  39.         NEG.L    D7        ; Byt tecken på produkten
  40.  
  41. SIGNOK:        MOVEM.L    (SP)+,D0-D4
  42.         RTS
  43.