Skip to main content

IAR Embedded Workbench for Arm 9.70.x

自動変数を特定のレジスタに配置する

このセクションの内容:

ローカル変数を特定のレジスタに配置する必要がある場合は、次の構文を使用できます。

register type var asm("reg") [= init];

通常、これらの変数はインラインアセンブラ文で使用されます。

または、@演算子と#pragma locationディレクティブを次のように使用できます:#pragma location=r9 または @r9データと関数のメモリ配置制御を参照)。コンパイラは、変数の存続期間を通じてレジスタが自由に使用可能であることを要求することに注意してください。

以下に例を示します。

int test(void)
{
  register int myVar asm("r10");
  asm volatile("// do something with %0" : "=r"(myVar));
  return myVar;
}