第3日後半 アセンブラ(CASL)実習

目次

実習

CASL?環境(EduCasl)の設定

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

EduCaslの実行

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

プログラムの実行

  1. メッセージ出力
    HELLO    START
             OUT    BUF,LEN
             RET
    BUF      DC     'HELLO!'
    LEN      DC     6
             END
  2. ロードとストア
    EXLD     START
             LD     GR0, DATA1
             LAD    GR1, 20
             ST     GR0, DATA2
             ST     GR1, DATA3 
             RET
    DATA1    DC     10
    DATA2    DS     1
    DATA3    DS     1
             END
  3. 演算(減算)
    EXSUB	START
    	LD	GR1,X
    	LD	GR2,Y
    	SUBA	GR1,GR2
    	ST	GR1,Z
    	RET
    X	DC	15
    Y	DC	6
    Z	DS	1
    	END
  4. 演算(加算と減算)
    EXSUB  START
            LD      GR0,X
            ADDA    GR0,Y
            SUBA    GR0,Z
            ST      GR0,W
            RET
    X       DC      90
    Y       DC      87
    Z       DC      77
    W       DS      1
            END
  5. 条件分岐(if)
    EXIF	START
    	LD	GR1,DATA1
    	CPA	GR1,DATA2
    	JZE	SKIP1
    	LAD	GR2,0
    	JUMP	SKIP2
    SKIP1	LAD	GR2,1
    SKIP2	ST	GR2,ANS
    	RET
    DATA1	DC	5
    DATA2	DC	5
    ANS	DS	1
    	END

上級課題

  1. 繰り返し(while)
    EXLOOP	START
    	LAD	GR1,0	;GR1の初期値を0とする
    LOOP	LD	GR2,GR1
    	LD	GR3,GR2
    	LD	GR4,GR3
    	ADDA	GR1,C1	;GR1を1増やす
    	CPA	GR1,N
    	JMI	LOOP
    	RET
    N	DC	3
    C1	DC	1
    	END
  2. ループと演算の組み合わせ
    SUM10      START  ENTRY
    ; データ
    COUNT    DC     10         ; 値10
    C1       DC     1          ; 値1
    TOTAL    DC     0          ; 結果
    ; プログラム
    ; GR1=カウンタ
    ; GR2=総和
    ENTRY    LD     GR1,COUNT  ; カウンタの初期値
             XOR    GR2,GR2    ; 総和の初期値=0
    LOOP     ADDL   GR2,GR1    ; 総和に加算
             SUBL   GR1,C1     ; カウンタから1を引く
             JNZ    LOOP       ; 0でなければLOOPへ飛ぶ
             ST     GR2,TOTAL  ; 総和をストア
             RET
             END
  3. DCで確保した数値の内容を4倍するCASLプログラムを作成しなさい。
  4. DCで確保した数値の内容が偶数か奇数かを判定するCASLプログラムを作成しなさい。
  5. 10以上20未満の整数の合計を計算するCASLプログラムを作成しなさい。

CASL?エミュレータ

参考資料

CASL?公式 仕様書

おすすめ資料

その他の資料


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-04-20 (水) 20:28:27