機械語において、ボロー付き減算命令とは、ボローフラグが1のとき、二つの値の減算結果が1小さくなる減算命令のことです。
4ビットの減算器であれば、ボロー付き減算命令は、以下の論理回路で実現できます。
この場合のボローフラグは、減算命令で桁借りが生じた場合に1になるとします。
通常の減算器との違いは、ボローフラグの値をNOTゲートで論理否定したものが最下位ビットに加算されるようになっています。この場合、ボローフラグが0のとき、通常の減算命令と同じです。
ボロー付き減算命令は、1ワード(プロセッサレジスタのビット数)を超える二つの値を引き算する場合に利用します。
例えば、1ワードが16ビットであれば、32ビットの二つの値を引き算するには、下位16ビットと上位16ビットに分けて、2回引き算する必要があります。
このとき、最初に下位16ビットに対して減算命令を行い、次に上位16ビットに対してボロー付き減算命令を行います。
これにより、下位16ビットの引き算で桁借りが発生すれば、上位16ビットの最下位ビットから1が引かれるため、32ビットの二つの値の引き算が実現できます。
同様の手順により、3ワード以上の二つの値の引き算もできます。
なお、2ワード以上の二つの値を符号ビット付き2進数として扱う場合も同じ手順で引き算できます。この場合は、引く側の値の符号が反転した加算命令と同じ結果になります。