Почему поведение умножителя не соответсвует документации?
Из ЮзерМануала:
An overflow occurs when the sum of two negative numbers yields a result that is in the range for a positive number.
An underflow occurs when the sum of two positive numbers yields a result that is in the range for a negative number.
In both of these cases, the SUMEXT register contains the correct sign of the result, 0FFFFh for overflow and 0000h for underflow.
Но у меня получается по другому:
Код
//RESHI=0; RESLO=0; SUMEXT=0;
MACS = 0x7FFF;
OP2 = 0x7FFF;
//RESHI=0x3FFF; RESLO=0x0001; SUMEXT=0;
MACS = 0x7FFF;
OP2 = 0x7FFF;
//RESHI=0x7FFE; RESLO=0x0002; SUMEXT=0;
MACS = 0x7FFF;
OP2 = 0x7FFF;
//RESHI=0xBFFD; RESLO=0x0003; SUMEXT=0xFFFF;
Т. е. при underflow SUMEXT=0xFFFF хотя должно быть SUMEXT=0.
Или я не правильно понимаю?