我正在尝试检索FLAGS寄存器,以便为我的“自制”操作系统(在Bochs上运行)打印出来。由于我没有找到强制将该寄存器打印到BOCHS日志文件的方法,我试图从我的代码中打印出来。
这是我的尝试。 (免责声明:我是一个完整的ASM菜鸟。很抱歉......)
u16int eflags()
{
asm volatile ("pushf");
asm volatile ("movw %esp-2, %eax");
}
当然不会编译。我怎样才能将语法变成正确的东西呢?
答案 0 :(得分:2)
pushf;
pop ax;
确保调用约定指定返回值在ax / eax寄存器中。