Unformatted text preview: d binary-coded decimal (BCD) operands. For more detail on x87 FPU instructions, see Chapter 8, "Programming with the x87 FPU." These instructions are divided into the following subgroups: data transfer, load constants, and FPU control instructions. The sections that follow introduce each subgroup. 5.2.1 x87 FPU Data Transfer Instructions The data transfer instructions move floating-point, integer, and BCD values between memory and the x87 FPU registers. They also perform conditional move operations on floating-point operands. FLD FST FSTP FILD FIST FISTP1 FBLD FBSTP FXCH FCMOVE FCMOVNE FCMOVB FCMOVBE Load floating-point value Store floating-point value Store floating-point value and pop Load integer Store integer Store integer and pop Load BCD Store BCD and pop Exchange registers Floating-point conditional move if equal Floating-point conditional move if not equal Floating-point conditional move if below Floating-point conditional move if below or equal 1. SSE3 provides an instruction FISTTP for integer conversion. 5-10 Vol. 1 INSTRUCTION SET SUMMARY FCMOVNB FCMOVNBE FCMOVU FCMOVNU Floating-point conditional move if not below Floating-point conditional move if not below or equal Floating-point conditional move if unordered Floating-point conditional move if not unordered 5.2.2 x87 FPU Basic Arithmetic Instructions The basic arithmetic instructions perform basic arithmetic operations on floatingpoint and integer operands. FADD FADDP FIADD FSUB FSUBP FISUB FSUBR FSUBRP FISUBR FMUL FMULP FIMUL FDIV FDIVP FIDIV FDIVR FDIVRP FIDIVR FPREM FPREM1 FABS FCHS FRNDINT FSCALE FSQRT FXTRACT Add floating-point Add floating-point and pop Add integer Subtract floating-point Subtract floating-point and pop Subtract integer Subtract floating-point reverse Subtract floating-point reverse and pop Subtract integer reverse Multiply floating-point Multiply floating-point and pop Multiply integer Divide floating-point Divide floating-point and pop Divide integer Divide floating-point reverse Divide floating-point reverse and pop Divide integer reverse Partial remainder IEEE Partial remainder Absolute value Change sign Round to integer Scale by power of two Square root Extract exponent and significand Vol. 1 5-11 INSTRUCTION SET SUMMARY 5.2.3
FCOM FCOMP FCOMPP FUCOM FUCOMP FUCOMPP FICOM FICOMP FCOMI FUCOMI FCOMIP FUCOMIP FTST FXAM x87 FPU Comparison Instructions
Compare floating-point Compare floating-point and pop Compare floating-point and pop twice Unordered compare floating-point Unordered compare floating-point and pop Unordered compare floating-point and pop twice Compare integer Compare integer and pop Compare floating-point and set EFLAGS Unordered compare floating-point and set EFLAGS Compare floating-point, set EFLAGS, and pop Unordered compare floating-point, set EFLAGS, and pop Test floating-point (compare with 0.0) Examine floating-point The compare instructions examine or compare floating-point or integer operands. 5.2.4 x87 FPU Transcendental Instructions The trans...
View Full Document
- Winter '11
- X86, Intel corporation, 64-bit mode, fpu floating-point exception, FPU Control Instructions