0

我正在尝试检索 FLAGS 寄存器,以便为我的“自制”操作系统(在 Bochs 上运行)打印出来。由于我没有找到强制将该寄存器打印到 BOCHS 日志文件中的方法,因此我试图从我的代码中将其打印出来。

这是我的尝试。(免责声明:我完全是 ASM 菜鸟。对此感到抱歉......)

u16int eflags()
{
  asm volatile ("pushf");
  asm volatile ("movw %esp-2, %eax");
}

当然它不会编译。请问我怎样才能把语法变成正确的东西?

4

1 回答 1

2
pushf;
pop ax;

确保调用约定指定返回值在 ax/eax 寄存器中。

于 2012-11-21T18:28:29.700 回答