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