レポート課題:アセンブラ言語による数値判定プログラムの実装・テスト
課題
アセンブラ言語(CASL2)を用いて,ユーザーが指定したある数nが,0, 1, 素数, 16の倍数, 8の倍数, 4の倍数, 偶数, 奇数のいずれかに判定するプログラムを実装し,テストしなさい
実装するプログラムは以下の要件を満たすように作成すること.
プログラムの要件
- 2は素数として扱うこと
- 素数判定における割り算結果の判定はサブルーチンとすること
- 奇数, 偶数, 4, 8, 16の倍数判定にはマスク処理を利用すること
- ある数nはn>=0とする
ヒント:判定の優先度は0 or 1 > 素数 > 16の倍数 > 8の倍数> 4の倍数> 奇数 or 偶数の順
考察課題
- フラグレジスタの3種類のフラグ(OF, SF, ZF)がどのような場合に変化するか,各フラグに関連する命令を例に挙げ,詳細に説明せよ
- マスク処理について,作成した数値判定プログラムを例に説明せよ.
- 16進数#FFFFを算術右nビットシフトしたときと,論理右nビットシフトしたときでは,結果が異なる.その理由を説明し,#FFFFの算術および論理右ビットシフト結果を示せ.なお,n=1~10とする
オプション課題(どちらか一方でも可)
- 数値判定プログラムに,上記以外の倍数判定もできるように改良せよ .その際,ソースリスト・実行結果・考察を記載せよ
- 課題8の10進数を昇順にソートするプログラムを実装し,ソースリスト・実行結果・考察を記載せよ
スケジュール
- レポート提出〆切 … 2023/1/31(火) 10:10
- 書式不備レポート返却 … 2023/2/6(月)
- 書式不備修正レポート提出 … 2023/2/13(月) 17:00(提出期限に注意)
注意点