开发者

Assembly code from Ocaml

I have simple ocaml file test.ml

1 + 2;;

I compiled it. can i see assem开发者_如何转开发bly output of this code? Maybe ocaml packet has any tools for this?

Thank you.


Yes you can: see below. Everything that remains from your code is movl $7, %eax (7 is OCaml's representation for 3, which is the result of 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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜