[問題] C inline asm

看板C_and_CPP (C/C++)作者 (卯)時間15年前 (2011/03/03 10:28), 編輯推噓1(109)
留言10則, 3人參與, 最新討論串1/1
目前寫C inline asm遇到一個問題 通常code一般的寫法會大概像這樣: int a, b = 10; asm("sall $1, %0" : "=r"(a) : "r"(b) ); 大概像是這面這類的寫法 不過目前我遇到的是pointer的問題,我測不出我的問題在哪裡 我的code大概長得像下面這樣: int a = 10, *b; b = &a; 而我需要將b丟給C inline asm處理,可是我不清楚該如何放置b參數 asm("sall $1, %0" : "=r"( ) //僅能填b : "r"( ) //僅能填b ); 只是這個部份我填上*b或是b,結果出來都是錯誤的 故特來請教各位先進,我是哪邊出了問題? 還請各位不吝指點,謝謝 -- █◣◢█ ◢██◣ ███◣ ◢██◣ ◢██◣ 希望的男 █◥◤█ ._●█ █ █ █ █ 男人 █ █ █▄▄█ █ ╰ █ █▄▄█ █ █ (Road) █ █ █ █ █ <|█ █ █ █ █ 奇妙旅程要展 █ █ █ █ ███◤ █ █ ◥██◤ 主演:長谷川泰三 武蔵っぽいひと -Road of Gintama by gsaw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.105.91 ※ 編輯: godman362 來自: 140.123.105.91 (03/03 10:29)

03/03 10:55, , 1F
__asm mov eax,b;
03/03 10:55, 1F

03/03 10:56, , 2F
接上面取值__asm eax,dword ptr ds:[eax]
03/03 10:56, 2F

03/03 10:57, , 3F
取得b記憶體位置lea eax,b
03/03 10:57, 3F

03/03 10:59, , 4F
s大你好,可以請您解釋一下這段寫法嗎?
03/03 10:59, 4F

03/03 10:59, , 5F
因為我還看不是很懂....
03/03 10:59, 5F

03/03 11:00, , 6F
而且,可以直接寫"mov eax, b" 這段嗎?
03/03 11:00, 6F

03/03 11:00, , 7F
小弟我是在linux底下用gcc去編得,語法上可能不太一樣
03/03 11:00, 7F

03/03 11:00, , 8F
故不是很懂s大您的寫法...
03/03 11:00, 8F

03/03 11:19, , 9F
我只會寫VC的ASM,以上請無視
03/03 11:19, 9F

03/03 11:24, , 10F
http://tinyurl.com/3nmsq gcc 的 operand 是用 % 吧?
03/03 11:24, 10F
文章代碼(AID): #1DRlpVJD (C_and_CPP)
文章代碼(AID): #1DRlpVJD (C_and_CPP)