MSVC中的伪寄存器

Borland C具有伪寄存器_AX,_BX,_FLAGS等,可用于’C’代码以将寄存器保存到临时变量。

有没有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 

编辑:要将标志复制到变量并再次返回标志,可以使用LAHFSAHF指令。 例:

 int flags = 0; __asm { lahf; mov flags, eax; } flags |= (1 << 3); __asm { mov eax, flags; sahf; // 4th bit of the flag is set }