我有一个非常简单的问题。我想编写一些直接在单个寄存器上运行的汇编代码(用于 SPARC),称为 %o1。我想做的就是用零初始化这个寄存器,然后用一些立即数递增它。问题是,如何从 C 应用程序以 %o1 输出结果。我的骨架看起来像这样:
void main()
{
int a;
asm volatile (
".text\n\t"
"mov 0, %o1 \n\t"
"add %o1, 1, %o1 \n\t"
"add %o1, 2, %o1 \n\t"
"add %o1, 3, %o1 \n\t"
);
// assign content of register %o1 somehow to variable a (a = %o1);
printf("%i\n", a);
}
所以问题是我如何将 %o1 的值(在计算结束时应该是 6)分配给变量 a 以便它可以打印在控制台上。