SSブログ

孤独へ向って突っ走れ(7) [  PC-98x1(補完計画)]

前回の記事の続き。

ウィキペディアに「EXEフォーマット」というページがあった。はじめは誤ってPEとかいうほうを調べ始めてしまったが、これはDOS時代のフォーマットではなく後のWindowsでの拡張フォーマットだった。DOS時代のEXEファイルの先頭には以下のヘッダがあるそうだ。

typedef struct _IMAGE_DOS_HEADER {
WORD e_magic; /* 00: MZ Header signature */
WORD e_cblp; /* 02: Bytes on last page of file */
WORD e_cp; /* 04: Pages in file */
WORD e_crlc; /* 06: Relocations */
WORD e_cparhdr; /* 08: Size of header in paragraphs */
WORD e_minalloc; /* 0a: Minimum extra paragraphs needed */
WORD e_maxalloc; /* 0c: Maximum extra paragraphs needed */
WORD e_ss; /* 0e: Initial (relative) SS value */
WORD e_sp; /* 10: Initial SP value */
WORD e_csum; /* 12: Checksum */
WORD e_ip; /* 14: Initial IP value */
WORD e_cs; /* 16: Initial (relative) CS value */
WORD e_lfarlc; /* 18: File address of relocation table */
WORD e_ovno; /* 1a: Overlay number */
WORD e_res[4]; /* 1c: Reserved words */
WORD e_oemid; /* 24: OEM identifier (for e_oeminfo) */
WORD e_oeminfo; /* 26: OEM information; e_oemid specific */
WORD e_res2[10]; /* 28: Reserved words */
DWORD e_lfanew; /* 3c: Offset to extended header */
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;

ところが、英語のサイトではオフセット1BHまでがEXE headerとして載っている。つまり上のe_ovnoまでだ。なんで異なるんだ。

私が知りたいのは、EXEファイルのオフセットいくつからCPUへの命令が格納されているかということだが、情報に行き当たらない。上記のヘッダのすぐ次とは限らないではないか。それに、ネット検索でちゃんと"MS-DOS"とキーワードを入れているのにPEばっかりヒットする。

そのうちにおじさんは情けなくも疲れてきた。人は疲れると短絡的思考に走る。どっかにEXEファイルの逆アセンブラはないだろうか。おじさんがどこからどこまでがヘッダか知らなくてもとにかく勝手に正しい場所を逆アセンブルしてくれるユーティリティはないだろうか。おじさんはMicrosoft Visual Studioを持っている。逆アセンブラくらい入っているだろ。試してみた。

エラー:ファイル 'T.EXE' が見つからないか、または PE ファイルではありません

またPEかよ!
加トちゃんPE!

VECTORのサイトで逆アセンブラを検索。Z80用。あれ・・・
NEフォーマットおよび、PEフォーマットの実行ファイルを解析する・・・はう・・・
6809の逆アセンブラです・・・そうですか、頑張ってください・・・

おじさんはもう疲れてだめだ。MASM6.0なら持ってるよ。これなら時代的にPEじゃないし、8086用だよ。これでアセンブルはできるけど、必要なのは逆アセンブラ。
tt04.png
逆アセンブラは、なんか入ってないみたいだ。

SYMDEB.EXEでも逆アセンブルできるという情報が。ところがねえ、今どき、このSYMDEB.EXEが探しても見つからない。

清十郎氏が作られた、DIASというSYMDEB的なソフトがあるという。
試してみた。もちろんWindows10上ではなくPC-98エミュ上で。

tt05.png
わあい!何か出て来たぞ。
ニーモニックだぁ。
やっとスタートラインに立ったぞ。

そういえばはるか昔にバカボンのパパが、パカランパカランやっと隣町に着いたぞとか何とか言わなかったっけ。今のおじさんはバカボンのパパと同レベルだ。

コメント(0) 

コメント 0

コメントの受付は締め切りました