home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / ddjmag / ddj9105.zip / CO_NUM.ASC < prev    next >
Text File  |  1991-04-08  |  2KB  |  78 lines

  1. _GETTING NUMERIC COPROCESSORS UP TO SPEED_
  2. by John H. Letcher
  3.  
  4.  
  5. Example 1:
  6.  
  7. (a)
  8.  
  9.         SUBROUTINE ABC(X,Y,Z)
  10.         Z=X+Y
  11.         RETURN
  12.         END
  13.  
  14. (b)
  15.  
  16.    ARGLOC  DW   OFFSET X ; argument 1
  17.            DW   SEG    X
  18.            DW   OFFSET Y ; argument 2
  19.            DW   SEG    Y
  20.            DW   OFFSET Z ; argument 3
  21.            DW   SEG    Z
  22.  
  23. (c)
  24.        MOV   AX,SEG ARGLOC
  25.        MOV   ES,AX
  26.        MOV   BX,OFFSET ARGLOC
  27.        CALL  ABC
  28.  
  29.  
  30. Example 2:
  31.  
  32.                TITLE  ABC
  33.                CODE   SEGMENT 'CODE'
  34.          ;   SUBROUTINE ABC(X,Y,Z)
  35.          ABC     PROC    FAR
  36.                PUBLIC  ABC
  37.                LDS   SI,ES:[BX]      ; NOW DS:SI POINTS TO X
  38.                FLD   DWORD PTR [SI]  ; LOADS THE VALUE OF X
  39.                LDS   SI,ES:4[BX]     ; NOW DS:SI POINTS TO Y
  40.                FADD  DWORD PTR [SI]  ; ADDS Y TO X
  41.                LDS   SI,ES:8[BX]     ; NOW DS:SI POINTS TO Z
  42.                FSTP  DWORD PTR [SI]  ; STORES VALUE INTO Z
  43.                RET
  44.          ABC    ENDP
  45.          CODE   ENDS
  46.                END
  47.  
  48.  
  49. Example 3:
  50.  
  51.  INCLUDE   FCODE.INC
  52.      TITLE  ABC
  53.  CODE      SEGMENT 'CODE'
  54.  ;         SUBROUTINE ABC(X,Y,Z)
  55.  .386
  56.  ABC       PROC    FAR
  57.  mov eax,0d000h              ; EMC
  58.  mov fs,eax                  ; EMC
  59.      PUBLIC  ABC
  60.      LDS    SI,ES:[BX]       ; NOW DS:SI POINTS TO X
  61. ;    FLD    DWORD PTR [SI]   ; LOADS THE VALUE OF X
  62. mov eax,DWORD PTR [SI]       ; EMC
  63. mov DWORD PTR FS:mflds,eax   ; EMC
  64.     LDS     SI,ES:4[BX]      ; NOW DS:SI POINTS TO Y
  65. ;   FADD    DWORD PTR [SI]   ; ADDS Y TO X
  66. mov eax,DWORD PTR [SI]       ; EMC
  67. mov DWORD PTR FS:mfadds,eax  ; EMC
  68.     LDS     SI,ES:8[BX]      ; NOW DS:SI POINTS TO Z
  69. ;   FSTP    DWORD PTR [SI]   ; STORES VALUE INTO Z
  70. mov eax,DWORD PTR FS:mfstps  ; EMC
  71. mov DWORD PTR [SI],eax       ; EMC
  72.     RET
  73. ABC       ENDP
  74. CODE      ENDS
  75.     END
  76.  
  77.  
  78.