我想了解一些彙編代碼:彙編代碼「movl%1,%% ebx」是什麼意思?
movl $244, %eax
movl %1, %%ebx
第一個手段把數字244到寄存器EAX,但到底是什麼第二平均?在此先感謝您的幫助
P.S see the difference %1 and $244 and %eax and %%ebx
我想了解一些彙編代碼:彙編代碼「movl%1,%% ebx」是什麼意思?
movl $244, %eax
movl %1, %%ebx
第一個手段把數字244到寄存器EAX,但到底是什麼第二平均?在此先感謝您的幫助
P.S see the difference %1 and $244 and %eax and %%ebx
movl %1, %%ebx
movl
將第一個參數移到第二個參數。第一個參數是變量%1
。第二個參數是寄存器%%ebx
。編譯器將雙百分號更改爲單百分號所以你也可以一樣好寫:
movl %1, %ebx
烏姆的環境中使用,其實我不相信你可以刪除額外的百分比(你會得到「操作數在%-letter後丟失」)。如果你正在使用擴展的asm(這個OP如%1所示),你必須使用'%% ebx'。 %eax消失的原因是OP從其他地方複製(即不擴展asm)。 – 2014-10-08 06:51:21
%1所使用的GCC內嵌彙編指定參數。 可以找到關於內聯彙編這裏一些提示:
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#s4
請注意,最新的gcc [docs](https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html)會詳細介紹所有這些內容。 – 2014-10-08 06:45:55
我重新打,因爲你忘了告訴,這個彙編代碼是內聯彙編 – VGE 2011-04-07 19:02:39