Дано: EAX - 32-битное число ECX - число в диапазоне 0..7 включительно Задача: Написать функцию возвращающую EAX-1 если EAX<0 и ECX mod 4 == 0, и...
Переписать исходник :) Нафиг надо если есть бесплатный ассемблер который это успешно соберёт.
Сомневаюсь. Там конвертеры fasm <-> nasm, fasm <-> gas, nasm <-> gas Сконвертить исходники tasm это врядли поможет.
Да-да, особенно Visual Studio или Delphi. Самые бесплатные в мире продукты :) И как вообще язык программирования связан с ценой на компилятор?...
С OpenWatcom таких проблем быть не должно. Если не ошибаюсь, исходники у них распространяются по GPL, бинарный дистрибутив по OpenWatcom License....
Качай OpenWatcom с www.openwatcom.org, там есть ассемблер WASM, и собирай что хочеш. С tasm совместим на 99% и абсолютно всё бесплатно....
GAS это. BYTE PTR это часть синтаксиса Intel. По крайней мере в gcc 3.x и gas от него есть поддержка ассемблера с синтаксисом Intel.
Да, насчёт -0 я в курсе :) Я просто решил пренебречь. Хотя в принципе можно и заменить на (*(unsigned *)&f32 > 0x80000000U) - машинный код...
В общем я нашёл вариант который меня устраивает :) Вот на asm с использованием 3dNow!: int static __inline f2int_3dnow(float f32) { int...
Вот кстати нашёл интересную игрушку :) http://www.codeplay.com/vectorc/index_pc.html Демо, но можно зарегистрировать (в общем кто ищет - тот...
Значит по порядку. Вариант Black_mirror страдает той же бедой - приведение к int, что без SSE очень долго. 14-версия MSVS - это MSVS2005 Опция...
Я проверял на Intel C++ 10 Разница между вариантами с float и double в пару тактов (1-2), проверял на 100000000 итерациях. При включённом SSE...
Померял. Вариант с double быстрее. Ещё чуть-чуть быстрее такой вариант: int f2int_f64r(float f32) { int i32; double...
Сейчас померяю. С другой стороны Агнер Фог пишет что не рекомендуется смешивать вычисления float с double... Хотя в варианте с float на 2 сдвига и...
Вроди понял. Сочинил такое: int __inline f2int(float f32) { int i32; float tmp; tmp = f32+12582912.0f; // 2^22+2^23 i32 = *(int *)&tmp &...
nobodyzzz C99 не подходит. Поищу исходники реализации. Atlantic Я так понимаю что твой код это более общий вид следующего: int ifloor(float sf) {...
Это то же самое что и i32=*(int *)&f32; Только ты получиш не округлённое значение. Мне для 1.7 надо получить 1, а твой код получит 3F800000h....
Всем привет. Собственно вот встала тут задача. Надо реализовать функцию floor_i32() которая на входе принимает float, а на выходе выдаёт...
А в чём кривизна? Olly по крайней мере нормально отрабатывает, за исключением того что останавливается на следующей команде. А она на DebugAPI...
Мне не помогает, я через прокси хожу. Хотя на канале второго провайдера всё заработало - вчера ещё не открывался.
Имена участников (разделяйте запятой).