全6751文字
PR

 「本年最初に書いた拙文。1980年頃、HITAC8350のアセンブリ言語の解説書(箱に入っていた)を読み、数頁で挫折した(ような記憶がある)」

 SNS(ソーシャルネットワーキングサービス)に上記の一文を投稿したところ数人から直接応答があった。「拙文」は本欄で前回公開した一文を指す。

 「1980年頃」は筆者の学生時代(1979年4月~1985年3月)前半を意味する。40年ほど前のことになるため記憶はぼやけている。

 アセンブリ言語が話題になることは少ないものの、SNSへの書き込みや筆者へのメールを読むと皆さん色々と感じるところがあったようだ。

 今日でも新人にアセンブリ言語を教えている企業があると前回の拙文で書いた。実際に使っていると思われる方からの感想もいただいた。

 まずIT企業に勤める方の投稿を紹介する。ここから先、アセンブリ言語をアセンブラと書く。

 「性能と信頼性を最優先する制御系などでアセンブラは今でも使われている。特にメインフレームの場合、次の長所がある。処理時間をかなり正確に見積もれる(実行命令の種類に命令数をかければよい。ただしマイクロコードレベルによる変化はある)。異常終了(ABEND)などトラブル時にバグをダンプから一発で明確に特定できる。OSやクラスライブラリなどの環境依存はほぼ無し。同一アーキテクチャーの中にいるなら数十年たっても書き換え不要(仮想化による上位互換性がある)。例えるならばF1などの特殊用途のマニュアル車。適材適所が大事。さらに特殊な例として、航空管制システムが起源の大量トランザクション処理専用OSのz/TPFがある。TPFは高い処理性能と信頼性が特徴でかつてはアセンブラしか使用できなかった」

 次はIT企業で商品開発やプロジェクトマネジメントなど様々な仕事をされた方の発言である。

 「アセンブラは大得意です。汎用機でアセンブラを使っていた時代、すべてが手の内にあった気がします。それに対し、今は使い方のセンスで勝負する時代でしょうか。WindowsやLinuxのGUIがどのようなカラクリで動いているのか想像すらできませんので」

「4700、0000をご存じですか」

 アセンブラを過去に学んだ方からも投稿があった。まず米DEC(Digital Equipment)の日本法人に在籍された方である。

 「大学でゼミに配属されて最初の課題がHITAC M200アセンブラを使ったプログラミングでした。2問あって1問は簡単な整数算ですぐできたのですがもう1問はリスト処理の課題で難航しました。MC6809とかZ80とか知っていたので軽く考えていましたが何しろHITACにはスタックポインタがないし8KBを超えるプログラムはベースレジスターの書き換えが必要で当初はその意味すら分からなかったくらい。後にDECのVAXシリーズのアセンブラを学んで、なんて簡単なのだろうと感動しました。アセンブラは勉強になりました。数十行のプログラムを作るのは今日でもよい経験だと思います」

 次は米IBMの日本法人で汎用機まわりの技術者をしていた方である。

 「ハードウエアの内部構造で効率良く処理できるようにしていった結果、どのアーキテクチャーのコンピューターでもアセンブラは大同小異というのが現状です。コンピューターの内部を本当に理解しようと思ったらアセンブラから一歩進めてCPUの内部動作を制御できるマイクロプログラミングを学ぶとよいでしょうね。ただしコンピューターのチップがほぼインテルかARMのどちらかになった今、そんな仕事はほとんどないかもしれません」

 いきなり「4700、0000をご存じですか」と書いてきた人もいた。アセンブラを通り越してマシン語であり、筆者にはまったく分からない。