私はcygwinの上でGCCでASMに以下のコードをコンパイルします。GCCはASMを簡略化したx86 ASMを生成しましたか?マップする方法は?
int scheme_entry() {
return 42;
}
使用:
.file "test1.c"
.text
.p2align 4,,15
.globl _scheme_entry
.def _scheme_entry; .scl 2; .type 32; .endef
_scheme_entry:
movl $42, %eax
ret
しかし ':
gcc -O3 --omit-frame-pointer -S test1.c
を、私は、以下の 'ASM' が生成し得ますMOVL 'コマンドは実際にはx86 ASMではありません。次のリストを見てから:
http://ref.x86asm.net/geek.html#x0FA0
http://en.wikipedia.org/wiki/X86_instruction_listings
何MOVLコマンドはありませんが、
CMOVL
CMOVLE
MOVLPS
MOVLPD
MOVLHPS
私の質問がありますされて - gccのASMは、 "単純化されたASM" とは?もしそうなら、それを「真のASM」にマップするには?
AT&T構文が頭の中で撮影する必要があります。私はなぜ誰もそれを使用する理由を知らない – James
@James私はそれが清潔で読みやすいように私はAT&Tの構文を好む。また、ソースオペランドが最初に来るので、より良いフローになります。 – ughoavgfhw