00.はじめに

OSやミドルウェアの出口ルーチン、システム系ソフトウェアと言った物を除けば、今ではアセンブラー言語でプログラミングすることは殆ど無くなりその必要性も薄くなりました。CPUパワーや仮想メモリーが小さかった初期のメインフレーム・システムでは、パフォーマンスの観点からもアプリケーション・プログラムでさえアセンブラー言語で書かれる例は少なくなかったのですが、今やそのような理由でアセンブラーを採用することはまずありません。しかしながら、z/OS(MVS)を含めたシステムの基盤を体系的に理解し、その構成や構造、機能や動作を少しでも深く掘り下げる、あるいはもっと現実的に「何かいい方法はないか」を解決するためにも、アセンブラー言語によるプログラミングの基本的な知識は知っておいて決して損はありません。
アセンブラーはとかく毛嫌いされがちですが、互換アーキテクチャを含めてS/370アーキテクチャーをベースとするCPUの機械命令は、Windowsなどで使われるIntelのx86アーキテクチャに比べれば割りと理解しやすく習得も容易であると考えます。ただ、入門書や虎の巻みたいなものがなかなか無いので(探せば中古であったりはする)頼れるのはメーカーから出ているアーキテクチャーの解説書(CPU命令のリファレンス)かセルフ・スタディの自習書やCDキットなどしかありません。機械命令のリファレンス・マニュアルは必須資料ですが、初心者にもわかるようなプログラムの書き方までは説明されていません。このカテゴリーではメインフレームにおけるアセンブラー言語とプログラミングに関する基本的な解説を順次記載して行きます。実用的なプログラミング・テクニックはカテゴリーを改めて紹介しようと思います。

一通りの命令がわかり、セルフ・スタディも取りあえず終わっているレベルの方は、「遊ぶエンジニア」のサイトに掲載されている「OS/390アセンブラーハンドブック」を是非ご覧下さい。ハンドブック見たが何もわからん、と言う方はこのカテゴリーの記事から始めてみて下さい。
CPUの機能や命令の日本語リファレンスである「z/Architecture解説書」は「arteceed.squares.net-IBM z/OS関連日本語マニュアル書庫」からダウンロードできます。最新版(英語のみ)は米国IBMのIBM Resource Link Library(要IBM id)から入手できます。(IBM Zから適当なプロセッサー機種を選び、key resourcesからPublicationsを選び、Titleから「z/Architecture Principles of Operation」を探す)

このカテゴリーに掲載されている内容は、最新の64ビット命令やESA/390にて追加実装された命令の1部などを除けば富士通のMSPと日立のVOS3にも共通の知識として利用できます。なお、富士通ユーザーなら「FACOM Mシリーズ ハードウェア機能説明書Ⅰ(命令編)」および「FACOM Mシリーズ ハードウェア機能説明書Ⅱ(機能編)」を、日立ユーザーなら「HITAC Mシリーズ 処理装置(M/64モード)」あるいは「HITAC Mシリーズ 処理装置(M/ASAモード)」をメーカーから入手できると思います。日立のマニュアルは初心者にも分かり易かった印象があります。(筆者は普段は日立のマニュアルを使い、細かく調べたい時にIBMのマニュアルを使っていました)
IBMのマニュアルは内容も濃いので印刷するとかなりの量ですが無料で手に入るのが魅力です。他にも、昔のアセンブラー・プログラマーは「システム370便覧」(N:GX20-1850)「エンタープライズ・システム/370便覧」(N:GX20-0406-00)といったCPUリファレンスの超要約された小冊子も持っていました。これから始める方にもとても有用なものですが、今となっては日本語版は新しく入手できません。英語版であれば、前述のIBM Resource Link Libraryから最新版の「z/Architecture Reference Summary」が入手できます。

CPU命令リファレンスと共に必要なのがアセンブラー言語のマニュアルですが、IBM社のものは残念ながら翻訳されていません。

  • High Level Assembler for z/OS & z/VM & z/VSE V1R6 Language Reference (SC26-4940)
  • High Level Assembler for z/OS & z/VM & z/VSE V1R6 Programmer’s Guide (SC26-4941)

英語版のみですがこの2冊を必要に応じて見ればいいでしょう。IBM Documentationの「High Level Assembler and Toolkit Feature 1.6.0」にて参照(必要ならwebブラウザーの翻訳機能を使用)とダウンロードができます。MSPやVOS3のマニュアルが手に入るならそちらを参考にしてもいいでしょう。JCLやアセンブル・オプションなどに多少の違いがありますが、言語仕様は概ね同じですから(MSPとVOS3のアセンブラーはMVS/XAレベルのアセンブラーとほぼ互換)アセンブラー言語リファレンスおよびガイドとしては実用上問題ないです。

2023年4月、昔の「システム/370便覧」の復刻版的なものとして「z/Architecture&z/OS 適用業務プログラムのためのアセンブラー・プログラミング便覧」を刊行しました。入門書や解説書ではないので、これを読んでも機械命令やアセンブラー言語が学べるものではありませんが、解説書やマニュアルなどと併せてハンドブックとして利用できます。