2
我可以寫這樣的事情:ARM內聯彙編 - 在x86的內聯彙編指定單個寄存器作爲約束
asm ("cpuid"
: "=a" (_eax),
"=b" (_ebx),
"=c" (_ecx),
"=d" (_edx)
: "a" (op));
所以在配套配件的限制,而不是隻寫「= R」,讓編譯器選擇寄存器,我可以說我想使用哪個特定的寄存器(=例如使用%eax)
我怎樣才能做到這一點的ARM組裝? 的ARM GCC組件食譜http://www.ethernut.de/en/documents/arm-inline-asm.html狀態,我可以例如使用約束 「R」爲通用一個寄存器R0-R15 「W」爲VFP浮點寄存器之一S0-S31
但我怎麼能限制一個操作數例如完全到S1?或特定的通用寄存器?
謝謝!
什麼問題,能解決的ARM知道哪些註冊特定的操作數被放置在? ARM上的哪些指令_implicitly_修改了寄存器(除了前/後遞增/遞減加載/存儲操作,存在特定的約束)?在這方面,ARM和x86是完全不同的...... x86上的必要條件不在ARM上。 – 2013-05-21 19:55:54
@FrankH。系統調用?這實際上是我發現這個問題的方式。 – Duc 2016-06-24 21:51:55