フォーマットについてまだ完全では無いですがある程度読み方がわかってきたのでその内容をまとめます。おける実行ファイルのフォーマットとは異なります。ファイルフォーマットの資料を、と探すと以下のようなものが見つかります。files見つかるのですが、これだけだとあまりピンと来ないのでいくつかサンプルの実行ファイルを作成、解析して内容を理解していきます。フォーマットの雰囲気だけを掴むために、小さなプログラムをアセンブリ言語で用意しました。終了するだけのプログラムです。(詳細は以前のポスト)。startコンパイル、リンクして実行ファイルを作成し、実行できることを確認します。(判断の仕方は後述)。呼んでいるようなので、ここでもそれを踏襲しようと思います。バイトの連なりにしか過ぎず、頑張れば理解できそうな気がしてきますね。フォーマットの詳細を見ていきます。実行ファイルを理解する上で何よりも重要なのは先頭のヘッダ部分と言っていいと思います。いうかこれが全て理解できれば実行ファイルが読めるようになったと言ってもいいんじゃないかと。ヘッダが含む情報とその位置、サイズを以下のテーブルにまとめました。いうサイズを表します。わかりやすい項目たちまずはヘッダに含まれる項目のうちわかりやすいものについて、実際の実行ファイルを見ながら確認してみます。位置を付せたものが下記になります。ヘッダ領域になります。ヘッダ領域だとわかります。実行ファイルではプログラム実行に設定が必須といえるこれらのレジスタについて初期値が与えられます。レジスタについては指定されておらず、プログラム中で必要に応じて指定する必要があるようです。初期化のような処理が走っているはず。よるものなのですがそれに関してはすぐに下で見ます。処理を行う必要があります。「実行時、プログラム開始前にセグメント値の調整を行う」ことです。いうのが存在するので、それをプログラム開始前に解決するという作業になります。