[INTEL NAVIGATION HEADER]

Trans Func Converts Polar to Cartesian

$mod186
$modc187

name example_80C187_proc

;
; DESCRIPTION: This code section uses the 80C187 FSINCOS
; transcendental instruction to convert the
; locus of a point from polar to Cartesian
; coordinates.
;
; VARIABLES: The variables consist of the radius, r, and
; the angle, theta. Both are expressed as
; 32-bit reals and 0 <= theta <= pi/4.
;
; RESULTS: The results of the computation are the
; coordinates x and y expressed as 32-bit

; reals.
;
; NOTES: This routine is coded for Intel ASM86. It is
; not set up as a HLL-callable routine.
;
; This code assumes that the 80C187 has already
; been initialized.
;
assume cs:code, ds:data

data segment at 0100h
r dd x.xxxx ;substitute real operand
theta dd x.xxxx ;substitute real operand
x dd ?
y dd ?
data ends

code segment at 0080h

convert proc far

mov ax, data
mov ds, ax

fld r ;load radius
fld theta ;load angle
fsincos ;st=cos, st(1)=sin
fmul st, st(2) ;compute x
fstp x ;store to memory and pop fmul
;compute y
fstp y ;store to memory and pop
convert endp

code ends
end



Legal Stuff © 1997 Intel Corporation

Free Web Hosting