Page 5 of 9

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 7:04 am
by Albom
А у меня по-прежнему не работает.
Запустил в отладчике... Не пойму, но вроде проблемы с SSE1... Опкод 0f10 - это MOVUPS? Вообще, странный листинг...

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 4:01 pm
by Artyom
Это дизассемблировано в KolibriOS (внутренний отладчик) - я так полял. Просто загони файл в IDA со стартом с нужного адреса, а так (согласно доке Intel): MOVUPS xmm1, xmm2/m128 => 0F 10 /r, где /r - указывает, что ModR/M байт инструкции, т.е. /r, содержит операнд регистр и r/m операнд. Это правда не все случаи для данной инструкции. Загляни в доку.

Страннно, что тебя это не напрегло (1)

А особенно вот это (2)

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 5:33 pm
by Albom
Artyom wrote:Страннно, что тебя это не напрегло
Очень напрягло. Не код, а бред.
HDasm выдаёт другой листинг:

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 5:36 pm
by Serge
HDasm выдал 16-ти битный бред. Лучше всего IDA.

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 5:39 pm
by XVilka
попробуйте еще ndisasm (поставляется вместе с nasm) - тоже ничего или PVDasm ( http://www.pvdasm.tk-labs.com )

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 5:41 pm
by Albom
Пардон... Забыл галочку "32-bit" поставить... Ещё раз HDasm...

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 5:51 pm
by Albom
Фигасе ndisasm выдал...

Code: Select all


00000E1D  F20F10410C        movsd xmm0,[bx+di+0xc]
00000E22  F20F1145C8        movsd [di-0x38],xmm0
00000E27  F20F1104          movsd [si],xmm0
00000E2B  24E8              and al,0xe8
00000E2D  B3DC              mov bl,0xdc
00000E2F  0000              add [bx+si],al
00000E31  F20F2C7DC8        cvttsd2si edi,[di-0x38]
00000E36  897DE4            mov [di-0x1c],di
00000E39  83EC08            sub sp,byte +0x8
00000E3C  DD5DD8            fstp qword [di-0x28]
00000E3F  DB45E4            fild dword [di-0x1c]
00000E42  DD1C              fstp qword [si]
00000E44  24E8              and al,0xe8
00000E46  9ADC000083        call word 0x8300:0xdc


Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 5:54 pm
by XVilka
кинбте файл, я в иде открою

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 6:00 pm
by Artyom
Только IDA или скажи какой это файл в SVN. И ещё, извини кнечно, что спрашиваю, ты с Assembler'ом как? Если хоть чуточку нормально, то у тебя должны были возникнуть подозрения:
"repnz" как коммандам неподдерживающим данный префикс впринципе!!!

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 6:01 pm
by Artyom
Ну вот. :)

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 6:03 pm
by Artyom
Код соответствует реальности. Изучайте, сударь, документацию :)

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 6:03 pm
by CleverMouse
У Intel своё, подчас довольно извращённое, видение мира, в системе команд x86 это отражается - один только nop, который на самом деле не nop, чего стоит. Префикс F2, который в обычных командах означает REP, в случае SSE делает из одной команды другую; дизассемблеры, не знающие про SSE, сильно удивляются. ndisasm выдал правильный листинг, только для 16-битного кода.

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 6:07 pm
by CleverMouse
Листинг IDA был две страницы назад: viewtopic.php?p=36057#p36057

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 6:07 pm
by Artyom
CleverMouse, я с тобой полностью согласен, но доки как Intel, так и AMD, трактуют данный набор инструкций одинаково.

Re: Python для KolibriOS

Posted: Thu Aug 25, 2011 6:12 pm
by CleverMouse
Ну да, а что AMD оставалось делать? В x86 систему команд устанавливает Intel, у AMD было только 3Dnow!, которое "не взлетело", и x86-64, которую явно пытались сделать возможно более похожей на x86 во избежание фиаско Itanic Itanium с полностью новой системой команд.