0

Borland C には、レジスタを一時変数に保存するために「C」コードで使用できる疑似レジスタ _AX、_BX、_FLAGS などがあります。

MSVCに相当するものはありますか? @AX、@BX などを試しましたが、コンパイラ (MSVC1.5) でエラー ('40' 認識されないシンボル) が発生しました。

16 ビットのプリブート アプリを開発していますが、. ありがとう。

4

1 に答える 1

1

レジスタと変数の間で値を移動するだけであれば、疑似レジスタは必要ありません。例:

int a = 4;
int b = 999;
__asm
{
    mov eax, a; // eax equals to 4
    mov b, eax; // b equals to eax
}
// b equals to 4 now

編集: フラグを変数にコピーして再びフラグに戻すには、LAHFおよびSAHF命令を使用できます。例:

int flags = 0;
__asm
{
  lahf;
  mov flags, eax;
}
 flags |= (1 << 3);
__asm
{
  mov eax, flags;
  sahf;
  // 4th bit of the flag is set
}
于 2012-06-05T04:42:21.700 に答える