inline assembly 存取 structure member 的寫法 |
缺席
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
問題:inline assembly 存取 structure member 的寫法 如題,以下只是簡單對暫存器直接存取(不會 work 的)
typedef struct{ DWORD A; DWORD B; DWORD C; DWORD D; } MyRegs; MyRegs __fastcall TestingPutSomeRegToStructure(MyRegs Input) { MyRegs Output; asm{ mov eax, Input.A mov ebx, Input.B mov ecx, Input.C mov edx, Input.D mov Output.A, eax mov Output.B, ebx mov Output.C, ecx mov Output.D, edx }; return Output; }我知道,可以直接使用 _EAX, _EBX 這些來直接存取暫存器,所以,以下的可以用的 code typedef struct{ DWORD A; DWORD B; DWORD C; DWORD D; } MyRegs; MyRegs __fastcall TestingPutSomeRegToStructure(MyRegs Input) { MyRegs Output; _EAX=Input.A; Output.A=_EAX; return Output; }但我想知道如何在 inline assembly 中,直接將資料寫入 struct 的寫法。 在 google 找到一些,但測試後都是不能用的... VC 的 inline assembly 與 BCB 的不知道是否也有不同? 想要寫 inline assembly 主要是想評估自己寫出 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30185 的可行性... 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: BCB是呼叫TASM VC <--- unknow 但是標準的MASM是可以使用struct的 ^^~ 以小弟的慣用法, 就是學C的陣列 取得第一個指標後, 然後自己去算offset 不知道那位大大有更好的方法 >>< face="Verdana, Arial, Helvetica"> 標準的 TASM 也可是可以使用 struct ,但在 inline assembly 中好像有一些限制... 好像也沒有書專門在講 inline assembly 的... 我不想使用 Input.A=_EAX; 之類的直接存取 EAX 等暫存器,因為,可能會有 side effect! 除非每個用到暫存器直接存取的地方都要再看一次 assembly 出來的 code ,否則很難保證暫存器的值是否已被修改了。如果有制式或比較標準的寫法,那就不用看 assembly code 來 debug 了,否則,為了測試程式效能結果產生出更多的 BUG 那不是太不划算了嗎? 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
真的只能用 Offset 來算嗎?
不能用 Output.A ? 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
在未來的一段時間,可能會比較忙,
因此,暫時將此問題結案了 < >
如果您有好的解答,歡迎回應,目前的系統可以重新給分喔 < > 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |