0

「自作」OS(Bochsで実行)用にFLAGSレジスタを印刷するために、FLAGSレジスタを取得しようとしています。そのレジスタを強制的に 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 に答える