ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
4 декабря
1426898 Топик полностью
il-2 (16.04.2024 08:13, просмотров: 67) ответил AlexBi на Вопрос к знатокам по Keil-у для 8051, точнее по его оптимизатору: "Почему он не использует встроенный умножитель у 8051?" Любое умножение превращается в вызов библиотечной функции. С делением такая же беда. Деление int32/256 превращается в вызов библиотечной функции деления long на long. Это как-то можно исправить?
Так ведь встроенный умножитель там 8-битный, да еще беззнаковый. Если явно не указывать преобразования типов, то компилятор промотит операции до знаковых 2-байтовых. И в библиотечных функциях используются те-же инструкции 8-битного умножения, только по несколько штук и с учетом знака. В некоторых случаях компилятору надо явно преобразованием типов урезать разрядность операндов (а иногда и результата).