0xA*_*xAX 4 assembly ocaml disassembly
我有简单的ocaml文件test.ml
1 + 2;;
Run Code Online (Sandbox Code Playgroud)
我编译了它.我能看到这段代码的汇编输出吗?也许ocaml数据包有这个的任何工具?
谢谢.
是的你可以:见下文.代码中剩下的所有内容都是movl $7, %eax(7是OCaml的3表示,这是1 + 2的结果).
$ cat > t.ml
1 + 2 ;;
$ ocamlopt -S t.ml
$ cat t.s
.data
.globl _camlT__data_begin
_camlT__data_begin:
.text
.globl _camlT__code_begin
_camlT__code_begin:
nop
.data
.long 0
.globl _camlT
_camlT:
.text
.align 4
.globl _camlT__entry
_camlT__entry:
subl $12, %esp
L100:
movl $7, %eax
movl $1, %eax
addl $12, %esp
ret
.data
.text
nop
.globl _camlT__code_end
_camlT__code_end:
.data
.globl _camlT__data_end
_camlT__data_end:
.long 0
.globl _camlT__frametable
_camlT__frametable:
.long 0
.section __IMPORT,__pointers,non_lazy_symbol_pointers
.section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5
Run Code Online (Sandbox Code Playgroud)