Быстро умножить вещественное число на степень двойки., Операция ж простейшая. |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
Быстро умножить вещественное число на степень двойки., Операция ж простейшая. |
TarasBer |
Сообщение
#1
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Как это сделать, не прибегая к fmul? Есть ли для этого специальная команда?
-------------------- |
andriano |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Это зависит т формы записи числа.
Если с фиксированной точкой, то число сдвигается влево на количество разрядов равное показателю степени. Если в экспоненциальном, то к экспоненте прибавляется показатель степени. |
TarasBer |
Сообщение
#3
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Это зависит т формы записи числа. Если с фиксированной точкой, то число сдвигается влево на количество разрядов равное показателю степени. Было б всё так просто. Увы, у меня плавающая точка. Цитата Если в экспоненциальном, то к экспоненте прибавляется показатель степени. Это-то понятно, но как обратиться именно к экспоненте? Есть ли специальная команда у сопроцессора? -------------------- |
Lapp |
Сообщение
#4
|
|||
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Есть ли специальная команда у сопроцессора? TarasBer, ты всерьез полагаешь, что команда сопроцессора включена в Паскаль? Пожалуйста, посмотри вот это: КО ВСЕМ УЧАСТНИКАМ ФОРУМА .
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
volvo |
Сообщение
#5
|
Гость |
Цитата Как это сделать, не прибегая к fmul? Через FSCALE ... |
TarasBer |
Сообщение
#6
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Спасибо, вроде разобрался.
Надо записать в стек 2 числа, первое из них - степень, второе - то, что скалим, потом не забыть вынуть из стека тоже 2 числа. -------------------- |
andriano |
Сообщение
#7
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Стек - не единственное место, куда можно положить.
Можно, например, воспользоваться оперативной памятью. (это не тавтология, стек не обязан располагаться в ОЗУ) Можно выделить из числа нужные биты, изменить их и вписать обратно. Но вероятнее всего, это займет больше времени как в процессе кодирования, так и выполнения. |
TarasBer |
Сообщение
#8
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Но вероятнее всего, это займет больше времени как в процессе кодирования, так и выполнения. Да я надеюсь. Иначе нафиг этот сопроцессор нужен, если ручная эмуляция быстрее. -------------------- |
Текстовая версия | 4.05.2024 15:20 |