我們在寫注冊機的時候,經常會從匯編語言翻譯到c語言代碼。
我們先看看一個比較短和簡單的函數
反編譯如下: (熱鍵F5):
可以看到產生的c代碼比較合理,但是不完美??瓷先ビ悬c亂,這是應為反編譯不能執行類型恢復。顯然,a1參數是指向一個結構體的指針。讓我們增加一些數據類型看看發生什么。我們打開Structure windows(Shift-F9),增加一個結構體。
我們切換到pseudocode window指定a1的類型。我們把光標放在a1出現的地方,按Y
當我們按回車后,反編譯器輸出開始變得更容易閱讀。
但是,這里還有一些改進。我們把這個結構體重新命名,并且指定它的類型。例如,fileld_6B1看上去像是一個計數器Fileld_6B5顯而易見是一個函數指針。我們不需要切換窗口就可以做這些。只有初始化結構定義才需要切換到structure window窗口。這里我們指定函數指針的字段。
最終結果看上去像是這樣。
這里沒有強制類型轉換,看上去比最初的代碼好看了更多。