Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Hardware » Общие вопросы » Формат инструкции Intell

Модерирует : Akam1, Dr_StandBy, vertex4

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Triton77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://www.e-reading.club/chapter.php/75418/2/Kasperski_-_Tonkosti_dizassemblirovaniya.html
 
1. Согласно рис.1. инструкция начинается с префикса. Но в тексте под рис.1. сказано, что единственное обязательное поле - код операции. А как определить, что инструкция не имеет префикса?
2. Сколько бит занимает префикс?
3. В тексте сказано, что префиксов может быть несколько. А как определить их количество?

Всего записей: 49 | Зарегистр. 25-04-2017 | Отправлено: 14:48 26-04-2017
AntiMember

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А как определить, что инструкция не имеет префикса?

Никак. Тут только надо смотреть текст проги целиком. Смотреть на предыдущий байт и на текущую инструкцию, может ли она иметь префикс. А еще самому надо предопределять, для какой разрядности
была произведена компиляция и, соответственно, выравнивание.

Всего записей: 9012 | Зарегистр. 13-09-2010 | Отправлено: 15:25 26-04-2017
Triton77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 49 | Зарегистр. 25-04-2017 | Отправлено: 10:45 27-04-2017 | Исправлено: Triton77, 10:51 27-04-2017
AntiMember

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
По дефолту процессор разве не в реальном режиме стартует?

Ага, и не с нулевого адреса и еще кучка дефолтных параметров, которые просто нужно знать.
Я не пойму, вам шашечки, или ехать ? Я-ж написал, что префикс определяется компилятором при
необходимости. А вот с реверсом (дизасм) "немного сложнее". Тут как с аглицким предложением -
значение некоторых слов только по контексту, дочитав все предложение (т.е. инструкцию).

Цитата:
По-Вашему это значит, что NOP вообще не может иметь префикса.

Ну уж нет. Я думал, вы спросить зашли. А вам просто, потрындеть-поумничать - увольте.
И не пойму, каким боком это все к железячной теме.

Всего записей: 9012 | Зарегистр. 13-09-2010 | Отправлено: 11:21 27-04-2017
AntiMember

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините, тока дошло. Мо-ж интересовало всё это со стороны проца ?
Дык процу усё по барабану. Он нормально работает только при нормальном коде.
А вот если встретит префикс не там, где надо - х.з. Но, скорее всего, - игнор или исключение.
Зависит от префикса и последующего опкода.

Всего записей: 9012 | Зарегистр. 13-09-2010 | Отправлено: 14:49 27-04-2017
Triton77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 49 | Зарегистр. 25-04-2017 | Отправлено: 14:27 28-04-2017 | Исправлено: Triton77, 14:55 28-04-2017
AntiMember

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
При чём здесь компилятор? Задача не сгенерить код, а выполнить. И он может быть написан хоть сразу на асме.

Взаимоисключающее утверждение. Компилятор не нужен только при написании в маш-кодах проца.
Я в маш-кодах писал проги только на 8080-85 и Z80. На более поздних только поправлял кусочки.

Цитата:
Это Вам шашечки, а мне написать виртуальную машину на 8086

Ну так и пишите. Слава богу инфы по интелу в нете хватает. Чего непонятно - запускаем удобный вам
дебаг, пишем нужный код, идем по шагам и смотрим регистры или память.

Цитата:
Нет, блин, со стороны ОЗУшного чипа.

Со стороны ОЗУ все адреса линейные (т.е. сегмет уже сдвинут и просуммирован с адресом). Сегменты
только со стороны проца.

Цитата:
Ну оригинальный процессор же - "железяка".

Дык проги все для железяк, окромя учебных и военных...

Всего записей: 9012 | Зарегистр. 13-09-2010 | Отправлено: 15:34 28-04-2017
Triton77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 49 | Зарегистр. 25-04-2017 | Отправлено: 17:28 28-04-2017 | Исправлено: Triton77, 17:56 28-04-2017
AntiMember

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так и запишем: сарказма не понимает.

Угу...

Цитата:
Ну или алгоритм, противоположный жадному: перебираем все короткие команды, если совпадение не найдено, значит есть префикс.

А вот идеальны алгоритм - х.з. - ваша задача. Я такое не писал, слава богу. Потому анализировал всегда
в дебагах опкод совместно с префиксом. Хотя, у реального проца вечный цикл, если не нарвется на
хальт, при кривом коде никто не отменял...

Всего записей: 9012 | Зарегистр. 13-09-2010 | Отправлено: 21:34 28-04-2017
Triton77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А вот идеальны алгоритм - х.з. - ваша задача.  
Ну при парсинге c++, например, обратный жадному не применим, так как в языке не соблюдается правило о том, что ни что короткое не должно совпадать с началом ничего более длинного. Там только жадина применима.

Всего записей: 49 | Зарегистр. 25-04-2017 | Отправлено: 08:37 29-04-2017 | Исправлено: Triton77, 08:39 29-04-2017
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Hardware » Общие вопросы » Формат инструкции Intell


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru