Conversão de montagem Intel x86 para ARM
Atualmente estou aprendendoARM
linguagem assembly;
Para fazer isso, estou tentando converter algunsx86 code (AT&T Syntax)
para montagem de ARM(Intel Syntax)
código.
__asm__("movl $0x0804c000, %eax;");
__asm__("mov R0,#0x0804c000");
A partir dissodocumento, Aprendo que em x86 o Chunk 1 da estrutura heap começa em 0x0804c000. Mas quando eu tento fazer o mesmoarm
, Estou tendo o erro a seguir:
/tmp/ccfNZp9F.s:174: Error: invalid constant (804c000) after fixup
Eu estou supondo que o problema é que o ARM só pode carregar32 bits instruções.
Question 1: Any idea what would be the first chunk in case of ARM processors?
Question 2:
Do meu anteriorquestão, Eu sei como funciona o endereçamento indireto de memória.
Os snippets abaixo estão fazendo o mesmo trabalho?
movl (%eax), %ebx
LDR R0,[R1]
estou usandoARMv7 Processor rev 4 (v7l)