问题标签 [gnu-assembler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1623 浏览

gcc - 臂组件:“#define”风险

在 ARM 汇编中

工作正常。现在我想要#define MODE 0x1f并将上面的代码更改为bic r0,r0, #MODE.

这里有风险。如果你忘记包含#define MODE 0x1f定义的头文件,gcc 会毫无怨言地汇编,但结果是错误的,结果编译器翻译#MODE为 0。

我证明问题是由“ #”引起的。我怎么能告诉预处理器不要处理“#”,因为这#是由程序集使用的?

谢谢

0 投票
5 回答
26902 浏览

linux - 如何在 Linux 上安装和使用 GAS(GNU 编译器)?

我正在使用 Ubuntu,我正在寻找适用于 Linux 的汇编编译器,然后我找到了 GAS。

我正在尝试安装并运行它,但我不能。

0 投票
2 回答
838 浏览

macos - 有关 gdb 内存访问投诉的详细信息

我有一个使用as编译的目标文件(来自汇编代码)。

如果我使用ld链接它,当我尝试stepi(或nexti)时,gdb 会抱怨地址 0x0 的内存访问。如果我使用gcc链接它,一切都很好。

我猜这个问题是由ld引起的,与gcc的链接结果相比,它产生的部分更少。

有没有办法将 gdb 配置得更详细,这样我就可以找出可执行文件出了什么问题?

PS:可执行文件本身在两个版本中都按预期运行。

稍后编辑:我用来编译的命令:

0 投票
3 回答
10107 浏览

assembly - 什么时候需要 GAS ELF 指令 .type、.thumb、.size 和 .section?

我正在使用 GNU 作为基于 ARM Cortex-M3 的微控制器(Thumb 2 指令集)的汇编程序。

在一些示例代码中,我找到了类似的指令,.size我理解的是 ELF 指令。举个例子:.section.type



.type据说该指令设置符号的类型 - 通常为 %object(意思是数据?)或 %function。我不知道它有什么不同。它并不总是包括在内,所以我不确定何时需要使用它。

与此相关的还有.thumb_func指令。从我读过的内容看来,它可能相当于:

还是完全不同的东西?



.size据说设置与符号关联的大小。什么时候需要,我不知道。这是默认计算的,但可以用这个指令覆盖吗?如果是这样 - 你什么时候想要覆盖?



.section更容易找到文档,我想我对它的作用有一个很好的了解,但我仍然有点不确定它的用法text我理解它的方式,它在不同的 ELF 部分(用于代码、data可写数据、bss未初始化数据、常量等)之间切换rodata,并在需要时定义新部分。我猜你会根据你是否定义代码、数据、未初始化的数据等在这些之间切换。但是为什么要为函数创建一个小节,就像上面的例子一样?


对此的任何帮助表示赞赏。如果您能找到更详细地解释这一点的教程或文档的链接——最好是新手可以理解的——我将不胜感激。

到目前为止,作为手册的使用已经提供了一些帮助——也许你可以比我得到更多的知识,更多的知识。

0 投票
2 回答
1113 浏览

assembly - 不能在 Gnu AS 表达式中使用“&”运算符

我想得到一个变量的地址,并由 4096 编辑(这将对应于它的内存页的地址)。因为这是可以离线计算的东西,所以我做了一些看起来像这样的事情(v 是变量,vpage 应该包含其页面的地址):

尝试使用 x86 汇编器编译此文件会导致以下错误:

为什么 GAS 会拒绝计算这个?现在奇怪的部分:用“+”替换'&',代码将编译,地址在链接后甚至会被正确计算。任何关于这种行为的原因或如何解决它的提示都将非常受欢迎。

0 投票
2 回答
1478 浏览

c - 我需要帮助将 Intel 内联 asm 转换为 AT&T,以便我可以使用 gcc 编译它

这是原始代码:

感谢 Jester,我现在有了这个:

显然,gcc 不喜欢clflush 中的 volatile 感谢大家。

我正在尝试使用 gcc 作为 dll 编译Slicing-By-8,以便可以在我的 VB6 应用程序中使用它。

0 投票
4 回答
11357 浏览

c - 从 c 调用汇编函数

我正在尝试在程序集中使用从 C 项目调用的函数。假设这个函数应该调用一个 libc 函数printf(),但我一直遇到分段错误。

在 .c 文件中我有函数的声明让我们说

在 .asm 文件中我有

任何指针评论将不胜感激。

0 投票
3 回答
4807 浏览

assembly - 装配无限循环

我的 x86 汇编传奇仍在继续,我正在使用这段代码进入一个无限循环,我有点困惑。

我期待跳转到do_exit:当 %ecx 达到 4 时,因为它在每次迭代中都会增加

0 投票
1 回答
2271 浏览

c - 将数组传递给外部汇编函数

不知何故与从 c 调用汇编函数有关

我将一个 int 数组和一个长度传递给该函数:

装配部分看起来像这样

我可以打印 len 参数 12(%ebp),但每次我在 %edx 上尝试相同的东西时,它应该是数组的第一个元素,我得到一个分段错误。

然后它充满了数据。

0 投票
2 回答
3900 浏览

assembly - 如何使用 GNU GAS 使 ELF 格式的 .section 只读?

据我了解,这些是.section指令:

如果使用 COFF 格式,则“旧”指令为“只读”。

如何使 ELF 格式的 .section 只读?根本没有说明符?