hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU Assembler "as".
 
Copyright (C) 1991-2021 Free Software Foundation, Inc.
 
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled "GNU Free Documentation License".
 -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: i386-Float</title>
 
<meta name="description" content="Using as: i386-Float">
<meta name="keywords" content="Using as: i386-Float">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="i386_002dDependent.html#i386_002dDependent" rel="up" title="i386-Dependent">
<link href="i386_002dSIMD.html#i386_002dSIMD" rel="next" title="i386-SIMD">
<link href="i386_002dJumps.html#i386_002dJumps" rel="previous" title="i386-Jumps">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
 
 
</head>
 
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="i386_002dFloat"></a>
<div class="header">
<p>
Next: <a href="i386_002dSIMD.html#i386_002dSIMD" accesskey="n" rel="next">i386-SIMD</a>, Previous: <a href="i386_002dJumps.html#i386_002dJumps" accesskey="p" rel="previous">i386-Jumps</a>, Up: <a href="i386_002dDependent.html#i386_002dDependent" accesskey="u" rel="up">i386-Dependent</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Floating-Point-7"></a>
<h4 class="subsection">9.16.9 Floating Point</h4>
 
<a name="index-i386-floating-point"></a>
<a name="index-floating-point_002c-i386"></a>
<a name="index-x86_002d64-floating-point"></a>
<a name="index-floating-point_002c-x86_002d64"></a>
<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&rsquo;s
data type.  Constructors build these data types into memory.
</p>
<a name="index-float-directive_002c-i386"></a>
<a name="index-single-directive_002c-i386"></a>
<a name="index-double-directive_002c-i386"></a>
<a name="index-tfloat-directive_002c-i386"></a>
<a name="index-float-directive_002c-x86_002d64"></a>
<a name="index-single-directive_002c-x86_002d64"></a>
<a name="index-double-directive_002c-x86_002d64"></a>
<a name="index-tfloat-directive_002c-x86_002d64"></a>
<ul>
<li> Floating point constructors are &lsquo;<samp>.float</samp>&rsquo; or &lsquo;<samp>.single</samp>&rsquo;,
&lsquo;<samp>.double</samp>&rsquo;, and &lsquo;<samp>.tfloat</samp>&rsquo; for 32-, 64-, and 80-bit formats.
These correspond to instruction mnemonic suffixes &lsquo;<samp>s</samp>&rsquo;, &lsquo;<samp>l</samp>&rsquo;,
and &lsquo;<samp>t</samp>&rsquo;. &lsquo;<samp>t</samp>&rsquo; stands for 80-bit (ten byte) real.  The 80387
only supports this format via the &lsquo;<samp>fldt</samp>&rsquo; (load 80-bit real to stack
top) and &lsquo;<samp>fstpt</samp>&rsquo; (store 80-bit real and pop stack) instructions.
 
</li><li> <a name="index-word-directive_002c-i386"></a>
<a name="index-long-directive_002c-i386"></a>
<a name="index-int-directive_002c-i386"></a>
<a name="index-quad-directive_002c-i386"></a>
<a name="index-word-directive_002c-x86_002d64"></a>
<a name="index-long-directive_002c-x86_002d64"></a>
<a name="index-int-directive_002c-x86_002d64"></a>
<a name="index-quad-directive_002c-x86_002d64"></a>
Integer constructors are &lsquo;<samp>.word</samp>&rsquo;, &lsquo;<samp>.long</samp>&rsquo; or &lsquo;<samp>.int</samp>&rsquo;, and
&lsquo;<samp>.quad</samp>&rsquo; for the 16-, 32-, and 64-bit integer formats.  The
corresponding instruction mnemonic suffixes are &lsquo;<samp>s</samp>&rsquo; (short),
&lsquo;<samp>l</samp>&rsquo; (long), and &lsquo;<samp>q</samp>&rsquo; (quad).  As with the 80-bit real format,
the 64-bit &lsquo;<samp>q</samp>&rsquo; format is only present in the &lsquo;<samp>fildq</samp>&rsquo; (load
quad integer to stack top) and &lsquo;<samp>fistpq</samp>&rsquo; (store quad integer and pop
stack) instructions.
</li></ul>
 
<p>Register to register operations should not use instruction mnemonic suffixes.
&lsquo;<samp>fstl %st, %st(1)</samp>&rsquo; will give a warning, and be assembled as if you
wrote &lsquo;<samp>fst %st, %st(1)</samp>&rsquo;, since all register to register operations
use 80-bit floating point operands. (Contrast this with &lsquo;<samp>fstl %st, mem</samp>&rsquo;,
which converts &lsquo;<samp>%st</samp>&rsquo; from 80-bit to 64-bit floating point format,
then stores the result in the 4 byte location &lsquo;<samp>mem</samp>&rsquo;)
</p>
<hr>
<div class="header">
<p>
Next: <a href="i386_002dSIMD.html#i386_002dSIMD" accesskey="n" rel="next">i386-SIMD</a>, Previous: <a href="i386_002dJumps.html#i386_002dJumps" accesskey="p" rel="previous">i386-Jumps</a>, Up: <a href="i386_002dDependent.html#i386_002dDependent" accesskey="u" rel="up">i386-Dependent</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
</div>
 
 
 
</body>
</html>