大堀/研究/データ/FPU/add_sub.s
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[大堀/研究/データ/FPU]]
#contents
*ADD.s, SUB.sの演算機の実装 [#mf76ef50]
**手順 [#s5860d06]
-comp_abs: 大小比較
-det_shift_amount: シフト量決定…なんのことはない減算。
-shift_down: シフト。
-add_sub_core: コア演算
-normal_exp_frac: 正規化
--後で例外処理。
**コア演算器 [#d2e8e600]
-符号によってaddするかsubするか変更する
-addの場合オーバーフローも考慮する。
--floatの場合、オーバーフローを考慮しないのは致命的。桁が変わるから。
--符号
|0|正|
|1|負|
--add.s
|Highの符号|Lowの符号|実際の演算|
|0|0|ADD|
|0|1|SUB|
|1|0|SUB|
|1|1|ADD|
--sub.s
|Highの符号|Lowの符号|実際の演算|
|0|0|SUB|
|0|1|ADD|
|1|0|ADD|
|1|1|SUB|
**正規化 [#we8c7df3]
-実際に行った演算がADD, SUBの場合で方法を変える。
--ADD
|overflow|exp動作|frac動作|
|あり|1を加算|右シフト|
|なし|SUBと同様の処理|SUBと同様の処理|
--SUB
|exp動作|frac動作|
|frac部分でシフトした回数だけ減算|上位桁から1が出るまで左シフト。1が出たら一度だけシフトして終了|
終了行:
[[大堀/研究/データ/FPU]]
#contents
*ADD.s, SUB.sの演算機の実装 [#mf76ef50]
**手順 [#s5860d06]
-comp_abs: 大小比較
-det_shift_amount: シフト量決定…なんのことはない減算。
-shift_down: シフト。
-add_sub_core: コア演算
-normal_exp_frac: 正規化
--後で例外処理。
**コア演算器 [#d2e8e600]
-符号によってaddするかsubするか変更する
-addの場合オーバーフローも考慮する。
--floatの場合、オーバーフローを考慮しないのは致命的。桁が変わるから。
--符号
|0|正|
|1|負|
--add.s
|Highの符号|Lowの符号|実際の演算|
|0|0|ADD|
|0|1|SUB|
|1|0|SUB|
|1|1|ADD|
--sub.s
|Highの符号|Lowの符号|実際の演算|
|0|0|SUB|
|0|1|ADD|
|1|0|ADD|
|1|1|SUB|
**正規化 [#we8c7df3]
-実際に行った演算がADD, SUBの場合で方法を変える。
--ADD
|overflow|exp動作|frac動作|
|あり|1を加算|右シフト|
|なし|SUBと同様の処理|SUBと同様の処理|
--SUB
|exp動作|frac動作|
|frac部分でシフトした回数だけ減算|上位桁から1が出るまで左シフト。1が出たら一度だけシフトして終了|
ページ名: