AT&T语法汇编浮点运算的参考

Kiz*_*aru 7 floating-point x86 assembly

在过去的一周里,我一直在尝试使用AT&T语法为x86汇编找到一个合适的浮点运算资源.理想情况下,操作码列表,它们的作用以及浮点数的存储位置.我熟悉IEEE 754表示法.我不熟悉浮点堆栈,以及任何涉及浮点运算的程序集.

这很难找到.

编辑:我一直在研究过去一个月学习装配的gcc -S输出.这就是我如何计算除浮点运算之外的所有东西.即使经过几十个没有优化编译的小程序,我仍然无法弄清浮点操作码和堆栈.我只在网上找到了琐碎的例子.

Chr*_*ung 4

好的。首先从 Intel 语法开始,因为大多数 x86 汇编编码器都使用它。Intel 手册是了解 x86 如何处理浮点内容的重要资源。

一般性地学习 x86 汇编之后,AT&T 语法就不那么难学了。主要需要注意的是:

  • 寄存器的前缀是%; 数字常量的前缀为$
  • 大多数双操作数指令的寄存器顺序被交换(即,源在前,目标在后)
  • 指令名称指定大小;所以mov dword ptr [ebx], 1337你会说movl $1337, (%ebx).

  • @Kizaru:我知道你不能_将_它用于你的项目。但你应该首先_学习_它。最初使用 nasm 作为汇编器。然后,一旦您掌握了 x86 汇编编程的窍门,就可以使用 AT&T 语法。让您的项目能够输出两种格式,如果您愿意的话,最初以 nasm 为目标。 (2认同)