[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
я не об этом. Когда я привожу результат из MR1(он, при ENA M_MODE, остается в формате 3.13)в формат 1.15 SHIFTER`ом (sr = ashift mr1 by 2 (LO)), я не засеку переполнение, если старшие два бита не равны нулю(знаковый не рассматриваем). Просто анализировать SR1 на наличие ненулевых битов - некорректно (туда уйдет знаковый бит при отрицательном MR1, например). Самое простое из приходящих в голову - брать ABS(mr1) и сравнивать с константой 0x3FFF еще до сдвига. Но потом надо восстанавливать знаковый бит... Хотел спросить у корифеев - нет ли у кого готовых решений попроще.
E-mail: info@telesys.ru