ia32-64/x86/fld1.fldl2t.fldl2e.fldpi.fldlg2.fldln2.fldz.html
2025-07-08 02:23:29 -03:00

132 lines
5.3 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xmlns:x86="http://www.felixcloutier.com/x86"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="style.css"></link><title>FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ
— Load Constant</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ
— Load Constant</h1>
<table>
<tr>
<th>Opcode*</th>
<th>Instruction</th>
<th>64-Bit Mode</th>
<th>Compat/Leg Mode</th>
<th>Description</th></tr>
<tr>
<td>D9 E8</td>
<td>FLD1</td>
<td>Valid</td>
<td>Valid</td>
<td>Push +1.0 onto the FPU register stack.</td></tr>
<tr>
<td>D9 E9</td>
<td>FLDL2T</td>
<td>Valid</td>
<td>Valid</td>
<td>Push log<sub>2</sub>10 onto the FPU register stack.</td></tr>
<tr>
<td>D9 EA</td>
<td>FLDL2E</td>
<td>Valid</td>
<td>Valid</td>
<td>Push log<sub>2</sub>e onto the FPU register stack.</td></tr>
<tr>
<td>D9 EB</td>
<td>FLDPI</td>
<td>Valid</td>
<td>Valid</td>
<td>Push π onto the FPU register stack.</td></tr>
<tr>
<td>D9 EC</td>
<td>FLDLG2</td>
<td>Valid</td>
<td>Valid</td>
<td>Push log<sub>10</sub>2 onto the FPU register stack.</td></tr>
<tr>
<td>D9 ED</td>
<td>FLDLN2</td>
<td>Valid</td>
<td>Valid</td>
<td>Push log<sub>e</sub>2 onto the FPU register stack.</td></tr>
<tr>
<td>D9 EE</td>
<td>FLDZ</td>
<td>Valid</td>
<td>Valid</td>
<td>Push +0.0 onto the FPU register stack.</td></tr></table>
<blockquote>
<p>* SeeIA-32ArchitectureCompatibilitysectionbelow.</p></blockquote>
<h2 id="description">Description<a class="anchor" href="#description">
</a></h2>
<p>Push one of seven commonly used constants (in double extended-precision floating-point format) onto the FPU register stack. The constants that can be loaded with these instructions include +1.0, +0.0, log<sub>2</sub>10, log<sub>2</sub>e, π, log<sub>10</sub>2, and log<sub>e</sub>2. For each constant, an internal 66-bit constant is rounded (as specified by the RC field in the FPU control word) to double extended-precision floating-point format. The inexact-result exception (#P) is not generated as a result of the rounding, nor is the C1 flag set in the x87 FPU status word if the value is rounded up.</p>
<p>See the section titled “Approximation of Pi” in Chapter 8 of the Intel<sup>®</sup> 64 and IA-32 Architectures Software Developers Manual, Volume 1, for a description of the π constant.</p>
<p>This instructions operation is the same in non-64-bit modes and 64-bit mode.</p>
<h2 id="ia-32-architecture-compatibility">IA-32 Architecture Compatibility<a class="anchor" href="#ia-32-architecture-compatibility">
</a></h2>
<p>When the RC field is set to round-to-nearest, the FPU produces the same constants that is produced by the Intel 8087 and Intel 287 math coprocessors.</p>
<h2 id="operation">Operation<a class="anchor" href="#operation">
</a></h2>
<pre>TOP := TOP 1;
ST(0) := CONSTANT;
</pre>
<h2 id="fpu-flags-affected">FPU Flags Affected<a class="anchor" href="#fpu-flags-affected">
</a></h2>
<table>
<tr>
<td>C1</td>
<td>Set to 1 if stack overflow occurred; otherwise, set to 0.</td></tr>
<tr>
<td>C0, C2, C3</td>
<td>Undefined.</td></tr></table>
<h2 class="exceptions" id="floating-point-exceptions">Floating-Point Exceptions<a class="anchor" href="#floating-point-exceptions">
</a></h2>
<table>
<tr>
<td>#IS</td>
<td>Stack overflow occurred.</td></tr></table>
<h2 class="exceptions" id="protected-mode-exceptions">Protected Mode Exceptions<a class="anchor" href="#protected-mode-exceptions">
</a></h2>
<table>
<tr>
<td>#NM</td>
<td>CR0.EM[bit 2] or CR0.TS[bit 3] = 1.</td></tr>
<tr>
<td>#MF</td>
<td>If there is a pending x87 FPU exception.</td></tr>
<tr>
<td>#UD</td>
<td>If the LOCK prefix is used.</td></tr></table>
<h2 class="exceptions" id="real-address-mode-exceptions">Real-Address Mode Exceptions<a class="anchor" href="#real-address-mode-exceptions">
</a></h2>
<p>Same exceptions as in protected mode.</p>
<h2 class="exceptions" id="virtual-8086-mode-exceptions">Virtual-8086 Mode Exceptions<a class="anchor" href="#virtual-8086-mode-exceptions">
</a></h2>
<p>Same exceptions as in protected mode.</p>
<h2 class="exceptions" id="virtual-8086-mode-exceptions">Virtual-8086 Mode Exceptions<a class="anchor" href="#virtual-8086-mode-exceptions">
</a></h2>
<p>Same exceptions as in protected mode.</p>
<h2 class="exceptions" id="compatibility-mode-exceptions">Compatibility Mode Exceptions<a class="anchor" href="#compatibility-mode-exceptions">
</a></h2>
<p>Same exceptions as in protected mode.</p>
<h2 class="exceptions" id="64-bit-mode-exceptions">64-Bit Mode Exceptions<a class="anchor" href="#64-bit-mode-exceptions">
</a></h2>
<p>Same exceptions as in protected mode.</p><footer><p>
This UNOFFICIAL, mechanically-separated, non-verified reference is provided for convenience, but it may be
inc<span style="opacity: 0.2">omp</span>lete or b<sub>r</sub>oke<sub>n</sub> in various obvious or non-obvious
ways. Refer to <a href="https://software.intel.com/en-us/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4">Intel® 64 and IA-32 Architectures Software Developers Manual</a> for anything serious.
</p></footer></body></html>