マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

デバッグのために

自作x86エミュレータデバッグのために自作OSから適当に選んだINT 0x50を呼び、エミュレータがこれを受け取ったらレジスタEAXが持ってる値を表示するようにした。アセンブリ言語でINT 0x50を呼び出してるわけだが、メモリのESP+4番地の値をEAXに入れている。これでC言語から呼び出すときに値を見たい変数を引数で渡したりしている。そしてわかったことは、x86エミュレータで実装していたORの中の1つの命令で、レジスタに値を代入しないといけなかったのに、メモリに値を入れていた。そりゃだめだわー。ということで修正した。まだバグがあるのでどんどん潰していきたい。