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

隨筆-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) 閱讀(2758) 評論(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>
            亚洲欧美在线网| 国内免费精品永久在线视频| 亚洲精品一区二区三区婷婷月| 亚洲欧洲一区二区在线播放| 国产日韩欧美在线观看| 国产精品高潮久久| 欧美日韩三级视频| 欧美三级不卡| 国产精品福利av| 欧美日韩亚洲天堂| 国产精品福利网| 欧美视频中文在线看| 欧美系列一区| 国产亚洲精品v| 精品动漫3d一区二区三区免费| 国产伦精品一区二区三| 国产日本欧美在线观看 | 亚洲久久视频| 亚洲深夜福利| 欧美一区=区| 男同欧美伦乱| 亚洲免费观看| 欧美一区二区观看视频| 久久亚洲高清| 国产精品一区一区| 亚洲日本电影在线| 国产精品久久一区二区三区| 欧美黄网免费在线观看| 国产精品久久久一区麻豆最新章节 | 亚洲一区精彩视频| 老司机免费视频久久 | 在线成人激情| 亚洲男人第一av网站| 猛干欧美女孩| 午夜一区二区三区在线观看| 美女诱惑黄网站一区| 国产一区二区三区四区在线观看 | 亚洲美女中出| 农村妇女精品| 久久久亚洲国产天美传媒修理工 | 欧美三级视频在线播放| 在线播放日韩欧美| 猛男gaygay欧美视频| 午夜精品久久久久久 | 亚洲欧洲精品天堂一级| 亚洲欧美国产另类| 亚洲人成人一区二区在线观看| 麻豆精品在线观看| 久久久久久综合| 国内精品模特av私拍在线观看| 久久久天天操| 老司机午夜精品视频| 亚洲成人资源| 亚洲精品国产拍免费91在线| 免费不卡欧美自拍视频| 亚洲日本电影在线| 在线视频欧美一区| 国产视频综合在线| 亚洲第一精品福利| 欧美午夜视频网站| 久久米奇亚洲| 欧美日韩国产高清| 久久精品人人做人人综合| 久久精品成人| 亚洲一区在线免费观看| 久久精品免费播放| 这里只有精品视频| 久久久国产午夜精品| 亚洲一区二区精品| 久久免费视频网| 欧美中文字幕在线| 欧美日韩一区二区三区| 欧美成人xxx| 国产日韩精品入口| 一本色道久久99精品综合 | 欧美激情精品久久久久久久变态| 欧美三级网址| 一区二区三区 在线观看视| 亚洲欧洲综合| 美女主播精品视频一二三四| 美女啪啪无遮挡免费久久网站| 性做久久久久久久免费看| 国产精品videosex极品| 亚洲激情欧美| 日韩一级免费观看| 欧美日韩一区在线观看视频| 亚洲国产一区在线| 亚洲精品一区二区在线| 蜜臀久久久99精品久久久久久| 久久亚洲欧美| 亚洲精品日韩激情在线电影| 欧美大片在线看| 亚洲精品社区| 亚洲午夜视频在线观看| 国产欧美日韩精品在线| 美女图片一区二区| 亚洲综合电影| 亚洲激情一区二区三区| 亚洲男女自偷自拍图片另类| 国产欧美一区二区三区在线看蜜臀| 先锋影音国产精品| 欧美成年人在线观看| 午夜一区不卡| 亚洲国产精品国自产拍av秋霞| 欧美成人午夜| 六月天综合网| 欧美在线观看一区二区| 亚洲国产日韩欧美在线99| 欧美自拍偷拍| 亚洲在线1234| 亚洲线精品一区二区三区八戒| 精品福利av| 曰韩精品一区二区| 激情久久一区| 国产一区二区丝袜高跟鞋图片| 欧美日韩一区二区三区视频| 欧美成人四级电影| 欧美成人免费在线| 母乳一区在线观看| 欧美一区在线视频| 亚洲欧美国产精品桃花| 99国产精品久久久| 一本色道久久综合亚洲二区三区 | 亚洲午夜日本在线观看| 亚洲精品一二区| 亚洲免费高清视频| 亚洲一区图片| 久久精品国产久精国产思思| 久久一区二区精品| 欧美日韩高清在线| 国产精品无码永久免费888| 国产麻豆一精品一av一免费| 国产啪精品视频| 在线精品国精品国产尤物884a| 亚洲精品色婷婷福利天堂| 亚洲午夜激情| 欧美成年人网| 亚洲尤物在线视频观看| 老司机67194精品线观看| 欧美日韩福利在线观看| 国产一区三区三区| 一区二区精品在线观看| 久久久国产精彩视频美女艺术照福利 | 久热精品在线| 亚洲伊人伊色伊影伊综合网| 国产精品久久毛片a| 久久精品视频在线看| 免费日韩av| 亚洲图片在线| 国产欧美日韩另类一区| 亚洲香蕉网站| 夜夜嗨av一区二区三区四区| 亚洲日本精品国产第一区| 欧美成人一二三| 欧美中文字幕第一页| 亚洲一区三区视频在线观看| 久久久精品动漫| 日韩午夜激情av| 免费亚洲电影在线观看| 国产免费观看久久| 在线视频一区二区| 一本一本大道香蕉久在线精品| 久久av在线看| 狠狠久久五月精品中文字幕| 久久久久久91香蕉国产| 欧美高清一区| 欧美亚洲日本网站| 国产亚洲欧美一区二区三区| 久久精品人人做人人爽电影蜜月| 亚洲男人av电影| 红桃视频成人| 亚洲国产精品一区制服丝袜| 欧美成人高清| 新片速递亚洲合集欧美合集| 久久国产精品久久久| 在线观看中文字幕亚洲| 亚洲欧洲一级| 国内成+人亚洲| 亚洲片区在线| 国产亚洲综合精品| 亚洲精品资源| 亚洲国产视频a| 亚洲欧美日韩国产精品| 在线日韩av永久免费观看| 亚洲视频axxx| 一本在线高清不卡dvd| 欧美在线影院| 亚洲永久视频| 欧美另类久久久品| 欧美激情一区二区久久久| 国产午夜亚洲精品不卡| 亚洲一二三区在线| 亚洲视频在线一区观看| 欧美不卡激情三级在线观看| 久久久www免费人成黑人精品 | 午夜视频在线观看一区二区| 久久av一区二区三区漫画| 欧美精品激情在线| 亚洲第一搞黄网站| 亚洲经典视频在线观看|