А у меня по-прежнему не работает.
Запустил в отладчике... Не пойму, но вроде проблемы с SSE1... Опкод 0f10 - это MOVUPS? Вообще, странный листинг...
Python для KolibriOS
-
- Attachments
-
-
cpuid.png (6.92 KiB)Viewed 8545 times
-
dbg.png (8.19 KiB)Viewed 8545 times
-
Это дизассемблировано в KolibriOS (внутренний отладчик) - я так полял. Просто загони файл в IDA со стартом с нужного адреса, а так (согласно доке Intel): MOVUPS xmm1, xmm2/m128 => 0F 10 /r, где /r - указывает, что ModR/M байт инструкции, т.е. /r, содержит операнд регистр и r/m операнд. Это правда не все случаи для данной инструкции. Загляни в доку.
Страннно, что тебя это не напрегло (1)
А особенно вот это (2)
Страннно, что тебя это не напрегло (1)
А особенно вот это (2)
- Attachments
-
-
dbg1.PNG (14.6 KiB)Viewed 8517 times
-
dbg2.PNG (13.75 KiB)Viewed 8517 times
-
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Очень напрягло. Не код, а бред.Artyom wrote:Страннно, что тебя это не напрегло
HDasm выдаёт другой листинг:
- Attachments
-
-
dbg2.png (8.92 KiB)Viewed 8499 times
-
HDasm выдал 16-ти битный бред. Лучше всего IDA.
попробуйте еще ndisasm (поставляется вместе с nasm) - тоже ничего или PVDasm ( http://www.pvdasm.tk-labs.com )
Last edited by XVilka on Thu Aug 25, 2011 5:44 pm, edited 1 time in total.
Пардон... Забыл галочку "32-bit" поставить... Ещё раз HDasm...
- Attachments
-
-
dbg2.png (8.33 KiB)Viewed 8491 times
-
Фигасе 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
кинбте файл, я в иде открою
Только IDA или скажи какой это файл в SVN. И ещё, извини кнечно, что спрашиваю, ты с Assembler'ом как? Если хоть чуточку нормально, то у тебя должны были возникнуть подозрения:
"repnz" как коммандам неподдерживающим данный префикс впринципе!!!
"repnz" как коммандам неподдерживающим данный префикс впринципе!!!
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Ну вот.
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Код соответствует реальности. Изучайте, сударь, документацию
Last edited by Artyom on Thu Aug 25, 2011 6:04 pm, edited 1 time in total.
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
У Intel своё, подчас довольно извращённое, видение мира, в системе команд x86 это отражается - один только nop, который на самом деле не nop, чего стоит. Префикс F2, который в обычных командах означает REP, в случае SSE делает из одной команды другую; дизассемблеры, не знающие про SSE, сильно удивляются. ndisasm выдал правильный листинг, только для 16-битного кода.
Сделаем мир лучше!
Листинг IDA был две страницы назад: viewtopic.php?p=36057#p36057
Сделаем мир лучше!
CleverMouse, я с тобой полностью согласен, но доки как Intel, так и AMD, трактуют данный набор инструкций одинаково.
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Ну да, а что AMD оставалось делать? В x86 систему команд устанавливает Intel, у AMD было только 3Dnow!, которое "не взлетело", и x86-64, которую явно пытались сделать возможно более похожей на x86 во избежание фиаско Itanic Itanium с полностью новой системой команд.
Сделаем мир лучше!
Who is online
Users browsing this forum: No registered users and 1 guest