📄 i386-bugs.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-Bugs">i386-Bugs</a>,
Next:<a rel="next" accesskey="n" href="i386-Notes.html#i386-Notes">i386-Notes</a>,
Previous:<a rel="previous" accesskey="p" href="i386-Arch.html#i386-Arch">i386-Arch</a>,
Up:<a rel="up" accesskey="u" href="i386-Dependent.html#i386-Dependent">i386-Dependent</a>
<hr><br>
</div>
<h4 class="section">AT&T Syntax bugs</h4>
<p>The UnixWare assembler, and probably other AT&T derived ix86 Unix
assemblers, generate floating point instructions with reversed source
and destination registers in certain cases. Unfortunately, gcc and
possibly many other programs use this reversed syntax, so we're stuck
with it.
<p>For example
<pre class="smallexample"> fsub %st,%st(3)
</pre>
<p>results in <code>%st(3)</code> being updated to <code>%st - %st(3)</code> rather
than the expected <code>%st(3) - %st</code>. This happens with all the
non-commutative arithmetic floating point operations with two register
operands where the source register is <code>%st</code> and the destination
register is <code>%st(i)</code>.
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -