Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2018, 14:01   #1
Hittcliff
Новичок
Джуниор
 
Регистрация: 22.04.2018
Сообщений: 1
Восклицание Помощь с PMINSD и PMAXSD

Здравствуйте! Мне нужна помощь по ассемблеру. Есть PMAXSD и PMINSD (int) из SSE 4.1, как сменить данные команды дабы программа запускалась без проблем на процессорах без sse 4.1? В конце кода есть пустые данные, куда можно вставить правки, и как делать вызов этих правок?

Мне предложили:
В самом первом приближении можно написать руками (или на сях, а потом выдрать асм) аналог того места, которое использует SSE 4.1 инструкции, вставить его в пустое место, и поставить на него jmp вместо SSE 4.1 кода. Ну и нужно будет в этой вставке сделать jmp назад. Это всё может быть довольно сложно, в зависимости от начального кода, его логики и прочих других обстоятельств (например, насколько сама программа пытается защититься от изменений).


Часть кода ассемблера (что нужно заменить выделил чёрным):
sub rsp,E0
movss xmm0,dword ptr ds:[rcx+70]
xor esi,esi
mulss xmm0,dword ptr ds:[1428F50D0]
mov rbp,rcx
mov r13,rdx
mov dword ptr ss:[rsp+48],esi
movss xmm3,dword ptr ds:[rcx+6C]
movaps xmm1,xmmword ptr ds:[r8]
movss dword ptr ds:[rax+8],xmm3
movaps xmm4,xmm0
movss xmm0,dword ptr ds:[rax+8]
movss dword ptr ds:[rax+8],xmm3
shufps xmm0,xmm0,0
movaps xmmword ptr ds:[rax-48],xmm6
movaps xmmword ptr ds:[rax-68],xmm8
shufps xmm4,xmm4,0
subps xmm1,xmm4
mulps xmm1,xmm0
movss xmm0,dword ptr ds:[rax+8]
shufps xmm0,xmm0,0
addps xmm1,xmm1
addps xmm1,xmmword ptr ds:[142936920]
cvtps2dq xmm8,xmm1
movaps xmm1,xmmword ptr ds:[r8+10]
mov r8d,esi
addps xmm1,xmm4
psrad xmm8,1
pmaxsd xmm8,xmmword ptr ds:[142AF5970]
pminsd xmm8,xmmword ptr ds:[142AF5950]

mulps xmm1,xmm0
addps xmm1,xmm1
addps xmm1,xmmword ptr ds:[142936920]
cvtps2dq xmm3,xmm1
movdqa xmm1,xmmword ptr ds:[142AF5960]
psrad xmm3,1
paddd xmm1,xmm8
pmaxsd xmm3,xmmword ptr ds:[142AF5970]
movdqa xmm0,xmm1
pminsd xmm3,xmmword ptr ds:[142AF5950]
psrldq xmm0,4
psubd xmm3,xmm8
movd r11d,xmm0
movdqa xmm0,xmm1
psrldq xmm0,8
movd eax,xmm0
shl r11d,E
movdqa xmmword ptr ss:[rsp+60],xmm3
or r11d,eax
psrldq xmm3,4
movd eax,xmm1
shl r11d,E
or r11d,eax
movd eax,xmm3
mov ecx,r11d
mov dword ptr ss:[rsp+40],r11d
shr ecx,1C
mov dword ptr ss:[rsp+54],ecx
mov dword ptr ss:[rsp+50],eax
test eax,eax

Последний раз редактировалось Hittcliff; 22.04.2018 в 14:12.
Hittcliff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помощь Andrey_Lukas Помощь студентам 0 22.01.2018 21:20
Помощь в C++ Svyatoslav359 Помощь студентам 0 23.11.2015 15:48
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12