我學習GCC擴展ASM選項不可能約束 - 非特異性GCC消息
asm goto (
"clc\n"
"lo:\t"
"lods\t%[ax]\n\t"
"lea\t%[wc](%[base], %[off], %[k]), %[la]"
"adc\t%[ax], (%[la])\n\t"
"inc\t%[off]\n\t"
"jnz\tlo\n\t"
"jnc\t%l[nocarry]\n"
:
: [base] "d" (th), [oz] "S" (oz), [wc] "I" (wc*sizeof(uInt)),
[k] "N" (sizeof(uInt)), [la] "b" (0), [ax] "a" (0), [off] "c" (-wc)
:
: nocarry
);
而且具有編譯:
> impossible constraint in 'asm'
試過一個接一個發表意見的所有限制,相同的結果。 請幫忙!
gcc版本4.6.1(Ubuntu的/ Linaro的4.6.1-9ubuntu3),i686的Linux的GNU的(32位), 內核3.0.0-14泛型
+1對於基於模糊和不明確問題的可靠猜測 – hirschhornsalz 2011-12-20 12:18:44
感謝您提供有用的建議。 'wc'是任意精密ariphmetic類的「長度」成員,其原因是非靜態的。 但實際上我決定改變方法,這是當前(工作:)變體: – leventov 2011-12-20 19:04:07