Hatena::ブログ(Diary)

七誌の開発日記(旧) このページをアンテナに追加 RSSフィード Twitter

新ブログ Twitter OneDrive Wiki

2010-02-24

[][]pushf/popf

VC++でビルドしたバイナリをMINIXで動かしていて、strchr()で落ちることに気付きました。strchr()は組み込み関数として特別扱いされているため、C言語で記述してもVC++が受け付けてくれません。オプションで組み込み関数を無効にしてもダメです(VC++2005まではできていたらしいです)。ACK(MINIXのコンパイラ)用のアセンブリを手動でMASMに変換して使用していました。

よく見ると32bitコードなのにpushf/popfを使用しています。ACKではサフィックスのルールがMASMとは異なっているようです。これらをpushfd/popfdにしたところ、問題なく動くようになりました。

Connection: close