posts - 12,comments - 1,trackbacks - 0
          今天花了一點時間作了個x86上hotspot vm的disassembler,這樣可以看出jvm生成的本地代碼了。
          代碼比較簡單,主要是用了udis86的庫,這個可以在sf上下載到,它的接口還是比較簡單的。

          簡單的例子,hotspot解析模式中iconst_0的對應(yīng)匯編代碼:
          iconst_0  3 iconst_0  [0xb4d98120, 0xb4d98160]  64 bytes

            0xb4d98120: sub esp, 0x4
            0xb4d98123: fstp dword [esp]
            0xb4d98126: jmp 0x1e
            0xb4d9812b: sub esp, 0x8
            0xb4d9812e: fstp qword [esp]
            0xb4d98131: jmp 0x13
            0xb4d98136: push edx
            0xb4d98137: push eax
            0xb4d98138: jmp 0xc
            0xb4d9813d: push eax
            0xb4d9813e: jmp 0x6
            0xb4d98143: push eax
            0xb4d98144: xor eax, eax
            0xb4d98146: movzx ebx, byte [esi+0x1]
            0xb4d9814a: inc esi
            0xb4d9814b: jmp dword near [ebx*4+0x6900680]

          posted on 2008-08-24 00:28 白色天堂 閱讀(183) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 山西省| 蓬溪县| 萨嘎县| 剑阁县| 曲松县| 盐津县| 淳化县| 遵义市| 广州市| 婺源县| 铁岭市| 赤城县| 山丹县| 华蓥市| 黄冈市| 江城| 公安县| 威海市| 顺义区| 绵阳市| 瓦房店市| 昂仁县| 台北市| 井冈山市| 北海市| 靖州| 虹口区| 潢川县| 天门市| 海南省| 荥经县| 田阳县| 余庆县| 恩施市| 隆回县| 慈溪市| 蚌埠市| 东光县| 卢龙县| 改则县| 灵台县|