Qiitaで記事を初めて書きます。
IBMメインフレームのOSであるz/OSでのアセンブラープログラミングについて、Hints&Tips的なことを書こうかなと思っています。
まずは手始めに、アセンブラーってなに?から。
アセンブラーはアセンブル言語(またはアセンブリ言語)で書かれたソース(人が読めるテキスト形式)を機械語(バイナリーコード)に変換する(アセンブルする)プログラム(ソフトウェア)のことです。
厳密には上述の通り変換プログラムのことを指しますが(狭義)、アセンブル言語のことを指してアセンブラーと言うことも多々あるように思います(広義)。
例えば、「アセンブラーで書かれたユーザープログラム」とか「アセンブラーのソース」などですね。
この記事でもアセンブル言語の意味でアセンブラーという言葉を使います。
これってコンパイラーのことじゃないの?と思うかもしれませんが、基本的には同じです。
一言で言うと、アセンブラーは機械語(CPU命令)と1対1に対応している点がコンパイラー(高級言語)と異なっています。
直接CPUの命令をコーディングできるので、OSの制御により近い処理を記述できたりしますが、コンパイラーと比べて数段難しいと私は思います。
アセンブラーと聞くと古いというイメージを持つかもしれませんが、少なくともz/OSの世界ではアセンブラーで書かれたプログラムは今でもたくさん動いています。
たしかに新規の業務アプリケーションをアセンブラーで開発するということは少ないと思いますが、z/OSの世界では20~30年前に書かれたプログラムが今でも普通に動いていますので^^
あとは、業務アプリケーション全体がアセンブラーで書かれているということはほぼなくて、一部の制御系機能をアセンブラーで書いて、それ以外の大半の業務ロジックの部分は高級言語でということが多いでしょうか。
次回以降、実際のコーディング内容を少しづづ紹介していきたいと今のところは思っています。
アセンブラーの書き方をゼロから教科書的に書こうとは思っていないので、ある程度書いたことがあることが前提になってしまうかなと思います。