我有一個非常簡單的問題。我想編寫一些直接在單個寄存器上運行的彙編代碼(用於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的變量a的值(這應該通過的 計算結束是6),以便它可以被印刷在控制檯上。
謝謝你,但在這種方式彙編器/編譯器使用他們選擇的註冊。我希望將註冊表綁定到%o1。這是否有可能? – Reini 2011-03-10 14:14:23
更新了我的答案 – blaze 2011-03-10 16:02:22