home *** CD-ROM | disk | FTP | other *** search
- INCLUDE? ASSEMBLER JU:ASM
-
- \ Nick Didkovsky, Robert Marsanyi
-
- \ Complex Multiply
-
- \ ( imag1 real1 imag2 real2 scaler -- imag real)
-
- DECIMAL
- HASH.OFF
-
- ANEW TASK-CMPX_MULT
-
- CODE X*
- 2DR DN 0AR AN MOVE
- 3DR DN 1AR AN MOVE
-
- TOS DN 0DR DN MOVE
- DSP A@+ TOS DN MOVE
-
- DSP 4 AN+W 1DR DN MOVE
- TOS DN 1DR DN MULS
-
- DSP A@ 2DR DN MOVE
- DSP 8 AN+W 3DR DN MOVE
- 3DR DN 2DR DN MULS
- 2DR DN 1DR DN SUB
- 0DR DN 1DR DN LONG DIVS
- 1DR DN LONG EXT
-
- TOS DN 3DR DN MULS
-
- DSP A@ 2DR DN MOVE
- DSP 6 AN+W 2DR DN MULS
- 3DR DN 2DR DN LONG ADD
-
- 0DR DN 2DR DN LONG DIVS
- 2DR DN LONG EXT
-
- 8 # DSP AN ADDQ
- 4 # DSP AN ADDQ
- 2DR DN DSP -A@ MOVE
- 1DR DN TOS DN MOVE
-
- 0AR AN 2DR DN MOVE
- 1AR AN 3DR DN MOVE
- RTS
- END-CODE
-
- HASH.ON
-
- : TEST 2 3 4 5 1 X* ;
-
- : CMPX.BENCH
- 0 DO
- 2 3 4 5 1 X*
- 2DROP
- LOOP
- ;
-
- \ 10000 takes 1.18 seconds, versus 8.06 seconds non-assembler version !!
-
-
-