ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
4 мая
1427083 Топик полностью
il-2 (16.04.2024 16:39, просмотров: 70) ответил AlexBi на У меня MUL получается только при u8*u8 все остальные варианты приводят к вызову библиотечной функции умножения. Вот пример:
Тема ?C?IMUL не раскрыта. Думаю, там 3 операции умножения с возвратом 2-байтового результат (4 умножения не нужно, т.к. умножения 2-х старших байт перевалит за 2-байтовый результат). 

К слову - у тебя там результаты каждого произведения, и их суммы - 2 байтовые. Все по правилам.

Можно попробовать поиграться так - поставить явно преобразование типа:

s+=x1*(unsigned char)c1 + x2*(unsigned char)20;

Возможно, что компилятор тупой, и тупо промотит до int. Помню, что подобные трюки иногда помогали.