JJ プログラム仙人修行日誌

2024/04/20 からは、プログラム仙人修行の日誌を書いてます。

CASL仕様(2005年春版)

試験センターから発表されているCASL仕様をブログに入れました。入力ミスがあるかも知れませんので,使用にあたっては,試験センターからの資料を確認して下さい。これは一部です。
全文→ CASL仕様(2005年春版)@末広ページ

1.1 ハードウェアの仕様

(1) 1 語は16 ビットで,そのビット構成は,次のとおりである。

 



上位8ビット 下位8ビット
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
                               
 ↑符号(負:1,非負:0)

斎藤注:上の表の中の 15〜0 は,ビット番号というコメントがついています。

(2) 主記憶の容量は 65536 語で,そのアドレスは 0 〜 65535 番地である。

(3) 数値は,16 ビットの 2 進数で表現する。負数は,2 の補数で表現する。

(4) 制御方式は逐次制御で,命令語は 1 語長又は 2 語長である。

(5) レジスタとして,GR(16 ビット),SP(16 ビット),PR(16 ビット),FR(3 ビット)の 4 種類がある。

 GR(汎用レジスタ,General Register)は,GR0 〜 GR7 の 8 個があり,算術,論理,比較,シフトなどの演算に用いる。このうち,GR1 〜 GR7 のレジスタは,指標レジスタ(index register)としてアドレスの修飾にも用いる。

 SP(スタックポインタ,Stack Pointer)は,スタックの最上段のアドレスを保持している。

 PR(プログラムレジスタ,Program Register)は,次に実行すべき命令語の先頭アドレスを保持している。

 FR(フラグレジスタ,Flag Register)は,OF(Overflow Flag),SF(Sign Flag),ZF(Zero Flag)と呼ぶ 3 個のビットからなり,演算命令などの実行によって次の値が設定される。これらの値は,条件付き分岐命令で参照される。

 



OF 算術演算命令の場合は,演算結果が−32768 〜 32767 に収まらなくなったとき1 になり,それ以外のとき 0 になる。論理演算命令の場合は,演算結果が 0 〜 65535 に収まらなくなったとき 1 になり,それ以外のとき 0 になる。
SF 演算結果の符号が負(ビット番号 15 が 1)のとき 1,それ以外のとき 0 になる。
ZF 演算結果が零(全部のビットが 0 )のとき 1,それ以外のとき 0 になる。

(6) 論理加算又は論理減算は,被演算データを符号のない数値とみなして,加算又は減算する。