; 8087 Mnemonic List for MAX assembler (registered version)
; one correct usage is shown. 

 ;Arithmetic:
    FADD st,st(1)    ; add real       
    FADDP st,st(2)   ; add real & pop
    FCHS             ; change sign
    FDIV st(1),st    ; divide real
    FDIVP st,st(3)   ; divide real & pop
    FDIVR st,st(4)   ; divide real reversed 
    FDIVRP st(5),st  ; divide real reversed & pop
    FIADD DWord mem  ; integer add
    FIDIV DWord mem  ; integer divide
    FIDIVR DWord mem ; integer divide reversed
    FIMUL DWord mem  ; integer multiply
    FISUB DWord mem  ; integer subtract
    FISUBR DWord mem ; integer subtract reversed
    FMUL st,st(1)    ; multiply real
    FMULP st(6),st   ; multiply real & pop
    FPREM            ; partial remainder
    FSUB st(1),st    ; subtract real
    FSUBP st,st(7)   ; subtract real & pop
    FSUBR st(1),st   ; subtract real reversed
    FSUBRP st,st(1)  ; subtract real reversed & pop
 
 ;Mathematical Functions:
    F2XM1       ; 2^X-1
    FABS        ; absolute value
    FPATAN      ; partial arctangent
    FPTAN       ; partial tangent
    FRNDINT     ; round to integer
    FSCALE      ; scale
    FSQRT       ; square root
    FXTRACT     ; extract exponent & significand
    FYL2X       ; Y * log(base 2) of X
    FYL2XP1     ; Y * log(base 2) of (X+1)
 
 ;Data Movement:
    FBLD mem        ; BCD load
    FBSTP mem       ; BCD store & pop
    FILD QWord mem  ; integer load
    FIST DWord [bx] ; integer store             
    FISTP QWord mem ; integer store & pop       
    FLD st(1)       ; load real
    FLD1            ; load +1.0
    FLDL2E          ; load log(base 2) of e
    FLDL2T          ; load log(base 2) of 10
    FLDLG2          ; load log(base 10) of 2
    FLDLN2          ; load log(base e) of 2
    FLDPI           ; load PI  
    FLDZ            ; load +0.0
    FST st(1)       ; store real
    FSTP st(1)      ; store real & pop
    FXCH st(1)      ; exchange registers
 
 ;Comparison:
    FCOM st(1)  ; compare real
    FCOMP st(1) ; compare real & pop
    FCOMPP st(1); compare real & pop twice
    FTST        ; test
    FXAM        ; examine
 
 ;Processor Control:
    FCLEX       ; clear exceptions
    FDECSTP     ; decriment stack pointer
    FDISI       ; disable 8087 interrupts
    FENI        ; enable 8087 interrupts
    FFREE st(1) ; free register
    FINCSTP     ; increment stack pointer
    FINIT       ; initialize 8087
    FLDCW mem   ; load control word
    FLDENV mem  ; load environment
    FNOP        ; no operation
    FRSTOR mem  ; restore state
    FSAVE mem   ; save state
    FSTCW mem   ; store control word
    FSTENV mem  ; store environment
    FSTSW mem   ; store status word
    WAIT        ; CPU wait
    FWAIT       ; same as wait

mem DW 0,0,0,0  ; a memory location to refer to (up to quad word size)
