Перейти к содержанию

Рекомендуемые сообщения

Не знал в какой ветке темку сляпать.

В низкоуровневом программировании или по взлому игр или же здесь ?

и было бы хорошо если бы сразу не удаляли тему а переносили в правильную ветку.

----------------------------------------------------------------------------

Правильно ли я понял как работает MUL

Заметка:

Money - число в памяти на 8 бит. Процесс 64 битный. rsi - просто свободный регистр

Спойлер

mov rax, qword ptr [money]	<----  Money множимое число
mov rsi, 100			<----- 100 множитель в hex значении
mul rsi				<----- в rsi результат

 

или же результат запишется в rsi и ещё один регистр ?

который надо будет склеить.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, TechnoBOY сказал:

Правильно ли

Не правильно.

А почему не воспользоваться соответствующими командами.

Спойлер

  fld qword ptr [money]
  fmul qword ptr [multiplier]
  fstp qword ptr [money]

...................

money:
  dq (double)..... // скоко там у тебя?
multiplier:
  dq (double)100

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О а вот это уже по понятней и легче ?

Спойлер

fld qword ptr [money]
fmul qword ptr [multiplier]
fstp qword ptr [money]

 

Спасибо.

И кстати

dq это qword (double)

db - byte (масив байт)

dw - word

dd - dword ?

а float куда входит ?

или ещё есть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, TechnoBOY сказал:

..................dd - dword ?

да

2 минуты назад, TechnoBOY сказал:

а float куда входит ?

4 байта, т.е. dword

3 минуты назад, TechnoBOY сказал:

db - byte (масив байт)

не массив а просто байт.
а вот при объявлении, ты уже и задаешь либо один байт, либо массив.

Например
db 64 (или #100) - один байт со значением 100

db 90 90 90 - уже массив из трех нопов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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 если интересно

Изменено пользователем imaginary

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

? Но не уверен, что CE поддерживает SSE4.1

pmulld ymm0, ymm1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 часов назад, imaginary сказал:

А почему всё надо усложнять и делать 8 байт?

 

9 часов назад, TechnoBOY сказал:

Заметка:

Money - число в памяти на 8 бит.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 часов назад, Garik66 сказал:

Заметка:

Money - число в памяти на 8 бит. 

Как обычно я не заметила ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем как обычно, спасибо ра разъяснение ?

Щас как раз освобожусь и проверю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, partoftheworlD сказал:

? Но не уверен

Если таким образом то можно
mulsd (double умножение)
Например:

mulsd xmm1,xmm0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В данном топике никто не постил уже 4 месяца. Пости здесь только если твой вопрос точно совпадает с темой данного топика.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.