gaclib.net
C++博客
首頁
新隨筆
聯系
聚合
管理
隨筆-341 評論-2670 文章-0 trackbacks-0
JIT腳本引擎:成員對齊詳解
摘要: 為了讓編譯成x86后的代碼可以轉換成C++的函數指針,我們也必須處理成員對齊的事情。如果腳本里的結構成員對齊跟C++不一致的話,會造成很多麻煩。下面是成員對齊的計算方法:
閱讀全文
posted @
2009-03-09 20:46
陳梓瀚(vczh) 閱讀(3747) |
評論 (2)
|
編輯
收藏
JIT腳本引擎:浮點運算
摘要: x87的FPU支持很多種浮點運算,其中浮點運算的比較結果不放在EFLAGS里,我們需要人手取出。在比較a和b的時候,C2=0,C3=(a==b),C0=(a<b)。我們可以將FNSTSW AX指令將浮點標志位復制到AX,然后通過讀取C3、C2和C0(分別位于第14、10、8位)來判斷結果。下面是一個求浮點數組最大值的匯編函數:
閱讀全文
posted @
2009-03-06 04:56
陳梓瀚(vczh) 閱讀(1495) |
評論 (0)
|
編輯
收藏
JIT腳本引擎:關于自己的異常處理函數在Release下失效的解決辦法
摘要: 本來昨天搞定了異常處理之后決定狂喜一天,誰知道今天用release編譯了一下之后竟然掛了!資料找了半天發現是Windows XP之后提供的一項保護SAFESEH搞的鬼。于是需要將自己的異常處理函數添加進PE頭的SAFESEH列表中。方法如下:
閱讀全文
posted @
2009-03-04 08:40
陳梓瀚(vczh) 閱讀(1897) |
評論 (2)
|
編輯
收藏
JIT腳本引擎:使用匯編實現__try和__catch
摘要: 使用上一篇文章的資料,就可以使用匯編實現異常處理了。下面來看一個例子。
閱讀全文
posted @
2009-03-03 00:20
陳梓瀚(vczh) 閱讀(2275) |
評論 (1)
|
編輯
收藏
JIT腳本引擎:關于X86上Windows 32位操作系統異常處理(SEH)的處理過程
A Crash Course on theDepths of Win32 Structured Exception Handling, MSJ January 1997
http://www.microsoft.com/msj/0197/Exception/Exception.aspx
對于結構化異常處理(SEH)的進一步探索(讀后感)
http://vicchina.51.net/research/other/seh/sehadvance.htm
NT 中的異常幀結構和異常嵌套(讀后感續)
http://vicchina.51.net/show_article.php?id=65
posted @
2009-03-02 04:45
陳梓瀚(vczh) 閱讀(1772) |
評論 (0)
|
編輯
收藏
JIT腳本引擎:stdcall、cdecl和fastcall
摘要: stdcall、cdecl和fastcall的參數都是從右到左入棧,并且返回值遵循以下規律:
小于等于4字節結構用EAX
小于等于8字節結構用EDX:EAX
浮點數用ST(0)
其他則在EAX放置一個指針,供返回值使用
stdcall被調用者清棧,cdecl調用者清棧,fastcall被調用者清棧并且前兩個小于等于4字節的參數放入ECX和EDX。返回值和參數如果一方有構造函數或析構函數則不使用寄存器。
于是今天用字符串形式的匯編寫了三種調用方法的求和函數:
閱讀全文
posted @
2009-03-01 05:27
陳梓瀚(vczh) 閱讀(1802) |
評論 (9)
|
編輯
收藏
JIT腳本引擎:用匯編寫了一個四則運算字符串分析程序
摘要: 這個匯編程序讀入一個字符串,并計算結果。支持加減乘除括號,不支持浮點數,不支持查錯。以下是匯編以及注釋。匯編程序使用這篇文章的程序編譯并執行。
閱讀全文
posted @
2009-02-26 09:05
陳梓瀚(vczh) 閱讀(2214) |
評論 (0)
|
編輯
收藏
JIT腳本引擎:動態運行文本格式的匯編代碼
摘要: 今天完成了文本格式匯編代碼的編譯工作。這主要是為了調試,因為編譯器不可能產生文本格式的匯編代碼,這樣會很浪費資源。翻譯過程如下:
閱讀全文
posted @
2009-02-26 01:27
陳梓瀚(vczh) 閱讀(3374) |
評論 (2)
|
編輯
收藏
JIT腳本引擎:完成鏈接器的核心功能
摘要: 光能編譯匯編還是不行的,因為很多東西在編譯的時候不知道,典型的比如放常量那部分的指針等等。主要原因還是因為x87(指FPU部分)沒有指令包含浮點立即數,所有裝載浮點常數的指令都要求提供指針。所以諸如double a=1.2;之類的代碼,需要將1.2預先放置在一個地方然后確定指針的位置。
于是就遇到了一個問題,如何將編譯后才知道的指針地址寫進去呢?
閱讀全文
posted @
2009-02-22 22:41
陳梓瀚(vczh) 閱讀(1931) |
評論 (1)
|
編輯
收藏
JIT腳本引擎:將匯編語言編譯成機器碼寫進內存并在C++中調用
摘要: 在完成了這里和這里的工作之后,就可以寫程序生成機器碼了。在生成機器碼的時候有如下注意事項:
1:可執行代碼所在的空間必須使用VirtualAlloc與PAGE_EXECUTE_READWRITE標記分配。
2:程序需要的常量空間、全局變量空間和指令空間需要分開在三個不同的地方。
下面的例子使用一個struct保存指令的每一個部分,并且結合之前產生的指令譯碼表生成二進制碼。
閱讀全文
posted @
2009-02-22 07:08
陳梓瀚(vczh) 閱讀(4949) |
評論 (11)
|
編輯
收藏
僅列出標題
共35頁:
First
18
19
20
21
22
23
24
25
26
Last
留言簿
(70)
給我留言
查看公開留言
查看私人留言
隨筆分類
(347)
.NET(3)
2D(14)
3D(12)
C++(54)
C++實用技巧(7)
GacUI(37)
JIT(28)
Vczh Free Script(7)
Vczh Lazy Script(4)
VL++3.0開發紀事(51)
跟vczh看實例學編譯原理(4)
腳本技術(47)
開發自己的IDE(13)
其他(23)
啟示(30)
作品(13)
好友博客
Graphixer
何詠師弟的圖形學網站
jetricy
Jetricy的技術博客
KlayGE游戲引擎
叛叛大神
Lomox UI框架
Lomox UI框架
MiGL
Tyeah的博客
vczh的百度空間
vczh的百度空間
YMK的后花園
YMK的技術博客
德利菲
德利菲的技術博客
怪盜KID的游戲開發博客
怪盜KID的游戲開發博客
華工微軟俱樂部
華南理工大學微軟俱樂部科技部博客
開發視界
開發視界 - 移動開發社區
老趙點滴
趙姐夫的.net博客
臨淵羨魚,不如退而山寨
另一個SOS團的C++程序員……
某白食(Lyt)
某白食的C++博客
歲月流轉,往昔空明
空明流轉的blog
微軟一站式實例代碼庫
500個經典示例,速學速用,效率倍增。
我在博客園的blog
我在博客園的blog
一個不靠譜的程序員
JeffChen的技術博客
搜索
最新評論
1.?re: 正則表達式——一點小插曲
明天開工。
來踩一下輪子哥的腳印。
--Bread
2.?re: 自從昨天我發現VS2012可以編譯出支持XP的代碼之后,我決定在GacUI里面全面使用C++11新功能
請教一下GACUI可以支持VC2008嗎?
--許滿哥
3.?re: 要學車暫停更新幾個星期
@昏人
66666666
--lgjsd
4.?re: 伴隨我成長的編程書
感覺我要走的道路好長好長
--lzj
5.?re: 伴隨我成長的編程書
我最喜歡的cppblog上又看到好文章了
--胡然
閱讀排行榜
1.?伴隨我成長的編程書(164374)
2.?《構造正則表達式引擎》新鮮出爐啦!(109757)
3.?跟vczh看實例學編譯原理——零:序言(51212)
4.?如何手寫語法分析器(40144)
5.?C++實用技巧(一)(38099)
評論排行榜
1.?關于C++之“復雜”(68)
2.?(轉)架構師已死(轉自UML軟件工程組織) (57)
3.?2005-2009年個人總結(40)
4.?如何設計一門語言(一)——什么是坑(a)(37)
5.?《構造正則表達式引擎》新鮮出爐啦!(36)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 陳梓瀚(vczh)
精品精品国产自在久久高清
|
久久免费视频观看
|
久久久久亚洲AV综合波多野结衣
|
色偷偷88欧美精品久久久
|
色狠狠久久综合网
|
性欧美大战久久久久久久久
|
久久99国产乱子伦精品免费
|
草草久久久无码国产专区
|
无码国内精品久久综合88
|
九九精品99久久久香蕉
|
久久激情亚洲精品无码?V
|
一本一道久久综合狠狠老
|
狠狠精品久久久无码中文字幕
|
久久久无码人妻精品无码
|
久久成人精品
|
久久久91精品国产一区二区三区
|
久久精品亚洲男人的天堂
|
亚洲AV无码久久
|
亚洲国产成人精品91久久久
|
久久精品国产亚洲精品
|
无码人妻久久一区二区三区免费丨
|
狠狠色丁香婷综合久久
|
久久精品人人做人人爽电影
|
国产精品久久久久久
|
国内精品伊人久久久影院
|
精品久久综合1区2区3区激情
|
无码人妻久久一区二区三区免费
|
亚洲v国产v天堂a无码久久
|
亚洲成人精品久久
|
成人久久精品一区二区三区
|
久久午夜福利无码1000合集
|
久久精品成人一区二区三区
|
99久久精品九九亚洲精品
|
久久se精品一区二区
|
99久久精品国产高清一区二区
|
久久久亚洲裙底偷窥综合
|
中文字幕精品无码久久久久久3D日动漫
|
免费观看久久精彩视频
|
久久亚洲国产精品一区二区
|
97久久超碰国产精品2021
|
久久久精品人妻一区二区三区四
|