Ruslan
на другом ресурсе смотрел - там какая-то дичь
Ruslan
но ето для 32 бит
k0rs4r
в интел мануале очень подробно всё описано, 2 том, 2.2.1.2
k0rs4r
Ruslan
проблема в том
Ruslan
что нет елегантного решения
k0rs4r
это скорей особенность архитектуры.. неудобно парсить, нужны дизасмы длин и т.п.
Ruslan
поскольку нету выделенного отрезка значений для определенной команды
Ruslan
единстенное 100% решение
Ruslan
ето втупую создать масив со всеми кодами мува
Ruslan
и если код в масиве - была команда мув
Dmitry
да не, массив у меня уже есть, двумерный. для x86 канает. для x64 хочу таки маску хуярить самостоятельно и сверять с ней
k0rs4r
обычно достаточно опкода и типа адресации чтоб составить инструкцию
Ruslan
ему нужно наоборот
Ruslan
понять что за инструкция была
Ruslan
вернее была ли ето мув
k0rs4r
а, тогда наоборот, карта опкодов нужна
k0rs4r
2 том, аппендикс A
k0rs4r
ну то что таблицы придется создавать это да. Насколько помню обычно проверяются сначала в пределах однобайтовых опкодов, потом двубайтовые и т.п. Весьма неудобно, но что поделать..
Dmitry
да погодите
Dmitry
ща
Dmitry
у меня есть два опкода
Dmitry
89 - mov r/m64, r64 8B - mov r64, r/m64
Dmitry
Dmitry, [04.07.17 17:43] а если регистр r8-r15, то получаются две маски: 49 = 01001001 - новый регистр в modr/m в поле rm 4C = 01001100 - новый регистр в modr/m в поле reg
Dmitry
и вот
Dmitry
в modr/m если два регистра, то первые два бита будут 11
Dmitry
собственно, если регистр rax - rdi, то маски будут следующими: 0x48 0x89 11b ??? регистр 0x48 0x8B 11b регистр ???
Dmitry
где ??? может быть любым
Dmitry
и это и будет регистр
Dmitry
второй
Dmitry
так, для r8-r15 интереснее
Dmitry
ещё же есть 4D = 01001101 - когда оба регистра из разряда r8-r15
Dmitry
собственно маски получаются четыре
Dmitry
или три
Dmitry
ща, вдуплю
Dmitry
89 - mov r/m64, r64 значит тут будет 0x49 0x89 11b ??? регистр 0x4D 0x89 11b ??? регистр 8B - mov r64, r/m64 значит тут будет 0x4C 0x8B 11b регистр ??? 0x4D 0x8B 11b регистр ???
Dmitry
да, четыре маски
Ask
А проблема в чем?)
Ask
Разобрал же все уже
Dmitry
ну я же описал выше на вход - три байта и регистр reg1 нужно определить, являются ли эти три байта инструкцией mov reg1, any_reg и получить any_reg, если да
Ask
Это цель, а трабл в чем?)
Dmitry
а, трабла нет, я просто последовательно разбирал
Dmitry
вслух
Ask
Сталобыть ты сделал?)
Dmitry
ща проверю
Dmitry
ага, все верно
Dmitry
так, для регистра rax - rdi, еще две маски: 0x49 0x8B 11b регистр ??? 0x4C 0x89 11b ??? регистр
Anonymous
mov eax
Ned
А если сделать mov rax, eax, обнулится ли старшая половина rax?
Anonymous
ebx как название порнофильма
Anonymous
сколько весить в байтах?
Ned
Ну, задача обнулить старшую половину только, и всё. Спасибо
Ned
То есть, mov eax,eax
Ned
?
Ned
А это не будет оптимизировано, вообще говоря?
Anonymous
6502
­
Ахтунг!
Ask
а вдруг она постигла дзен
­
Если вдруг она действительно девушка и умеет в ассемблер -- женюсь.
Ask
в очередь)
­
в очередь)
Угу, за мной.
Anonymous
­
Кубик эльбрусный?
Крылатый
О! Вкусно!
Anonymous
внатуре квад
­
Где добыл и во сколько обошёлся. Можно в криптоличку, если инфа не для общего доступа.
Anonymous
Anonymous
отечесвенный суровый майнинг
Anonymous
Anonymous
­
Мне десктоп интересен. Кстате, вот забавный момент...
Anonymous
по цене как эпл работает под линухом
Anonymous
десктопный вариант
­
http://youinf.ru/processor-elbrus-v-massy-ili-territoriya-smyslov/
­
Начиная с "Территория смыслов. Заявления Путина" внимательнее
Дмитрий
в середине платы - саморез черный вспомнил как кто-то куллер к плате черными саморезами насквозь))))