Funkcja wykonuje operacje odejmowania na liczbach 32 bitowych w formacie int32 (od −2 147 483 648 — +2 147 483 647). Otrzymany wynik jest w postaci 32 bitowej zapisany na Out_Lo i Out_Hi. Najbardziej znaczący bit Out_Hi odpowiada za znak liczby. Podczas wykonywania operacji odejmowania, należy pamiętać o ograniczeniach wyjścia 32 bitowego - jeśli wartość wyjściowa przekroczy próg 2 147 483 648 lub −2 147 483 648, w obu przypadkach wyjście Out_Ovf zostanie ustawione w stan wysoki, przy przekroczeniu wartości, na najstarszy bit może zostać przeniesiona wartość 1, co może spowodować zmianę znaku liczby,
In1_Lo | In1_Hi | In1 (32 bit) | In2_Lo | In2_Hi | In2 (32 bit) | Out_Lo | Out_Hi | Out (32 bit) | Out_Ovf |
---|---|---|---|---|---|---|---|---|---|
8 | 0 | 8 | 8 | 0 | 8 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 10000 | 0 | 1000 | -9999 | -1 | -9999 | 0 |
6464 | 1 | 72000 | 32000 | 0 | 32000 | 30000 | 0 | 30000 | 0 |
0 | -30000 | -1966080000 | 0 | -30000 | -1966080000 | 0 | 5536 | 362807296 | 1 |