当我在 cygwin 上的 GCC 中将以下代码编译为 asm 时:
int scheme_entry() {
return 42;
}
使用:
gcc -O3 --omit-frame-pointer -S test1.c
我得到以下“ASM”生成:
.file "test1.c"
.text
.p2align 4,,15
.globl _scheme_entry
.def _scheme_entry; .scl 2; .type 32; .endef
_scheme_entry:
movl $42, %eax
ret
但“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”?