14得票3回答
x86 AT&T语法汇编的注释语法

Intel语法使用分号进行注释。当我切换到AT&T时,它实际上尝试解释注释。 AT&T汇编的注释语法是什么?

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

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

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

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

12得票1回答
如何减轻Intel jcc勘误对gcc的影响?

如果我的芯片受到Intel jcc错误的影响,我该如何在gcc中启用缓解措施(调整分支位置以避免问题对齐),哪些gcc版本支持它?

12得票3回答
理解基指针和栈指针:与gcc输出上下文相关

我有如下的C程序:int main() { int c[10] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2}; return c[0]; } 使用gcc并采用-S指令编译后,得到以下汇编代码: .file "array.c" .text ....

11得票1回答
“.asciz”和“.string”汇编指令有什么区别?

我知道.ascii指令不会在字符串末尾添加空字符,为了实现这个目的需要使用.asciz指令。然而,我不确定.string指令是否会在字符串末尾添加空字符。 如果它确实追加了空字符,那么.asciz和.string指令之间有什么区别呢?对我来说,同时拥有.asciz和.string似乎是多余的。

11得票1回答
使用“.intel_syntax noprefix”,如何获取标签的内存地址?

我正在学习如何使用以下工具创建实模式程序的汇编和链接: GCC Assembler版本为2.25 Binutils版本为2.25 GCC版本为5.2.0 我使用了Intel语法,没有指定前缀,用.intel_syntax noprefix表示。 我想将一个字符串的地址加载到SI寄存器...

11得票1回答
为什么使用GAS时,从AT&T语法切换到Intel语法会导致本教程出现段错误?

我正在学习一些关于x86/x64的教程,网址是http://www.ibm.com/developerworks/linux/library/l-gas-nasm/index.html。这个教程提供了使用AT&T语法的代码,它可以顺利编译和运行。 .global main .text...

11得票4回答
".align" x86汇编指令的确切作用是什么?

我将列出我不理解的内容,并展示我无法理解的部分。 首先, 对齐指令(.Align Directive) .align integer, pad. 对齐指令使下一个生成的数据按模integer字节对齐。 1.~ ? : "使下一个生成的数据按模integer字节对齐的意思是什么?" 我可以猜...

11得票6回答
gas与nasm:哪个汇编器生成的代码最好?

这两个工具都会将汇编指令直接转换成机器码,但是能否确定哪一个可以生成最快和最干净的代码?