作者WinVNC (讓我再現實一點吧。)
看板Programming
標題[問題] 在c++中使用__asm的限制?
時間Sat May 17 00:51:24 2008
請問一下板上的強者們
我如果想要在C++中使用組語
該注意那些事項呢
(因為我是初學,可否請前輩指點該用什麼關鍵字找相關的資料?)
例如我一直找不到在__asm裡,可以使用的暫存器有那些
(還是都可以使用,Compiler會自動把會被contaminated register先存起來?)
兩段__asm中間,要怎麼讓register不被中間的C code更改到
(應該自己存下來嗎?)
如果是在for loop裡,要怎樣在__asm中做break或是continue的動作?
(我有看到網路上的寫法是用別的__asm區塊做label..這是正解嗎?)
--
如果版眾很忙的話
可以提示幾個關鍵字讓我知道
資料要怎麼找嗎@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.121.179.152
1F:推 scaaa:VC++(gcc) inline assembly122.121.184.139 05/17 08:24
2F:推 meltice:我只知道gcc的inline asm很難懂... 60.245.84.43 05/17 16:40
3F:→ meltice:這表示VC比較聰明嗎!? 60.245.84.43 05/17 16:41
4F:推 tinlans:gcc 的 inline asm 是為了讓你能提供最精 61.230.225.39 05/17 17:13
5F:→ tinlans:確的資訊給 compiler,避免 compiler 把所 61.230.225.39 05/17 17:13
6F:→ tinlans:有 register 都存起來。 61.230.225.39 05/17 17:13
7F:→ final01:tin說的好~真的蠻有感覺的 61.224.206.81 05/17 19:57
8F:推 meltice:剛剛用BCB測試一下 發現register要自己存 60.245.105.208 05/18 14:20
9F:→ meltice:例如 __asm mov ebp,0 這樣stack pointer 60.245.105.208 05/18 14:21
10F:→ meltice:被破壞掉了 然後程式就當掉了... 60.245.105.208 05/18 14:21