如何从函数返回FLAGS寄存器?

时间:2012-11-21 18:14:18

标签: assembly

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

这是我的尝试。 (免责声明:我是一个完整的ASM菜鸟。很抱歉......)

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

当然不会编译。我怎样才能将语法变成正确的东西呢?

1 个答案:

答案 0 :(得分:2)

pushf;
pop ax;

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