Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Carter P.A.PC assembly language.2005.pdf
Скачиваний:
15
Добавлен:
23.08.2013
Размер:
1.07 Mб
Скачать

A.2. FLOATING POINT INSTRUCTIONS

179

A.2 Floating Point Instructions

In this section, many of the 80x86 math coprocessor instructions are described. The description section briefly describes the operation of the instruction. To save space, information about whether the instruction pops the stack is not given in the description.

The format column shows what type of operands can be used with each instruction. The following abbreviations are used:

STn

A coprocessor register

F

Single precision number in memory

D

Double precision number in memory

E

Extended precision number in memory

I16

Integer word in memory

I32

Integer double word in memory

I64

Integer quad word in memory

 

 

Instructions requiring a Pentium Pro or better are marked with an asterisk( ).

 

Instruction

 

Description

Format

 

FABS

 

ST0 = |ST0|

STn F D

 

FADD src

ST0 += src

 

FADD dest, ST0

dest

+= STO

STn

 

FADDP dest [,ST0]

dest

+= ST0

STn

 

FCHS

 

ST0 = −ST0

 

 

FCOM src

Compare ST0 and src

STn F D

 

FCOMP src

Compare ST0 and src

STn F D

 

FCOMPP src

Compares ST0 and ST1

 

 

FCOMI

src

Compares into FLAGS

STn

 

FCOMIP

src

Compares into FLAGS

STn

 

FDIV src

ST0 /= src

STn F D

 

FDIV dest, ST0

dest

/= STO

STn

 

FDIVP dest [,ST0]

dest

/= ST0

STn

 

FDIVR src

ST0 = src /ST0

STn F D

 

FDIVR dest, ST0

dest

= ST0/dest

STn

 

FDIVRP dest [,ST0]

dest

= ST0/dest

STn

 

FFREE dest

Marks as empty

STn

 

FIADD src

ST0 += src

I16 I32

 

FICOM src

Compare ST0 and src

I16 I32

 

FICOMP src

Compare ST0 and src

I16 I32

 

FIDIV src

STO /= src

I16 I32

 

FIDIVR src

STO = src /ST0

I16 I32

 

 

 

 

 

 

 

 

 

 

 

 

180

APPENDIX A. 80X86 INSTRUCTIONS

 

Instruction

 

Description

Format

 

FILD src

Push src on Stack

I16

I32 I64

 

FIMUL src

ST0 *= src

I16

I32

 

FINIT

Initialize Coprocessor

 

 

 

FIST dest

Store ST0

I16

I32

 

FISTP dest

Store ST0

I16

I32 I64

 

FISUB src

ST0 -= src

I16

I32

 

FISUBR src

ST0 = src - ST0

I16

I32

 

FLD src

Push src on Stack

STn F D E

 

FLD1

Push 1.0 on Stack

 

 

 

FLDCW src

Load Control Word Register

I16

 

 

FLDPI

Push π on Stack

 

 

 

FLDZ

Push 0.0 on Stack

 

 

 

FMUL src

ST0 *= src

STn F D

 

FMUL dest, ST0

dest

*= STO

STn

 

FMULP dest [,ST0]

dest

*= ST0

STn

 

FRNDINT

Round ST0

 

 

 

FSCALE

ST0 = ST0 × 2bST1c

 

 

 

FSQRT

ST0 =

 

 

 

 

 

STO

 

 

 

FST dest

Store ST0

STn F D

 

FSTP dest

Store ST0

STn F D E

 

FSTCW dest

Store Control Word Register

I16

 

 

FSTSW dest

Store Status Word Register

I16

AX

 

FSUB src

ST0 -= src

STn F D

 

FSUB dest, ST0

dest

-= STO

STn

 

FSUBP dest [,ST0]

dest

-= ST0

STn

 

FSUBR src

ST0 = src -ST0

STn F D

 

FSUBR dest, ST0

dest = ST0-dest

STn

 

FSUBP dest [,ST0]

dest = ST0-dest

STn

 

FTST

Compare ST0 with 0.0

 

 

 

FXCH dest

Exchange ST0 and dest

STn

 

 

 

 

 

 

 

 

Соседние файлы в предмете Электротехника