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

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

一般保護例外

実行形式ファイルのエントリポイントへのfar callをやめてretfによるレジスタの値の切り替えを行ったら、qemuのアボートがなくなり、変わりに一般保護例外が発生するようになった。それで下のブログエントリの

char* data = new char[segsize];

char* data = (char*)0;

に変えたところ、何故だかファイルを実行でき、文字列も取得できるようになっていた。後はnewで確保したアドレスをデータセグメントのベースにできればうまくいくわけだけど、一般保護例外。どうしたものか