📄 i386-float.html
字号:
<html lang="en">
<head>
<title>Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.3">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">
</head>
<body>
<div class="node">
<p>
Node:<a name="i386-Float">i386-Float</a>,
Next:<a rel="next" accesskey="n" href="i386-SIMD.html#i386-SIMD">i386-SIMD</a>,
Previous:<a rel="previous" accesskey="p" href="i386-Jumps.html#i386-Jumps">i386-Jumps</a>,
Up:<a rel="up" accesskey="u" href="i386-Dependent.html#i386-Dependent">i386-Dependent</a>
<hr><br>
</div>
<h4 class="section">Floating Point</h4>
<p>All 80387 floating point types except packed BCD are supported.
(BCD support may be added without much difficulty). These data
types are 16-, 32-, and 64- bit integers, and single (32-bit),
double (64-bit), and extended (80-bit) precision floating point.
Each supported type has an instruction mnemonic suffix and a constructor
associated with it. Instruction mnemonic suffixes specify the operand's
data type. Constructors build these data types into memory.
<ul>
<li>Floating point constructors are <code>.float</code> or <code>.single</code>,
<code>.double</code>, and <code>.tfloat</code> for 32-, 64-, and 80-bit formats.
These correspond to instruction mnemonic suffixes <code>s</code>, <code>l</code>,
and <code>t</code>. <code>t</code> stands for 80-bit (ten byte) real. The 80387
only supports this format via the <code>fldt</code> (load 80-bit real to stack
top) and <code>fstpt</code> (store 80-bit real and pop stack) instructions.
<li>Integer constructors are <code>.word</code>, <code>.long</code> or <code>.int</code>, and
<code>.quad</code> for the 16-, 32-, and 64-bit integer formats. The
corresponding instruction mnemonic suffixes are <code>s</code> (single),
<code>l</code> (long), and <code>q</code> (quad). As with the 80-bit real format,
the 64-bit <code>q</code> format is only present in the <code>fildq</code> (load
quad integer to stack top) and <code>fistpq</code> (store quad integer and pop
stack) instructions.
</ul>
<p>Register to register operations should not use instruction mnemonic suffixes.
<code>fstl %st, %st(1)</code> will give a warning, and be assembled as if you
wrote <code>fst %st, %st(1)</code>, since all register to register operations
use 80-bit floating point operands. (Contrast this with <code>fstl %st, mem</code>,
which converts <code>%st</code> from 80-bit to 64-bit floating point format,
then stores the result in the 4 byte location <code>mem</code>)
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -