mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 00:14:25 +00:00
658 lines
11 KiB
Plaintext
658 lines
11 KiB
Plaintext
nolist
|
||
|
||
; *****************************
|
||
; * Codemacros for 8087 *
|
||
; * numeric data processor: *
|
||
; ***************************
|
||
;
|
||
; stack references:
|
||
st equ 0 ; stack top (= register 0)
|
||
st0 equ 0 ; register 0
|
||
st1 equ 1 ; register 1
|
||
st2 equ 2 ; register 2
|
||
st3 equ 3 ; register 3
|
||
st4 equ 4 ; register 4
|
||
st5 equ 5 ; register 5
|
||
st6 equ 6 ; register 6
|
||
st7 equ 7 ; register 7
|
||
;
|
||
;
|
||
codemacro FLD src:Mb
|
||
segfix src
|
||
db 0d9h
|
||
modrm 0,src
|
||
endm
|
||
|
||
codemacro FLD src:Mw
|
||
segfix src
|
||
db 0ddh
|
||
modrm 0,src
|
||
endm
|
||
|
||
codemacro FLD src:Db(0,7)
|
||
db 0d9h
|
||
dbit 5(18h),3(src(0))
|
||
endm
|
||
|
||
codemacro FLDTR src:M
|
||
segfix src
|
||
db 0dbh
|
||
modrm 5,src
|
||
endm
|
||
|
||
codemacro FST dst:Mb
|
||
segfix dst
|
||
db 0d9h
|
||
modrm 2,dst
|
||
endm
|
||
|
||
codemacro FST dst:Mw
|
||
segfix dst
|
||
db 0ddh
|
||
modrm 2,dst
|
||
endm
|
||
|
||
codemacro FST dst:Db(0,7)
|
||
db 0ddh
|
||
dbit 5(1ah),3(dst(0))
|
||
endm
|
||
|
||
codemacro FSTP dst:Mb
|
||
segfix dst
|
||
db 0d9h
|
||
modrm 3,dst
|
||
endm
|
||
|
||
codemacro FSTP dst:Mw
|
||
segfix dst
|
||
db 0ddh
|
||
modrm 3,dst
|
||
endm
|
||
|
||
codemacro FSTP dst:Db(0,7)
|
||
db 0ddh
|
||
dbit 5(1bh),3(dst(0))
|
||
endm
|
||
|
||
codemacro FSTPTR dst:M
|
||
segfix dst
|
||
db 0dbh
|
||
modrm 7,dst
|
||
endm
|
||
|
||
codemacro FXCH
|
||
dw 0c9d9h
|
||
endm
|
||
|
||
codemacro FXCH dst:Db(0,7)
|
||
db 0d9h
|
||
dbit 5(19h),3(dst(0))
|
||
endm
|
||
|
||
codemacro FILD src:Mb
|
||
segfix src
|
||
db 0dbh
|
||
modrm 0,src
|
||
endm
|
||
|
||
codemacro FILDLI src:Mw
|
||
segfix src
|
||
db 0dfh
|
||
modrm 5,src
|
||
endm
|
||
|
||
codemacro FILD src:Mw
|
||
segfix src
|
||
db 0dfh
|
||
modrm 0,src
|
||
endm
|
||
|
||
codemacro FIST dst:Mb
|
||
segfix dst
|
||
db 0dbh
|
||
modrm 2,dst
|
||
endm
|
||
|
||
codemacro FIST dst:Mw
|
||
segfix dst
|
||
db 0dfh
|
||
modrm 2,dst
|
||
endm
|
||
|
||
codemacro FISTP dst:Mb
|
||
segfix dst
|
||
db 0dbh
|
||
modrm 3,dst
|
||
endm
|
||
|
||
codemacro FISTPLI dst:Mw
|
||
segfix dst
|
||
db 0dfh
|
||
modrm 7,dst
|
||
endm
|
||
|
||
codemacro FISTP dst:Mw
|
||
segfix dst
|
||
db 0dfh
|
||
modrm 3,dst
|
||
endm
|
||
|
||
codemacro FBLD src:Mb
|
||
segfix src
|
||
db 0dfh
|
||
modrm 4,src
|
||
endm
|
||
|
||
codemacro FBSTP dst:Mb
|
||
segfix dst
|
||
db 0dfh
|
||
modrm 6,dst
|
||
endm
|
||
|
||
codemacro FADD
|
||
dw 0c1d8h
|
||
endm
|
||
|
||
codemacro FADD dst:Db(0),src:Db(0,7)
|
||
db 0d8h
|
||
dbit 5(18h),3(src(0))
|
||
endm
|
||
|
||
codemacro FADD src:Mb
|
||
segfix src
|
||
db 0d8h
|
||
modrm 0,src
|
||
endm
|
||
|
||
codemacro FADD src:Mw
|
||
segfix src
|
||
db 0dch
|
||
modrm 0,src
|
||
endm
|
||
|
||
codemacro FADD dst:Db(0,7),src:Db(0)
|
||
db 0dch
|
||
dbit 5(18h),3(dst(0))
|
||
endm
|
||
|
||
codemacro FADDP dst:Db(0,7),src:Db(0)
|
||
db 0deh
|
||
dbit 5(18h),3(dst(0))
|
||
endm
|
||
|
||
codemacro FIADD src:Mb
|
||
segfix src
|
||
db 0dah
|
||
modrm 0,src
|
||
endm
|
||
|
||
codemacro FIADD src:Mw
|
||
segfix src
|
||
db 0deh
|
||
modrm 0,src
|
||
endm
|
||
|
||
codemacro FSUB
|
||
dw 0e1d8h
|
||
endm
|
||
|
||
codemacro FSUB dst:Db(0),src:Db(0,7)
|
||
db 0d8h
|
||
dbit 5(1ch),3(src(0))
|
||
endm
|
||
|
||
codemacro FSUB src:Mb
|
||
segfix src
|
||
db 0d8h
|
||
modrm 4,src
|
||
endm
|
||
|
||
codemacro FSUB src:Mw
|
||
segfix src
|
||
db 0dch
|
||
modrm 4,src
|
||
endm
|
||
|
||
codemacro FSUB dst:Db(0,7),src:Db(0)
|
||
db 0dch
|
||
dbit 5(1ch),3(dst(0))
|
||
endm
|
||
|
||
codemacro FSUBP dst:Db(0,7),src:Db(0)
|
||
db 0deh
|
||
dbit 5(1ch),3(dst(0))
|
||
endm
|
||
|
||
codemacro FISUB src:Mb
|
||
segfix src
|
||
db 0dah
|
||
modrm 4,src
|
||
endm
|
||
|
||
codemacro FISUB src:Mw
|
||
segfix src
|
||
db 0deh
|
||
modrm 4,src
|
||
endm
|
||
|
||
codemacro FSUBR
|
||
dw 0e9d8h
|
||
endm
|
||
|
||
codemacro FSUBR dst:Db(0),src:Db(0,7)
|
||
db 0d8h
|
||
dbit 5(1dh),3(src(0))
|
||
endm
|
||
|
||
codemacro FSUBR src:Mb
|
||
segfix src
|
||
db 0d8h
|
||
modrm 5,src
|
||
endm
|
||
|
||
codemacro FSUBR src:Mw
|
||
segfix src
|
||
db 0dch
|
||
modrm 5,src
|
||
endm
|
||
|
||
codemacro FSUBR dst:Db(0,7),src:Db(0)
|
||
db 0dch
|
||
dbit 5(1dh),3(dst(0))
|
||
endm
|
||
|
||
codemacro FSUBRP dst:Db(0,7),src:Db(0)
|
||
db 0deh
|
||
dbit 5(1dh),3(dst(0))
|
||
endm
|
||
|
||
codemacro FISUBR src:Mb
|
||
segfix src
|
||
db 0dah
|
||
modrm 5,src
|
||
endm
|
||
|
||
codemacro FISUBR src:Mw
|
||
segfix src
|
||
db 0deh
|
||
modrm 5,src
|
||
endm
|
||
|
||
codemacro FMUL
|
||
dw 0c9d8h
|
||
endm
|
||
|
||
codemacro FMUL dst:Db(0),src:Db(0,7)
|
||
db 0d8h
|
||
dbit 5(19h),3(src(0))
|
||
endm
|
||
|
||
codemacro FMUL src:Mb
|
||
segfix src
|
||
db 0d8h
|
||
modrm 1,src
|
||
endm
|
||
|
||
codemacro FMUL src:Mw
|
||
segfix src
|
||
db 0dch
|
||
modrm 1,src
|
||
endm
|
||
|
||
codemacro FMUL dst:Db(0,7),src:Db(0)
|
||
db 0dch
|
||
dbit 5(19h),3(dst(0))
|
||
endm
|
||
|
||
codemacro FMULP dst:Db(0,7),src:Db(0)
|
||
db 0deh
|
||
dbit 5(19h),3(dst(0))
|
||
endm
|
||
|
||
codemacro FIMUL src:Mb
|
||
segfix src
|
||
db 0dah
|
||
modrm 1,src
|
||
endm
|
||
|
||
codemacro FIMUL src:Mw
|
||
segfix src
|
||
db 0deh
|
||
modrm 1,src
|
||
endm
|
||
|
||
codemacro FDIV
|
||
dw 0f1d8h
|
||
endm
|
||
|
||
codemacro FDIV dst:Db(0),src:Db(0,7)
|
||
db 0d8h
|
||
dbit 5(1eh),3(src(0))
|
||
endm
|
||
|
||
codemacro FDIV src:Mb
|
||
segfix src
|
||
db 0d8h
|
||
modrm 6,src
|
||
endm
|
||
|
||
codemacro FDIV src:Mw
|
||
segfix src
|
||
db 0dch
|
||
modrm 6,src
|
||
endm
|
||
|
||
codemacro FDIV dst:Db(0,7),src:Db(0)
|
||
db 0dch
|
||
dbit 5(1eh),3(dst(0))
|
||
endm
|
||
|
||
codemacro FDIVP dst:Db(0,7),src:Db(0)
|
||
db 0deh
|
||
dbit 5(1eh),3(dst(0))
|
||
endm
|
||
|
||
codemacro FIDIV src:Mb
|
||
segfix src
|
||
db 0dah
|
||
modrm 6,src
|
||
endm
|
||
|
||
codemacro FIDIV src:Mw
|
||
segfix src
|
||
db 0deh
|
||
modrm 6,src
|
||
endm
|
||
|
||
codemacro FDIVR
|
||
dw 0f9d8h
|
||
endm
|
||
|
||
codemacro FDIVR dst:Db(0),src:Db(0,7)
|
||
db 0d8h
|
||
dbit 5(1fh),3(src(0))
|
||
endm
|
||
|
||
codemacro FDIVR src:Mb
|
||
segfix src
|
||
db 0d8h
|
||
modrm 7,src
|
||
endm
|
||
|
||
codemacro FDIVR src:Mw
|
||
segfix src
|
||
db 0dch
|
||
modrm 7,src
|
||
endm
|
||
|
||
codemacro FDIVR dst:Db(0,7),src:Db(0)
|
||
db 0dch
|
||
dbit 5(1fh),3(dst(0))
|
||
endm
|
||
|
||
codemacro FDIVRP dst:Db(0,7),src:Db(0)
|
||
db 0deh
|
||
dbit 5(1fh),3(dst(0))
|
||
endm
|
||
|
||
codemacro FIDIVR src:Mb
|
||
segfix src
|
||
db 0dah
|
||
modrm 7,src
|
||
endm
|
||
|
||
codemacro FIDIVR src:Mw
|
||
segfix src
|
||
db 0deh
|
||
modrm 7,src
|
||
endm
|
||
|
||
codemacro FSQRT
|
||
dw 0fad9h
|
||
endm
|
||
|
||
codemacro FSCALE
|
||
dw 0fdd9h
|
||
endm
|
||
|
||
codemacro FPREM
|
||
dw 0f8d9h
|
||
endm
|
||
|
||
codemacro FRNDINT
|
||
dw 0fcd9h
|
||
endm
|
||
|
||
codemacro FXTRACT
|
||
dw 0f4d9h
|
||
endm
|
||
|
||
codemacro FABS
|
||
dw 0e1d9h
|
||
endm
|
||
|
||
codemacro FCHS
|
||
dw 0e0d9h
|
||
endm
|
||
|
||
codemacro FCOM
|
||
dw 0d1d8h
|
||
endm
|
||
|
||
codemacro FCOM src:Db(0,7)
|
||
db 0d8h
|
||
dbit 5(1ah),3(src(0))
|
||
endm
|
||
|
||
codemacro FCOM src:Mb
|
||
segfix src
|
||
db 0d8h
|
||
modrm 2,src
|
||
endm
|
||
|
||
codemacro FCOM src:Mw
|
||
segfix src
|
||
db 0dch
|
||
modrm 2,src
|
||
endm
|
||
|
||
codemacro FCOMP
|
||
dw 0d9d8h
|
||
endm
|
||
|
||
codemacro FCOMP src:Db(0,7)
|
||
db 0d8h
|
||
dbit 5(1bh),3(src(0))
|
||
endm
|
||
|
||
codemacro FCOMP src:Mb
|
||
segfix src
|
||
db 0d8h
|
||
modrm 3,src
|
||
endm
|
||
|
||
codemacro FCOMP src:Mw
|
||
segfix src
|
||
db 0dch
|
||
modrm 3,src
|
||
endm
|
||
|
||
codemacro FCOMPP
|
||
dw 0c9deh
|
||
endm
|
||
|
||
codemacro FICOM src:Mb
|
||
segfix src
|
||
db 0dah
|
||
modrm 2,src
|
||
endm
|
||
|
||
codemacro FICOM src:Mw
|
||
segfix src
|
||
db 0deh
|
||
modrm 2,src
|
||
endm
|
||
|
||
codemacro FICOMP src:Mb
|
||
segfix src
|
||
db 0dah
|
||
modrm 3,src
|
||
endm
|
||
|
||
codemacro FICOMP src:Mw
|
||
segfix src
|
||
db 0deh
|
||
modrm 3,src
|
||
endm
|
||
|
||
codemacro FTST
|
||
dw 0e4d9h
|
||
endm
|
||
|
||
codemacro FXAM
|
||
dw 0e5d9h
|
||
endm
|
||
|
||
codemacro FPTAN
|
||
dw 0f2d9h
|
||
endm
|
||
|
||
codemacro FPATAN
|
||
dw 0f3d9h
|
||
endm
|
||
|
||
codemacro F2XM1
|
||
dw 0f0d9h
|
||
endm
|
||
|
||
codemacro FYL2X
|
||
dw 0f1d9h
|
||
endm
|
||
|
||
codemacro FYL2XP1
|
||
dw 0f9d9h
|
||
endm
|
||
|
||
codemacro FLDZ
|
||
dw 0eed9h
|
||
endm
|
||
|
||
codemacro FLD1
|
||
dw 0e8d9h
|
||
endm
|
||
|
||
codemacro FLDPI
|
||
dw 0ebd9h
|
||
endm
|
||
|
||
codemacro FLDL2T
|
||
dw 0e9d9h
|
||
endm
|
||
|
||
codemacro FLDL2E
|
||
dw 0ead9h
|
||
endm
|
||
|
||
codemacro FLDLG2
|
||
dw 0ecd9h
|
||
endm
|
||
|
||
codemacro FLDLN2
|
||
dw 0edd9h
|
||
endm
|
||
|
||
codemacro FINIT
|
||
dw 0e3dbh
|
||
endm
|
||
|
||
FNINIT equ FINIT
|
||
|
||
codemacro FDISI
|
||
dw 0e1dbh
|
||
endm
|
||
|
||
FNDISI equ FDISI
|
||
|
||
codemacro FENI
|
||
dw 0e0dbh
|
||
endm
|
||
|
||
FNENI equ FENI
|
||
|
||
codemacro FLDCW src:Mw
|
||
segfix src
|
||
db 0d9h
|
||
modrm 5,src
|
||
endm
|
||
|
||
codemacro FSTCW dst:Mw
|
||
segfix dst
|
||
db 0d9h
|
||
modrm 7,dst
|
||
endm
|
||
|
||
FNSTCW equ FSTCW
|
||
|
||
codemacro FSTSW dst:Mw
|
||
segfix dst
|
||
db 0ddh
|
||
modrm 7,dst
|
||
endm
|
||
|
||
FNSTSW equ FSTSW
|
||
|
||
codemacro FCLEX
|
||
dw 0e2dbh
|
||
endm
|
||
|
||
FNCLEX equ FCLEX
|
||
|
||
codemacro FSAVE dst:M
|
||
segfix dst
|
||
db 0ddh
|
||
modrm 6,dst
|
||
endm
|
||
|
||
FNSAVE equ FSAVE
|
||
|
||
codemacro FRSTOR src:M
|
||
segfix src
|
||
db 0ddh
|
||
modrm 4,src
|
||
endm
|
||
|
||
codemacro FSTENV dst:M
|
||
segfix dst
|
||
db 0d9h
|
||
modrm 6,dst
|
||
endm
|
||
|
||
FNSTENV equ FSTENV
|
||
|
||
codemacro FLDENV src:M
|
||
segfix src
|
||
db 0d9h
|
||
modrm 4,src
|
||
endm
|
||
|
||
codemacro FINCSTP
|
||
dw 0f7d9h
|
||
endm
|
||
|
||
codemacro FDECSTP
|
||
dw 0f6d9h
|
||
endm
|
||
|
||
codemacro FFREE dst:Db(0,7)
|
||
db 0ddh
|
||
dbit 5(18h),3(dst(0))
|
||
endm
|
||
|
||
codemacro FNOP
|
||
dw 0d0ddh
|
||
endm
|
||
|
||
FWAIT equ WAIT
|
||
|
||
list
|
||
|