「キャリー」は数学の授業で何をしますか?
以下を例に取ります: 2 つのバイナリの合計は、結果の値以外に CY という特別なものを生み出します。1+2=3+いくらかのキャリー?
ドキュメントには、「加算の結果キャリーが発生した場合、キャリー フラグは O になります」と単純に記載されており、キャリーとは何か、キャリー フラグとは何かについての説明はありません。それらは何ですか? また、キャリーを使用する場合と使用しない場合の加算命令の違いは何ですか?
「キャリー」は数学の授業で何をしますか?
以下を例に取ります: 2 つのバイナリの合計は、結果の値以外に CY という特別なものを生み出します。1+2=3+いくらかのキャリー?
ドキュメントには、「加算の結果キャリーが発生した場合、キャリー フラグは O になります」と単純に記載されており、キャリーとは何か、キャリー フラグとは何かについての説明はありません。それらは何ですか? また、キャリーを使用する場合と使用しない場合の加算命令の違いは何ですか?
キャリーは、加算の完全な結果を表すために必要な追加ビットです。
たとえば、2 つの 16 ビット値を加算する場合、考えられるすべての結果を表すには、結果が 17 ビットである必要があります。
キャリー フラグは、レジスタ サイズより大きい値の加算を連鎖させる場合にも使用されます。32 ビットの値があり、16 ビットの加算しかできない場合は、値の下位半分を最初に加算し、次に最初の加算からのキャリーで上位半分を加算します。
Rlo = Alo + Blo
Rhi = Ahi + Bhi + CY
下位半分は符号なしの値として加算され、上位半分はキャリー フラグを使用する命令で符号付きまたは符号なしの値として加算されます。