• <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>
            隨筆-341  評論-2670  文章-0  trackbacks-0
             
                 摘要: 為了讓編譯成x86后的代碼可以轉換成C++的函數指針,我們也必須處理成員對齊的事情。如果腳本里的結構成員對齊跟C++不一致的話,會造成很多麻煩。下面是成員對齊的計算方法:  閱讀全文
            posted @ 2009-03-09 20:46 陳梓瀚(vczh) 閱讀(3754) | 評論 (2)編輯 收藏
                 摘要: 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) 閱讀(1499) | 評論 (0)編輯 收藏
                 摘要: 本來昨天搞定了異常處理之后決定狂喜一天,誰知道今天用release編譯了一下之后竟然掛了!資料找了半天發現是Windows XP之后提供的一項保護SAFESEH搞的鬼。于是需要將自己的異常處理函數添加進PE頭的SAFESEH列表中。方法如下:  閱讀全文
            posted @ 2009-03-04 08:40 陳梓瀚(vczh) 閱讀(1901) | 評論 (2)編輯 收藏
                 摘要: 使用上一篇文章的資料,就可以使用匯編實現異常處理了。下面來看一個例子。  閱讀全文
            posted @ 2009-03-03 00:20 陳梓瀚(vczh) 閱讀(2278) | 評論 (1)編輯 收藏
            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) 閱讀(1776) | 評論 (0)編輯 收藏
                 摘要: stdcall、cdecl和fastcall的參數都是從右到左入棧,并且返回值遵循以下規律:
            小于等于4字節結構用EAX
            小于等于8字節結構用EDX:EAX
            浮點數用ST(0)
            其他則在EAX放置一個指針,供返回值使用

            stdcall被調用者清棧,cdecl調用者清棧,fastcall被調用者清棧并且前兩個小于等于4字節的參數放入ECX和EDX。返回值和參數如果一方有構造函數或析構函數則不使用寄存器。
            于是今天用字符串形式的匯編寫了三種調用方法的求和函數:  閱讀全文
            posted @ 2009-03-01 05:27 陳梓瀚(vczh) 閱讀(1807) | 評論 (9)編輯 收藏
                 摘要: 這個匯編程序讀入一個字符串,并計算結果。支持加減乘除括號,不支持浮點數,不支持查錯。以下是匯編以及注釋。匯編程序使用這篇文章的程序編譯并執行。  閱讀全文
            posted @ 2009-02-26 09:05 陳梓瀚(vczh) 閱讀(2220) | 評論 (0)編輯 收藏
                 摘要: 今天完成了文本格式匯編代碼的編譯工作。這主要是為了調試,因為編譯器不可能產生文本格式的匯編代碼,這樣會很浪費資源。翻譯過程如下:  閱讀全文
            posted @ 2009-02-26 01:27 陳梓瀚(vczh) 閱讀(3383) | 評論 (2)編輯 收藏
                 摘要: 光能編譯匯編還是不行的,因為很多東西在編譯的時候不知道,典型的比如放常量那部分的指針等等。主要原因還是因為x87(指FPU部分)沒有指令包含浮點立即數,所有裝載浮點常數的指令都要求提供指針。所以諸如double a=1.2;之類的代碼,需要將1.2預先放置在一個地方然后確定指針的位置。

            于是就遇到了一個問題,如何將編譯后才知道的指針地址寫進去呢?  閱讀全文
            posted @ 2009-02-22 22:41 陳梓瀚(vczh) 閱讀(1937) | 評論 (1)編輯 收藏
                 摘要: 在完成了這里和這里的工作之后,就可以寫程序生成機器碼了。在生成機器碼的時候有如下注意事項:

            1:可執行代碼所在的空間必須使用VirtualAlloc與PAGE_EXECUTE_READWRITE標記分配。
            2:程序需要的常量空間、全局變量空間和指令空間需要分開在三個不同的地方。

            下面的例子使用一個struct保存指令的每一個部分,并且結合之前產生的指令譯碼表生成二進制碼。  閱讀全文
            posted @ 2009-02-22 07:08 陳梓瀚(vczh) 閱讀(4954) | 評論 (11)編輯 收藏
            僅列出標題
            共35頁: First 18 19 20 21 22 23 24 25 26 Last 
            久久se精品一区二区影院| 久久久噜噜噜久久熟女AA片 | 精品久久久久久综合日本| 精品免费tv久久久久久久| 国产精品美女久久久久av爽| 久久久久久久久久久精品尤物| 国产精品一久久香蕉国产线看观看 | 久久久久亚洲国产| 国内精品久久国产大陆| 欧美精品丝袜久久久中文字幕 | 久久A级毛片免费观看| 精品久久国产一区二区三区香蕉 | 色欲久久久天天天综合网精品 | 2020久久精品国产免费| 久久91精品国产91久| 国产激情久久久久影院老熟女免费| 久久久久国产精品人妻| 色天使久久综合网天天 | 婷婷国产天堂久久综合五月| 久久噜噜电影你懂的| 久久天天躁狠狠躁夜夜avapp| 香港aa三级久久三级老师2021国产三级精品三级在 | 久久中文字幕视频、最近更新| 成人国内精品久久久久一区| 狠狠色婷婷久久一区二区| 四虎国产精品免费久久| 日本道色综合久久影院| 青青青青久久精品国产| 精品久久777| 国产AⅤ精品一区二区三区久久| 狠狠色丁香久久综合婷婷| 免费国产99久久久香蕉| 国产AV影片久久久久久| 久久99精品国产麻豆婷婷| 丁香五月综合久久激情| 久久强奷乱码老熟女网站| 久久伊人亚洲AV无码网站| 久久中文字幕精品| 欧美亚洲色综久久精品国产| 久久99精品久久久久久动态图 | 久久精品国产男包|