前回の授業では、COMET IIのシミュレーターWCASL IIを実際に触れて、その使い方を学習
した。今後の授業に生かして欲しい。
今まで、学習したCOMET IIの命令は、次の通りである。これを思い出して、本日の学習内
容と絡めて、理解を深める必要がある。
- アセンブラ命令
       
- 
- 
| 開始 | START | プログラムの先頭を示し、入口名と実行開始番地を定義 |  | 終了 | END | プログラムの終わりを明示 |  | 領域確保 | DS | プログラムで使うメインメモリーを予約 |  | 定義 | DC | メインメモリーの初期値設定 |  
 
 
 
-  機械語命令
       
- データ転送命令
	
| データ転送 | LD | メインメモリーやレジスターの内容を汎用レジスタに転送 |  | データ転送 | ST | 汎用レジスタのデータをメインメモリーへ転送 |  | アドレス転送 | LAD | 実効アドレスを汎用レジスターへ転送 |  
 
 
- 算術、論理演算
	
| 算術加算 | ADDA | 1語のデータを符号付き整数と見なし、加算を行う。 |  | 論理加算 | ADDL | 1語のデータを符号無し整数と見なし、加算を行う。 |  | 算術減算 | SUBA | 1語のデータを符号付き整数と見なし、減算を行う。 |  | 算術減算 | SUBL | 1語のデータを符号無し整数と見なし、減算を行う。 |  | 論理積 | AND | 1語のデータのビット毎の論理積の演算を行う。 |  | 論理和 | OR | 1語のデータのビット毎の論理和の演算を行う。 |  | 排他的論理和 | XOR | 1語のデータのビット毎の排他的論理和の演算を行う。 |  
 
 
 
本日の学習では、フラグレジスターが重要な役割を果たす。それは、次のようなものであっ
たことを思い出して欲しい。
- レジスターとはCPUにある記憶領域である。
- フラグレジスターとは、データや演算結果の状態を示すレジスターである。
- 演算結果により、0か1が設定される。フラグ(flag)とは、旗のことで、サッカー
       の試合で、反則があると旗を上げるのと同じである。
- COMET IIには、3つのフラグレジスターが用意されている。それぞれは、1ビット
       で0か1の値である。
 
| サインフラグ | (Sign Flag) | SF | 第15ビットが1の時、SF=1となる。 |  | ゼロフラグ | (Zero Flag) | ZF | 全てのビットが0の時、ZF=1となる。 |  | オーバーフローフラグ | (Overflow Flag) | OF | 演算結果などが16ビットを越
   えた場合、OF=1となる。 |  
 
 
CASL IIで使われる整数は、符号付きと符号無しがある。符号付きと符号無し整数の違い
は、次の通りである。なぜこのようになるか、忘れた者は以前のノートを見よ。
 
  
表 1:
符号付きと負号無し整数
| ビットパターン | 符号無整数 | 符号有整数 | 
| 0000000001010011 | (83)  | (83)  | 
| 1000000001010011 | (32851)  | (-32685)  | 
|  |  |  | 
 
 
本日は、比較とジャンプ命令を学習する。これは、セットで使われることが多く、数の比
較を行い、その結果を受けて、処理の実行を変える。FORTRANやC言語では、
IF(A.GT.B)GO TO 200   if(a>b)goto next_step;
と書かれる構文とにている。A.GT.Bが比較命令で、IFとGO TOがジャンプ命令に相当する。
CASL IIの比較とジャンプの命令は、次の通りである。
- 整数の大小の比較命令を学習する。比較の結果は、フラグレジスタ(FR)を設定す
      ることで示される。
      
| 算術比較 | CPA | データは符号付き整数と見なし、比較を行う。 | 
|---|
 | 論理比較 | CPL | データは符号無し整数と見なし、比較を行う。 | 
|---|
 
 
 
- フラグレジスタ(FR)の値に基づいて、処理を分岐させる。
      
| 正分岐 | JPL | SFとZFがともに0の時、指定の実効アドレスに分岐 | 
|---|
 | 負分岐 | JMI | SFが1の時、指定の実効アドレスに分岐 |  | 非零分岐 | JNZ | ZFが0の時、指定の実効アドレスに分岐 |  | 零分岐 | JZE | ZFが1の時、指定の実効アドレスに分岐 |  | オーバーフロー分岐 | JOV | OFが1の時、指定の実効アドレスに分岐 |  | 無条件分岐 | JUMP | 無条件に、指定の実効アドレスに分岐 |  
 
 
ホームページ: 
Yamamoto's laboratory著者: 
山本昌志
Yamamoto Masashi 
平成16年10月15日