アセンブラ(CASL)実習

目次

実習

CASL?環境(EduCasl)の設定

  1. 以下からCASLのエミュレータをダウンロードする。
  2. 展開して,Setup.Exeを実行(ダブルクリック)する。
  3. スタートメニューからEduCaslを実行する。

EduCaslの実行

  1. ソースコード入力画面が出るので,プログラムを打ち込む。
  2. プログラムを入力し終わったら,「アセンブル」でアセンブルする。
  3. エラーが出なければ,「実行」ボタンが押せるようになり,実行画面に移れる。
  4. 実行画面では,メモリやレジスタの内容を確認しながら,1行ずつ実行できる。

プログラムの実行

  1. メッセージ出力
    TEST1    START
             OUT    BUF, LEN
             RET
    BUF      DC     'HELLO!'
    LEN      DC     6
             END
             
  2. ロードとストア
    TEST2    START
             LD     GR0, DATA1
             LAD    GR1, 20
             ST     GR0, DATA2
             ST     GR1, DATA3 
             RET
    DATA1    DC     10
    DATA2    DS     1
    DATA3    DS     1
             END

プログラムの実行

  1. 演算(減算)
    PROG1	START
    ; プログラム
    	LD 	GR0, X
    	LD 	GR1, Y
    	SUBA 	GR0, GR1
    	ST 	GR0, Z
    	RET
    ; データ
    X 	DC 	15
    Y 	DC 	6
    Z 	DS 	1
    	END 
    	
  2. 条件分岐(if)
    PROG2 	START 	MAIN
    ; データ
    DATA1 	DC 5 
    DATA2 	DC 5 
    ANS 	DS 1 
    ; プログラム
    MAIN	LD 	GR0, DATA1 
    	CPA 	GR0, DATA2 
    	JZE 	SKIP1 
    	LAD 	GR0, 0 
    	JUMP 	SKIP2 
    SKIP1	LAD 	GR0, 1 
    SKIP2	ST 	GR0, ANS 
    	RET 
    	END 
    	
  3. 繰り返し(while)
    PROG4	START	MAIN
    ; プログラム
    MAIN 	XOR 	GR0, GR0 
    	LD 	GR1, N
    	LDA	GR2, 1
    LOOP 	ADDA 	GR0, GR1
    	SUBA 	GR1, GR2
    	JNZ 	LOOP
    	ST 	GR0, TOTAL
    	RET 
    ; データ
    N		DC 	10
    SUM 	DS	1
    	END 
    	
  4. サブルーチン(レジスタ渡し)
    PROG5	START 	MAIN
    DATA1	DC 	5
    DATA2	DC 	10
    ANS	DS	1
    ; メインルーチン
    MAIN 	LD 	GR0, DATA1
    		LD	GR1, DATA2
    		CALL	MAX
    		ST	GR0, ANS
    		RET
    ; サブルーチン
    MAX	CPA	GR0, GR1
    		JPL	MAXR
    		LD	GR0, GR1	
    MAXR	RET 
    		END 
    
    PROG6 START 	MAIN
    DATA1	DC 	5
    DATA2	DC 	10
    ANS	DS	1
    ; メインルーチン
    MAIN 	LD 	GR0, DATA1
    	PUSH	GR0
    	LD	GR0, DATA2
    	PUSH	GR0
    	CALL	MAX
    	ST	GR0, ANS
    	RET
    
    ; サブルーチン
    	; 戻り先番地をGR7に退避
    MAX	POP	GR7
    	POP	GR0
    	POP	GR1
    	CPA	GR0, GR1
    	JPL	MAXR
    	LD	GR0, GR1
    	; 戻り先番地をスタックに戻す
    MAXR	PUSH	0, GR7
    	RET 
    	END

CASL?エミュレータ

参考資料

CASL?公式 仕様書

おすすめ資料

その他の資料


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS