01.はじめに(S/370アセンブラー講座)
OSやミドルウェアの出口ルーチン、システム系ソフトウェアと言った物を除けば、今ではアセンブラー言語でプログラミングすることはほとんどなくなりましたし、その必要性も薄くなりました。CPUパワーや仮想メモリーが小さかった初期のメインフレーム・システムではパフォーマンスの観点でもアプリケーション・プログラムでさえアセンブラー言語で書かれる例は少なくなかったのですが、今やそのような理由でアセンブラーを採用することはまずありません。しかしMVSを含めてシステムの基盤を体系的に理解し、その構成や構造、機能や動作を少しでも深く掘り下げる、あるいはもっと現実的に「何かいい方法はないか」を解決するためにもアセンブラー言語によるプログラミングの基本的な知識は知っておいて決して損はありません。
とかくアセンブラーと言うと毛嫌いされがちですが、互換アーキテクチャを含めてS/370アーキテクチャをベースとするCPUの機械命令はWindowsなどで使われるIntelのx86アーキテクチャに比べれば割りと理解しやすく習得も容易であると考えます。ただ入門書や虎の巻みたいなものがなかなか無く(探せば中古であったりはする)、頼れるのがメーカーから出ているアーキテクチャの解説書(CPU命令のリファレンス)かセルフスタディの自習書やCDキットしかありません。命令のリファレンス・マニュアルは必須資料ですが、初心者にわかるプログラムの書き方までは説明されていません。このカテゴリーではメインフレームにおけるアセンブラー言語とプログラミングに関する基本的な解説を順次記載して行きます。実用的なプログラミング・テクニックはカテゴリーを改めて紹介しようと思います。
一通りの命令がわかり、セルフスタディも取りあえず終わっているレベルの方は「OS/390アセンブラーハンドブック」を是非ご覧下さい。ハンドブック見たが何もわからん、と言う方はこのカテゴリーの記事から始めて下さい。
CPUの機能や命令のリファレンスは、「IBM日本語マニュアル・ダウンロード」からダウンロードできます。(2008年10月現在)
マニュアル検索に進み、キーワードに「z/Architecture解説書」と入力して検索してください。pdf形式のマニュアル(SA88-8773-00)がヒットするはずです。
ここに記載されている内容は最新の64ビット命令やESA/390にて実装された1部の命令などを除けば、富士通、日立にも共通して利用できます。このカテゴリーで紹介するのもIBM、富士通、日立に共通する基本的なものにする予定です。なお富士通ユーザーなら「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のマニュアル・サイトでの入手ができません。IBMユーザーの方は担当のIBM営業さんに問い合わせてみるといいかも知れません。最新のz/Architecture版があるかも知れません。
CPU命令リファレンスと共に必要なのがアセンブラー言語のマニュアルですが、IBM社のものは残念ながら翻訳されていません。
- High Level Assembler for z/OS & z/VM & z/VSE V1R6 Programmer’s Guide (SC26-4941)
- High Level Assembler for z/OS & z/VM & z/VSE V1R6 Language Reference (SC26-4941)
英文しかありませんがこの2冊を必要に応じて見ればいいでしょう。ここにあります。「Shelf: High Level Assembler for z/OS & z/VM & z/VSE V1R6 (HLASM V1R6)」
MSPやVOS3のマニュアルが手に入るならそれを参考にしてもいいです。JCLやアセンブルオプションなどに多少の違いがありますが、言語仕様は概ね同じですから(MSPとVOS3のアセンブラーはMVS/XAレベルのアセンブラーとほぼ互換)ガイドおよびリファレンスとしては実用上問題ないです。
Comment from BPII
Time 2011年10月7日 at 17:54
z/Architecture Reference Summary(英語版)が以下にありました。
http://www-01.ibm.com/support/docview.wss?uid=isg29c69415c1e82603c852576700058075a&aid=1
z/Architecture Reference Summaryでインターネット検索すると2007年版(SA22-7871-03)が上に表示されるかも知れませんが、2010年版(SA22-7871-06)が上記にあります。