охрененные молнии!! в 300 метрах...Где бы взять 25000 рублей?...

Разделить на 0.75

Как, не используя математический сопроцессор, разделить на 0.75 1.33333?
Использовать Ассемблер.


imul 384
shr eax,9

Comments (7):

  • Хотел написать ответ — нажал кнопку «комментировать», а там уже ответ готовый.
    • ты же видел надпись "ответ" ;)
      нечего отмазываться ;)))

      ничего. я ещё задачки подкину. .)
    • honeyman
    • 27.05.2005 17:22
    • Нижний Новгород / Нижегородская область
    А переполнение после imul не тово? Может, лучше таки с сопроцессором :) ? «eax * 3 / 4» (в сишной нотации) было бы надёжнее.
    (Я уже не говорю про то, что ты не разделил на 0.75, а умножил).
    • числа ограничиваются, верно. до 11 миллионов.
      но я знал, что они не превысят это значение, поэтому спокойно использовал.

      а использую 384/512, а не 3/4 потому, чтобы убирать младшие разряды, как бы подчищать - мне они не нужны. то есть, округлять нужно было числам, кратным 512.
      попробуй на сопроцессоре или Си ) сделать это парой команд ))))
        • honeyman
        • 28.05.2005 04:21
        • Нижний Новгород / Нижегородская область
        > попробуй на сопроцессоре или Си ) сделать это парой команд ))))
        Не думай, что авторы компиляторов глупее :) «eax * 384 / 512» наверняка сделает то же самое — даже деление произведёт посредством сдвига.
        • у меня нет компилятора. но ты попробуй и дизассемблируй. и посмотришь, что он там сделает и мне покажи .хорошо?
    • ты смотри-ка, заметил, что именно умножил ;)
      5+

      а разделить на 1.33333