プログラミングとアーキテクチャ 第2章
VAX-11限定の内容ではなく、コンピュータの構造全体の話。CASLを思い出す。
命令の種類とか
- データ転送系
- 算術演算系
- 論理演算系
- 比較命令系
- コントロール命令系(JUMPなど)
命令の実行サイクルとか
- PCの指している命令を取得してPCをインクリメント
- 命令のデコード
- オペランドの取得
- 実行
- 結果のストア
「高校のときに習ったCASLまんまじゃん」と思える。実際はCASLが似せているんだろうけど。
今思うとCASL全然だめジャンとか思ってた自分が情けないなぁ。仮想マシンの力を知らなかったしなぁ。プログラミングコンテストのCASL作る部門とか出ればよかった。CASLを発展させればParrotとかになるんだよと当時の自分に教えてあげたいorz
VAX(Virtual Address eXtension)のデータ形式
VAXってVirtual Address eXtensionの略だったのか。PDP-11のアドレス能力を拡張したらしい。
整数は
- BYTE(8bit)
- WORD(16bit)
- LONGWORD(32bit)
- QUADWORD(64bit)
浮動小数点はこんな感じになってる。IEEE 754 とは異なる。
31 16 15 14 07 06 00 仮数部(下位) 符号 指数部 仮数部(上位)
ってか、IEEE 754が1985年(同い年だ!)でこの本が翻訳で1984だから、IEEE 754 な分けないか。でも、仮数部の上位と下位を分けて表現しているのは何でだろう。本には「ビット0から6が仮数部の上位つまり重要部分を表す」とか書いてある。下位16ビットだけでも精度を必要としていない場合は利用できるからかな?
文字コードはASCII。文字列の長さは0-65535バイトまで。
10進数字列は二つあって、数字列形式という1数字が1バイトになるものと、パック10進形式がある。パック十進は1バイトに二桁の10進数を納める。パック10進形式も高校のときにやったなぁ。「アンパック10進形式で150は?アンパック10進形式をパック10進に変換せよ」とか、テストで出た気がする。
VAXのアセンブリ言語
データ形式が終わったところでアセンブリ。ここからが面白いのだろうけど、もう眠いので寝る。体は大切に。