|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.04.2018, 14:01 | #1 |
Новичок
Джуниор
Регистрация: 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помощь | 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 |