0

それで、私はここ数ヶ月、コンピューターについて学ぼうとしてきました。そして、それらがどのように機能するかを本当に詳しく学びました。私は最近減算器について学んでいて、疑問に思っていました..

まず、私の理解では、減算器は 2 の補数を使用して結果を取得します。しかし、なぜそれは減算するのですか?たとえば、5 の 2 の補数 (0101) は 1011 です。ただし、これも正の 11 です。数値が否定されたとしても、減算器がそれを別の正の数ではなく負の数と見なすのはなぜですか? 問題が 8 - 5 だった場合、何が 8 +11 を実行するのを妨げているのでしょうか? 符号なしビットから符号付きビットを認識する理由は何ですか? プログラムの実行が決定されると聞いたことがありますが、問題は、何がプログラムに加算または減算を決定する能力を与え、それが CPU と AlU にどのように解釈されるかということです。

また、AlU は足し算と引き算を切り替える 1 つの回路を使用していることも知りました。この回路はどのように機能しますか? 加算または減算を決定するのは何ですか?

最後に、この回路はどのように足し算から引き算に切り替わるのでしょうか? 私が示した唯一の減算器は、ゲートが接続されていない加算器ですか? 機能を変更できるもので、回路はどのように異なりますか?

4

1 に答える 1

0

減算は、第 2 オペランドが負の数である加算に他なりません。2 の補数は、負の数との加算が期待どおりに機能するように構築されています (オーバーフローを無視する場合)。

ALU は数値が正か負かを知る必要はありませんが、2 の補数では最上位ビットが設定されたすべての数値が1負の数値になります。2 の補数はすべて機能するように設計されているため、ALU は気にしません。

さて、減算は単なる加算であるため、同じ回路を使用して両方の機能を実行できます。あなたが話しているスイッチは、2 番目のオペランドを否定することです (否定は 2 の補数で非常に簡単です。それを行うにはいくつかの方法があります)、次に数値を追加します。

于 2013-07-24T07:54:34.880 に答える