TechnoBOY Опубликовано 1 мая, 2019 Поделиться Опубликовано 1 мая, 2019 Не знал в какой ветке темку сляпать. В низкоуровневом программировании или по взлому игр или же здесь ? и было бы хорошо если бы сразу не удаляли тему а переносили в правильную ветку. ---------------------------------------------------------------------------- Правильно ли я понял как работает MUL Заметка: Money - число в памяти на 8 бит. Процесс 64 битный. rsi - просто свободный регистр Спойлер mov rax, qword ptr [money] <---- Money множимое число mov rsi, 100 <----- 100 множитель в hex значении mul rsi <----- в rsi результат или же результат запишется в rsi и ещё один регистр ? который надо будет склеить. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 1 мая, 2019 Поделиться Опубликовано 1 мая, 2019 http://asmworld.ru/spravochnik-komand/mul/ Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 1 мая, 2019 Поделиться Опубликовано 1 мая, 2019 1 час назад, TechnoBOY сказал: Правильно ли Не правильно. А почему не воспользоваться соответствующими командами. Спойлер fld qword ptr [money] fmul qword ptr [multiplier] fstp qword ptr [money] ................... money: dq (double)..... // скоко там у тебя? multiplier: dq (double)100 Ссылка на комментарий Поделиться на другие сайты Поделиться
TechnoBOY Опубликовано 1 мая, 2019 Автор Поделиться Опубликовано 1 мая, 2019 О а вот это уже по понятней и легче ? Спойлер fld qword ptr [money] fmul qword ptr [multiplier] fstp qword ptr [money] Спасибо. И кстати dq это qword (double) db - byte (масив байт) dw - word dd - dword ? а float куда входит ? или ещё есть Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 1 мая, 2019 Поделиться Опубликовано 1 мая, 2019 2 минуты назад, TechnoBOY сказал: ..................dd - dword ? да 2 минуты назад, TechnoBOY сказал: а float куда входит ? 4 байта, т.е. dword 3 минуты назад, TechnoBOY сказал: db - byte (масив байт) не массив а просто байт. а вот при объявлении, ты уже и задаешь либо один байт, либо массив. Например db 64 (или #100) - один байт со значением 100 db 90 90 90 - уже массив из трех нопов Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 1 мая, 2019 Поделиться Опубликовано 1 мая, 2019 (изменено) 1 час назад, Garik66 сказал: А почему не воспользоваться соответствующими командами А почему всё надо усложнять и делать 8 байт? Если использует команду mul, значит число 4 байта, значит целое, и в таком случае можно его сразу загружать с переводом и после выгружать: Спойлер //Вариант если множитель float или doble fild dword (muller) //Загружаем число 4 байтов с переводом в число с пл запятой fmul dword (mult) //Умножаем на множитель который во float fistp dword (Куда выгружать готовое) //Выгружаем с переводом в 4 байта //Вариант если множитель целое число fild dword (muller) //Загружаем число 4 байтов с переводом в число с пл запятой fild dword (mult) //Загружаем в стек множитель fmul st(1) //Умножаем fistp dword (Куда выгружать готовое) //Выгружаем число с переводом в 4 байта fstp st(0) //Убираем лишнее число из стека (множитель) muller: dd (твоё умножаемое число) mult: //Если float dd (float)100 //(умножаем на 100, так и писать в метку (float)100) //Если простое dd #100 //100 У меня есть урок по fpu если интересно Изменено 1 мая, 2019 пользователем imaginary Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 1 мая, 2019 Поделиться Опубликовано 1 мая, 2019 ? Но не уверен, что CE поддерживает SSE4.1 pmulld ymm0, ymm1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 мая, 2019 Поделиться Опубликовано 2 мая, 2019 6 часов назад, imaginary сказал: А почему всё надо усложнять и делать 8 байт? 9 часов назад, TechnoBOY сказал: Заметка: Money - число в памяти на 8 бит. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 2 мая, 2019 Поделиться Опубликовано 2 мая, 2019 7 часов назад, Garik66 сказал: Заметка: Money - число в памяти на 8 бит. Как обычно я не заметила ? Ссылка на комментарий Поделиться на другие сайты Поделиться
TechnoBOY Опубликовано 2 мая, 2019 Автор Поделиться Опубликовано 2 мая, 2019 Всем как обычно, спасибо ра разъяснение ? Щас как раз освобожусь и проверю. Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 2 мая, 2019 Поделиться Опубликовано 2 мая, 2019 Только что, partoftheworlD сказал: ? Но не уверен Если таким образом то можно mulsd (double умножение) Например: mulsd xmm1,xmm0 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения