アセンブラ実習

目次

実習

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. アドレス修飾(配列)
    PROG3	START
    ; プログラム
    	LAD 	GR0,10
    	LAD	GR1,0
    	LD	GR2,N
    	LAD	GR3,1
    LOOP	ST	GR0,A,GR1
    	ADDA	GR1,GR3
    	CPA	GR1,GR2
    	JMI	LOOP
    	RET
    ; データ
    A 	DS 	5
    N 	DC 	5
    	END 
    
  4. 繰り返し(ループ)
    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 
    	
  5. サブルーチン(レジスタ渡し)
    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 
    
  6. サブルーチン(スタック渡し)
    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
Last-modified: 2008-10-23 (木) 09:39:45 (4788d)