我目前正在学习ARM
汇编语言;
为此,我试图将一些转换x86 code (AT&T Syntax)
为 ARM 汇编(Intel Syntax)
代码。
__asm__("movl $0x0804c000, %eax;");
__asm__("mov R0,#0x0804c000");
从这个文档中,我了解到在 x86 中,堆结构的 Chunk 1 从 0x0804c000 开始。但是当我尝试在 中做同样的事情时arm
,我收到以下错误:
/tmp/ccfNZp9F.s:174: Error: invalid constant (804c000) after fixup
我假设问题是 ARM 只能加载32 位指令。
Question 1: Any idea what would be the first chunk in case of ARM processors?
Question 2:
从我之前的问题中,我知道内存间接寻址是如何工作的。
下面写的片段是否做同样的工作?
movl (%eax), %ebx
LDR R0,[R1]
我在用ARMv7 Processor rev 4 (v7l)