我想在我的 C 程序中编写一个非常简单的内联汇编例程,然后将本地寄存器 %l0 - %l7 设置为不同的值。我尝试了以下简单的方法:
asm volatile (
".text\n\t"
"mov 0, %%l0 \n\t"
"mov 1, %%l1 \n\t"
"mov 2, %%l2 \n\t"
"mov 3, %%l3 \n\t"
"mov 4, %%l4 \n\t"
"mov 5, %%l5 \n\t"
"mov 6, %%l6 \n\t"
"mov 7, %%l7 \n\t"
);
不幸的是,汇编器告诉:每条指令的操作数都是非法的。有人能很好地指出我如何正确地将立即值传递给 SPARC 汇编器吗?
非常感谢!
编辑:谢谢克里斯,我做了你建议的改变,但 Sparc 编译器仍然告诉一些关于非法操作数的东西......