imul [n100];
умножит и оставит результат в dx: ax
Теперь, dx: ax = fffe 7960. Это 32-битная величина с верхними 16 битами в dx и нижними 16 битами в ax. Поскольку MSB этого общего 32-битного со знаком количества равен 1, это отрицательное число, и нам нужен комплимент двоих, чтобы найти величину.
FFFE 7960 <-- our number
0001 869F <-- 1's compliment in hex
0001 86A0 <-- 2's compliment in hex
...0001 1000 0110 1010 0000 <-- 2's compliment in binary
Преобразовать это в десятичное число, как обычно (сумма всех) (1 * 2 ^ {bit_position}) ... мы получаем величину как ..
100000.
Теперь вспомните, что это отрицательное число со знаком (MSB = 1), поэтому, сложив знак и величину, мы получим ... -100,000:)