アセンブラーで区分データセットのディレクトリー部を読み込む

区分データセットのディレクトリー部は、構造的には256バイト固定長の非ブロック化レコードの順次データセットと同じです。そのため、区分データセット内にどのようなメンバーが格納されているかを知るためにBSAMまたはQSAMに …

サブプール・ゼロ(0)の落とし穴

プログラムの外側に領域を確保して使用する際、GETMAINマクロで長さだけを指定すると領域はサブプール0に獲得されます。これ自体は何も問題ありませんし、使 …

アセンブラー学習用ひな型プログラム

これからメインフレーム・コンピューターのアセンブラー・プログラミングを覚えようとする方向けに、基本的な命令の動きやレジスターに読み込んだ内容やメモリーに書き込んだ内容を簡単に見るためのひな型プログラムを用意しました。JC …

ダンプ・リスト解析入門 ⑩:プログラム割込みによるABENDダンプ解析サンプル

一連の「ダンプ・リスト解析入門」シリーズの最後に、簡単なプログラムを使ってABENDダンプの解析を行います。アセンブラー・プログラムで起こりがちなS0C4 ABEND(記憶保護例外)です。故意にプログラムで0番地などに書 …

ダンプ・リスト解析入門(番外編):正しいアドレスなのにS0C4でABENDしている??

MVCL命令でデータの移動先アドレスや移動するデータの長さを間違えた場合、データの移動中にプログラム割り込みを起こしS0C4でABENDすることがあります。命令で指定したレジスターは、ABENDした時点の移動元や移動先の …

ダンプ・リスト解析入門 ⑨:ダンプ解析に関連するOSコントロール・ブロック⑤

タスクで実行中のプログラムがGETMAINマクロなどで獲得した仮想記憶域は、サブプール毎に獲得済みの領域とフリー領域が管理されています。これを行うためのコントロール・ブロックがSPQE、DQEおよびFQEです。 [cra …

ダンプ・リスト解析入門 ⑧:ダンプ解析に関連するOSコントロール・ブロック④

TIOT TIOT(Task Input/Output Table)は、ジョブを実行するためのJCLに定義されたDDステートメントのテーブルです。ジョブ名やステップ名などが格納されるヘッダー部と個々のDDステートメントの …

ダンプ・リスト解析入門 ⑦:ダンプ解析に関連するOSコントロール・ブロック③

LLE LLE(Load List Element)は、タスクがローディングしたロードモジュールを示すコントロール・ブロックです。タスクが最後にロードしたモジュールのLLEがTCBLLSフィールドからポイントされます。L …