[問題] 在c++中使用__asm的限制?

看板Programming作者 (讓我再現實一點吧。)時間17年前 (2008/05/17 00:51), 編輯推噓4(406)
留言10則, 4人參與, 最新討論串1/1
請問一下板上的強者們 我如果想要在C++中使用組語 該注意那些事項呢 (因為我是初學,可否請前輩指點該用什麼關鍵字找相關的資料?) 例如我一直找不到在__asm裡,可以使用的暫存器有那些 (還是都可以使用,Compiler會自動把會被contaminated register先存起來?) 兩段__asm中間,要怎麼讓register不被中間的C code更改到 (應該自己存下來嗎?) 如果是在for loop裡,要怎樣在__asm中做break或是continue的動作? (我有看到網路上的寫法是用別的__asm區塊做label..這是正解嗎?) -- 如果版眾很忙的話 可以提示幾個關鍵字讓我知道 資料要怎麼找嗎@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.179.152

05/17 08:24, , 1F
VC++(gcc) inline assembly
05/17 08:24, 1F

05/17 16:40, , 2F
我只知道gcc的inline asm很難懂...
05/17 16:40, 2F

05/17 16:41, , 3F
這表示VC比較聰明嗎!?
05/17 16:41, 3F

05/17 17:13, , 4F
gcc 的 inline asm 是為了讓你能提供最精
05/17 17:13, 4F

05/17 17:13, , 5F
確的資訊給 compiler,避免 compiler 把所
05/17 17:13, 5F

05/17 17:13, , 6F
有 register 都存起來。
05/17 17:13, 6F

05/17 19:57, , 7F
tin說的好~真的蠻有感覺的
05/17 19:57, 7F

05/18 14:20, , 8F
剛剛用BCB測試一下 發現register要自己存
05/18 14:20, 8F

05/18 14:21, , 9F
例如 __asm mov ebp,0 這樣stack pointer
05/18 14:21, 9F

05/18 14:21, , 10F
被破壞掉了 然後程式就當掉了...
05/18 14:21, 10F
文章代碼(AID): #18BRkDUz (Programming)