私は非常に単純な問題を抱えています。%o1 と呼ばれる単一のレジスタを直接操作する (SPARC 用の) アセンブラ コードを書きたいと思います。私がしたいのは、このレジスタをゼロで初期化し、いくつかの即値でインクリメントすることだけです。問題は、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 に割り当てて、コンソールに出力できるようにする方法です。