線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1133
推到 Plurk!
推到 Facebook!

asm 與 struct 問題

尚未結案
小貓
一般會員


發表:14
回覆:23
積分:12
註冊:2002-07-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-26 20:10:59 IP:211.74.xxx.xxx 未訂閱
假設有以下的程式碼: struct Test { int a; int b; }; Test tt; __asm { mov ebx,offset tt mov eax,[ebx].Test.a ;這行都會錯..請問正確的語法為何? }
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-27 10:14:07 IP:211.23.xxx.xxx 未訂閱
同學~~~~~~ 你的assamble的struct語法是MASM才有的 而Turbo C , Borland C , Borland C Builder這幾個Complie是Borland出 的, 他用的是TASM, 以小弟的淺見, TASM是不support這樣子寫的 你如果程式是在C裡面運作, 為什麼要硬塞成assembly? 那不如用MASM32 還可以呼叫API, 開視窗....etc...
小貓
一般會員


發表:14
回覆:23
積分:12
註冊:2002-07-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-27 10:30:05 IP:211.74.xxx.xxx 未訂閱
//其實我想表達的是下列的程式碼 struct Test1 { int a; int b; }; struct Test2 { int b; int a; }; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Test1 tt1; Test2 tt2; __asm { mov esi,offset tt1 mov edi,offset tt2 //這行會出現 Ambiguous member name 'Test2::a' //主要是 tasm 不知道要 0 或 4 mov eax,[esi].a //VC 的解決方式: 強制指定是哪一個 struct mov eax,[esi]Test2.a //Delphi 的解決方式: 強制指定是哪一個 struct mov eax,[esi].Test2.a //BCB 的解決方式: 找不到方式, 鳴~~ } }
系統時間:2024-04-20 19:08:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!