Borland C には、レジスタを一時変数に保存するために「C」コードで使用できる疑似レジスタ _AX、_BX、_FLAGS などがあります。
MSVCに相当するものはありますか? @AX、@BX などを試しましたが、コンパイラ (MSVC1.5) でエラー ('40' 認識されないシンボル) が発生しました。
16 ビットのプリブート アプリを開発していますが、. ありがとう。
Borland C には、レジスタを一時変数に保存するために「C」コードで使用できる疑似レジスタ _AX、_BX、_FLAGS などがあります。
MSVCに相当するものはありますか? @AX、@BX などを試しましたが、コンパイラ (MSVC1.5) でエラー ('40' 認識されないシンボル) が発生しました。
16 ビットのプリブート アプリを開発していますが、. ありがとう。
レジスタと変数の間で値を移動するだけであれば、疑似レジスタは必要ありません。例:
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
}