7得票2回答
理解这部分ARM汇编代码

.syntax unified .thumb .cpu cortex-m4 .arch armv7e-m .fpu fpv4-sp-d16 /* Changes from unprivileged to privileged mode. */ .thumb_func .section ...

7得票1回答
汇编语言中的.quad指令是如何工作的?

我不太理解汇编语言中的.quad函数是如何工作的。 据我在网上查到的信息,它会为每个表达式生成一个64位的二进制补码值,并将其放入当前部分。我知道什么是二进制补码以及部分所指的是调用.quad的那一行代码。 通常情况下,在汇编语言中什么时候需要使用.quad呢?此外,为什么要使用.quad...

16得票1回答
x86汇编语言:浮点数比较

作为编译器项目的一部分,我需要编写用于x86的GNU汇编器代码来比较浮点数值。我试图找到有关如何执行此操作的在线资源,并且从我的理解中,它的工作方式如下所示: 假设我要比较的两个值是浮点栈上唯一的值,则fcomi指令将比较这些值,并设置CPU标志,以便可以使用je、jne、jl等指令。 我...

8得票2回答
用 GNU 汇编 Intel 语法进行内存寻址

我阅读了这个页面,其中列出了GAS的Intel和AT&T语法之间的差异清单,但未涉及仅使用位移指定地址的情况。 下面是四行AT&T语法的代码: .text 0000 48C7C008000000 mov $8...

60得票5回答
NASM与GAS的实际区别

我并不试图引发Intel vs AT&T之争(无论如何,现在他们都支持Intel语法),也不想询问哪一种“更好”,我只想知道选择其中一种的实际区别。 基本上,几年前我学习了一些基本的x86汇编语言,我使用NASM,只是因为我读的书也是用它的 - 这使我无意中成为NASM阵营的一员。自...

7得票4回答
在OSX中安装GNU汇编器

无论我如何谷歌搜索,似乎都找不到一个(相对)易于操作的指南,告诉我如何在Mac上安装GNU汇编器。 我知道我可以使用gcc -c(在Mac上是Apple Clang)来汇编.s/.S文件,但我想使用真正的GNU Binutils as。

12得票4回答
`movl (%eax), %eax`中的括号是什么意思?

我已经搜索了很多但仍不知道括号()的含义。 同时,我看到了一些语法,例如movl 8(%ebp), %eax。 有人能向我推荐一些好的参考资料吗? 我在谷歌前20个结果中没有找到合适的。

8得票6回答
从0到100的汇编语言递增

这有点奇怪,但是我今天在尝试使用GNU汇编器(我希望至少能够阅读语法),并且尝试着让我的一个小例子正常工作。具体来说,我只想从0到100一直输出数字。几分钟后,我写出了以下代码: # count.s: print the numbers from 0 to 100. .text s...

18得票4回答
GNU汇编中的.byte汇编指令有什么用途?

在查看一些内嵌汇编的C代码时,我遇到了一个以点号开头的 .byte 指令。 通过在网上查找汇编参考文献,我发现它用于在内存中保留一个字节。 但是在代码中,该语句之前没有标签。所以我想知道未标记的 .byte 指令或任何其他数据存储指令的用途。 例如,如果我编写 .byte 0x0a,我该...

13得票2回答
为什么在x86和ARM之间,GNU汇编语法不同?

我刚开始学习ARM汇编,但不明白为什么GNU as语法与x86 *不同。 由于指令是相同的,所以我期望除了指令本身以外的所有内容都像x86 *一样,但实际上,我很难加载字符串的地址等。我通过阅读一些在线PDF文档、man 2 syscall和反编译基本示例来从头开始学习,因为我不确定我可以在...