青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-341  評論-2670  文章-0  trackbacks-0
    這次工作將一個中間語言的程序翻譯成了匯編,然后再翻譯成機器碼。這一次產生的匯編比較爛,到時候做個窺孔優化稍微處理一下就好了。等上層的設施搞定之后再將這個中間語言到匯編的程序重寫。下面是一個菲薄納氣數列的例子。

    1:中間代碼。這是一個菲薄納氣函數的中間指令。
 1 FUNCTION 4 fab STDCALL
 2   PARAM 4 number
 3 BEGIN
 4 BLOCK
 5   VAR 4 compare_result
 6 BEGIN
 7   LT int32s compare_result, int32s number, int32s 2
 8   JBF int32s compare_result, @COMBINE
 9   MOV int32s #RETURN_VALUE, int32s 1
10   JE @COMBINE
11   BLOCK @COMBINE
12     VAR 4 a
13     VAR 4 b
14     VAR 4 c
15   BEGIN
16     MOV int32s a, int32s 1
17     MOV int32s b, int32s 1
18     BLOCK @LOOP
19     BEGIN
20       ADD int32s c, int32s a, int32s b
21       MOV int32s a, int32s b
22       MOV int32s b, int32s c
23       SUB int32s number, int32s number, int32s 1
24       LT int32s compare_result, int32s number, int32s 2
25       JET int32s compare_result, @LOOP
26       JB @LOOP
27     END BLOCK
28     MOV int32s #RETURN_VALUE, int32s b
29   END BLOCK
30 END BLOCK
31 END FUNCTION

    2:編譯后的匯編代碼(編譯成機器碼后使用Visual Studio 2008 Team System進行反匯編)
 1 000B0000 FF F5            push        ebp  
 2 000B0002 89 E5            mov         ebp,esp 
 3 000B0004 81 EC 1C 00 00 00 sub         esp,1Ch 
 4 000B000A 60               pushad           
 5 000B000B B8 02 00 00 00   mov         eax,2 
 6 000B0010 89 C2            mov         edx,eax 
 7 000B0012 8B 85 08 00 00 00 mov         eax,dword ptr [ebp+00000008h] 
 8 000B0018 31 FF            xor         edi,edi 
 9 000B001A B9 01 00 00 00   mov         ecx,1 
10 000B001F 39 D0            cmp         eax,edx 
11 000B0021 0F 4C F9         cmovl       edi,ecx 
12 000B0024 89 F8            mov         eax,edi 
13 000B0026 89 85 EC FF FF FF mov         dword ptr [ebp+FFFFFFECh],eax 
14 000B002C 8B 85 EC FF FF FF mov         eax,dword ptr [ebp+FFFFFFECh] 
15 000B0032 A9 FF FF FF FF   test        eax,0FFFFFFFFh 
16 000B0037 0F 84 10 00 00 00 je          000B004D 
17 000B003D B8 01 00 00 00   mov         eax,1 
18 000B0042 89 85 FC FF FF FF mov         dword ptr [ebp+FFFFFFFCh],eax 
19 000B0048 E9 9C 00 00 00   jmp         000B00E9 
20 000B004D B8 01 00 00 00   mov         eax,1 
21 000B0052 89 85 F0 FF FF FF mov         dword ptr [ebp+FFFFFFF0h],eax 
22 000B0058 B8 01 00 00 00   mov         eax,1 
23 000B005D 89 85 F4 FF FF FF mov         dword ptr [ebp+FFFFFFF4h],eax 
24 000B0063 8B 85 F4 FF FF FF mov         eax,dword ptr [ebp+FFFFFFF4h] 
25 000B0069 89 C2            mov         edx,eax 
26 000B006B 8B 85 F0 FF FF FF mov         eax,dword ptr [ebp+FFFFFFF0h] 
27 000B0071 01 D0            add         eax,edx 
28 000B0073 89 85 F8 FF FF FF mov         dword ptr [ebp+FFFFFFF8h],eax 
29 000B0079 8B 85 F4 FF FF FF mov         eax,dword ptr [ebp+FFFFFFF4h] 
30 000B007F 89 85 F0 FF FF FF mov         dword ptr [ebp+FFFFFFF0h],eax 
31 000B0085 8B 85 F8 FF FF FF mov         eax,dword ptr [ebp+FFFFFFF8h] 
32 000B008B 89 85 F4 FF FF FF mov         dword ptr [ebp+FFFFFFF4h],eax 
33 000B0091 B8 01 00 00 00   mov         eax,1 
34 000B0096 89 C2            mov         edx,eax 
35 000B0098 8B 85 08 00 00 00 mov         eax,dword ptr [ebp+00000008h] 
36 000B009E 29 D0            sub         eax,edx 
37 000B00A0 89 85 08 00 00 00 mov         dword ptr [ebp+00000008h],eax 
38 000B00A6 B8 02 00 00 00   mov         eax,2 
39 000B00AB 89 C2            mov         edx,eax 
40 000B00AD 8B 85 08 00 00 00 mov         eax,dword ptr [ebp+00000008h] 
41 000B00B3 31 FF            xor         edi,edi 
42 000B00B5 B9 01 00 00 00   mov         ecx,1 
43 000B00BA 39 D0            cmp         eax,edx 
44 000B00BC 0F 4C F9         cmovl       edi,ecx 
45 000B00BF 89 F8            mov         eax,edi 
46 000B00C1 89 85 EC FF FF FF mov         dword ptr [ebp+FFFFFFECh],eax 
47 000B00C7 8B 85 EC FF FF FF mov         eax,dword ptr [ebp+FFFFFFECh] 
48 000B00CD A9 FF FF FF FF   test        eax,0FFFFFFFFh 
49 000B00D2 0F 85 05 00 00 00 jne         000B00DD 
50 000B00D8 E9 86 FF FF FF   jmp         000B0063 
51 000B00DD 8B 85 F4 FF FF FF mov         eax,dword ptr [ebp+FFFFFFF4h] 
52 000B00E3 89 85 FC FF FF FF mov         dword ptr [ebp+FFFFFFFCh],eax 
53 000B00E9 8B 85 FC FF FF FF mov         eax,dword ptr [ebp+FFFFFFFCh] 
54 000B00EF 89 EC            mov         esp,ebp 
55 000B00F1 8F C5            pop         ebp  
56 000B00F3 C2 04 00         ret         4 

    附上Visual Studio 2008 Team System的截圖:

    最后是執行結果(將函數指針拿出來,然后使用不同的參數進行調用):

    接下來就是漫長的調試工作了……
posted on 2009-04-14 00:11 陳梓瀚(vczh) 閱讀(2762) 評論(9)  編輯 收藏 引用 所屬分類: JIT

評論:
# re: JIT腳本引擎:成功將第一個腳本編譯成機器碼 2009-04-14 00:33 | Lilo
將函數指針拿出來,然后使用不同的參數進行調用

難怪還看不到call printf...  回復  更多評論
  
# re: JIT腳本引擎:成功將第一個腳本編譯成機器碼 2009-04-14 02:42 | kevin.c
這個強悍 根本看不懂  回復  更多評論
  
# re: JIT腳本引擎:成功將第一個腳本編譯成機器碼 2009-04-14 07:44 | 肥仔
狄公真乃神人也!  回復  更多評論
  
# re: JIT腳本引擎:成功將第一個腳本編譯成機器碼 2009-04-14 17:15 | sapielion
牛,能不能給一套代碼,讓我們學習學習,cqm21@yahoo.com.cn  回復  更多評論
  
# re: JIT腳本引擎:成功將第一個腳本編譯成機器碼 2009-04-14 19:26 | 陳梓瀚(vczh)
@sapielion
正在測,給你有bug的代碼看是沒意義的。  回復  更多評論
  
# re: JIT腳本引擎:成功將第一個腳本編譯成機器碼 2009-04-14 19:52 | 巫云
膜拜1分鐘。
能推薦點學習匯編的資料嗎?新一點的。  回復  更多評論
  
# re: JIT腳本引擎:成功將第一個腳本編譯成機器碼 2009-04-14 20:50 | 陳梓瀚(vczh)
@巫云
Intel主頁上有匯編手冊下載。  回復  更多評論
  
# re: JIT腳本引擎:成功將第一個腳本編譯成機器碼[未登錄] 2009-09-16 05:08 | 小強
"2:編譯后的匯編代碼(編譯成機器碼后使用Visual Studio 2008 Team System進行反匯編)"

不知道樓主使用什么工具將你的轉換后的匯編代碼編譯的呢?  回復  更多評論
  
# re: JIT腳本引擎:成功將第一個腳本編譯成機器碼 2009-09-23 20:14 | 陳梓瀚(vczh)
@小強
我自己寫的工具  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区二区三区四区在线| 午夜精品一区二区三区在线视 | 亚洲福利视频在线| 这里只有精品视频| 在线不卡a资源高清| 国产精品www.| 欧美成年人在线观看| 欧美一级精品大片| 99在线精品观看| 亚洲电影天堂av| 久久亚洲欧洲| 久久大逼视频| 亚洲女性裸体视频| 亚洲黄色av| 伊人婷婷久久| 国模精品娜娜一二三区| 欧美日韩视频在线| 欧美精品久久久久a| 欧美福利在线| 母乳一区在线观看| 久久影院午夜论| 性久久久久久久| 先锋影院在线亚洲| 性娇小13――14欧美| 亚洲女性裸体视频| 亚洲永久视频| 午夜精品久久一牛影视| 亚洲综合色视频| 亚洲影院在线观看| 午夜在线视频观看日韩17c| 亚洲女人天堂成人av在线| 亚洲一区二区四区| 国产精品一区二区a| 在线天堂一区av电影| 99精品99久久久久久宅男| 亚洲精品中文字幕在线观看| 欧美激情视频给我| 亚洲国产天堂久久国产91| 日韩视频一区二区三区在线播放| 亚洲福利国产| 韩国福利一区| 99视频日韩| 中日韩在线视频| 欧美一区二区三区在线观看视频| 亚洲国产小视频在线观看| 亚洲自拍高清| 日韩西西人体444www| 久久精品国产77777蜜臀 | 欧美日韩小视频| 老司机精品久久| 国产欧美在线看| 亚洲人成网站色ww在线| 99精品视频免费全部在线| 久久人人爽人人爽| 久久精品女人天堂| 日韩一本二本av| 国产一区二三区| 欧美va天堂va视频va在线| 91久久久久久久久久久久久| 欧美激情麻豆| 亚洲一级黄色片| 久久综合婷婷| 蜜臀av一级做a爰片久久| 日韩特黄影片| 亚洲欧洲美洲综合色网| 亚洲国产精品成人综合色在线婷婷| 午夜精品久久久久影视| 久久亚洲国产成人| 欧美日韩国产一区二区三区| 国产精品系列在线| 亚洲高清久久网| 夜夜爽av福利精品导航| 欧美中文在线免费| 亚洲高清在线视频| 亚洲一区二区网站| 欧美影院久久久| 亚洲第一福利社区| 夜夜爽www精品| 国产伦精品一区二区| 久久久免费精品| 久久久www成人免费精品| 欧美精品一区二区在线播放| 亚洲日韩欧美视频一区| 久久精品99国产精品日本| 麻豆av一区二区三区久久| 亚洲丁香婷深爱综合| 日韩亚洲欧美高清| 欧美在线一级va免费观看| 欧美xart系列高清| 国产一区二区视频在线观看| 日韩亚洲在线| 女人色偷偷aa久久天堂| 亚洲午夜精品福利| 欧美激情bt| 一区二区视频免费在线观看| 亚洲欧美日韩精品在线| 亚洲国产99精品国自产| 久久成人18免费网站| 欧美色道久久88综合亚洲精品| 在线日韩中文| 久久国产精品黑丝| 一区二区三区毛片| 你懂的亚洲视频| 好吊日精品视频| 欧美一区二区三区免费视频| 亚洲黄色影院| 猫咪成人在线观看| 黄色综合网站| 久久成人18免费观看| 亚洲性感激情| 欧美色视频一区| 亚洲美女黄网| 欧美韩国日本一区| 久久婷婷麻豆| 在线观看的日韩av| 久久久久高清| 欧美在线观看一区二区| 国产精品日韩精品欧美在线 | 久久激情视频久久| 一区二区日本视频| 欧美日韩大片| 9人人澡人人爽人人精品| 亚洲国产另类久久精品| 免费h精品视频在线播放| 又紧又大又爽精品一区二区| 玖玖玖国产精品| 欧美一区二区三区视频在线观看| 国产精品网站在线观看| 午夜亚洲福利| 亚洲一区在线播放| 国产伦精品一区二区三区免费 | 亚洲区一区二| 亚洲电影视频在线| 欧美高清视频一区二区三区在线观看| 亚洲国产婷婷综合在线精品| 亚洲高清免费在线| 欧美精品在线观看| 中文国产亚洲喷潮| 亚洲视频1区| 国产欧美一区二区三区在线看蜜臀| 午夜视频一区二区| 欧美伊人久久| 悠悠资源网亚洲青| 亚洲电影第三页| 欧美日韩视频第一区| 午夜精彩视频在线观看不卡| 欧美一区二区| 激情小说另类小说亚洲欧美 | 久久午夜av| 免费成人高清在线视频| 狠狠爱www人成狠狠爱综合网| 久久天堂精品| 亚洲国产99精品国自产| 亚洲国产精品嫩草影院| 欧美精品一区二区高清在线观看| 亚洲少妇在线| 亚洲欧美日韩一区二区三区在线观看| 国产日韩精品久久久| 农夫在线精品视频免费观看| 欧美激情亚洲另类| 午夜精品视频| 久久久久99| 一个色综合av| 亚洲欧美日韩精品久久亚洲区| 极品少妇一区二区三区| 亚洲国产日韩一级| 国产精品亚洲欧美| 免费看精品久久片| 国产精品va在线播放我和闺蜜| 久久超碰97中文字幕| 蘑菇福利视频一区播放| 亚洲欧美日韩一区| 久久夜精品va视频免费观看| 亚洲亚洲精品三区日韩精品在线视频 | 一区二区高清在线观看| 午夜精品在线| 日韩午夜激情电影| 欧美一区激情视频在线观看| 91久久线看在观草草青青| 亚洲一二三区精品| 亚洲国产第一页| 亚洲男人第一av网站| 最新成人av网站| 亚洲在线观看免费| 亚洲免费高清| 久久精品九九| 欧美色大人视频| 欧美电影在线观看| 欧美日韩亚洲一区二区三区四区| 亚洲第一福利视频| 亚洲欧美国产一区二区三区| 一区在线免费观看| 国产精品99久久久久久宅男| 亚洲国产欧美一区| 国产麻豆成人精品| 国产精品福利av| 欧美日韩在线视频一区| 欧美成人综合网站| 午夜精品一区二区三区电影天堂| 女女同性女同一区二区三区91|