私は現在、ARM
アセンブリ言語を学んでいます。
そのために、一部x86 code (AT&T Syntax)
を ARM アセンブリ(Intel Syntax)
コードに変換しようとしています。
__asm__("movl $0x0804c000, %eax;");
__asm__("mov R0,#0x0804c000");
このドキュメントから、x86 ではヒープ構造のチャンク 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)