- 締切済み
CASL2(減算命令と比較命令の違い)
CASL2勉強用のテキストに【以下】のような説明文がありました。前半部分の意味は分かるのですが、後半部分(SFに設定される・・・)という所からの説明の意味がよく分かりません。 【比較演算命令の特徴】 比較減算命令(CPA、CPL)の大きな特徴は、命令の実行によって状態が変化するハードウェアはFRだけである点である。比較演算命令の実行によって、汎用レジスタや主記憶装置の状態はまったく変化しない。 SFに設定される値は、比較命令では比較される数値の大小によって決定されるが、減算命令では演算結果の最上位ビットの値が設定される。このことから減算命令ではSFの値だけから元の数値の大小を判定することができない。 (1)減算命令の結果の最上位ビットがマイナスになって大小関係が判定できない場合などあるのでしょうか?(例)12-15=-3 → 12<15 このように判定できているように思うのですが? (2)そもそも大小の判定は減算によって判定しているのではないのでしょうか?それでは、内部的にはどのようにして大小判定を行っているのでしょうか? そもそも文章を理解できていないのかも知れませんが・・・ よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Tasuke22
- ベストアンサー率33% (1799/5383)
> ひとつひとつのビット比較自体はCPUはどのような > 原理で行うのか分かりますでしょうか?足し算の > ような事をするのでしょうか?? 想像ですが、andで違いのビットを発見するでしょう。 最後まで同じなら= 符号あり 0ビット目ならオンの方が小さい 1ビット目以降ならオンの方が大きい (多分、マイナスも同じと思うので検証しておいて 下さい) 符号なしは0ビット目の特別扱い無し。 うーん、結構複雑ですね。加算よりは簡単。 浮動小数点は、はっきりいって分かりません。 考える気力なし。
- Tasuke22
- ベストアンサー率33% (1799/5383)
大昔のことで忘れたけど、かすかな記憶では マイナス同士の減算は逆にならなかったかな? 加算機の回路とか見たら分かるけど、マイナ スは最上位ビットがオンだけど、条件によって は繰り上がりで、最後は消滅するケースもあっ たはず。 比較は減算しません。最上位ビットからビット 比較し、最初に違いが出たビットで結果が得ら れます。
補足
ご回答ありがとうございます。 そういう事だったのですね。理解できました。 ちなみに、ひとつひとつのビット比較自体はCPUはどのような原理で行うのか分かりますでしょうか?足し算のような事をするのでしょうか?? よろしくお願いいたします。