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/
Крылатый
Начиная с "Территория смыслов. Заявления Путина" внимательнее
Дмитрий
в середине платы - саморез черный
вспомнил как кто-то куллер к плате черными саморезами насквозь))))
Крылатый