レポート課題:アセンブラ言語による数値判定プログラムの実装・テスト
課題
アセンブラ言語(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)がどのような場合に変化するか,各フラグに関連する命令を例に挙げ,詳細に説明せよ
- マスク処理について,作成した数値判定プログラムを例に説明せよ.
- 作成した数値判定プログラムで判定できる最大の数はいくつか.また,なぜそれ以上の数の判定はできないのか,説明せよ.
オプション課題(どちらか一方でも可)
- 数値判定プログラムに,上記以外の倍数判定もできるように改良せよ .その際,ソースリスト・実行結果・考察を記載せよ
- 課題8の10進数を昇順にソートするプログラムを実装し,ソースリスト・実行結果・考察を記載せよ
スケジュール
- レポート提出〆切 … 2025/1/21(火) 10:10
- 書式不備レポート返却 … 2025/1/27(月)
- 書式不備修正レポート提出 … 2024/1/31(金) 17:00
注意点