#assembly #cpu #machine-code
#сборка #процессор #машинный код
Вопрос:
Или есть инструмент для такого рода работы?
Я также хочу получить соответствующий машинный код для каждой инструкции.
Комментарии:
1. ДА. Какой процессор вы ищете конкретно?
2. Итак, что вы пытаетесь тогда сделать? Программное обеспечение (или это виртуальная машина) скомпилировано для определенной архитектуры.
3. Упс, мой процессор — Intel Pentium, где я могу найти инструкции / машинный код, который он поддерживает?
4. Игнорируя все ответы, ориентированные на x86, приведенные ниже, в общем случае вам нужно будет эмпирически определить все доступные инструкции на основе наблюдаемого поведения. Удачи с этим.
Ответ №1:
Инструкция CPUID сообщает, какие функциональные возможности поддерживает процессор для процессоров x86.
http://www.intel.com/assets/pdf/appnote/241618.pdf
Вам придется обратиться к справочным руководствам по инструкциям для кодов операций, процессор никак не может сообщить вам, что ‘код операции 0x?? является ли инструкция XYZ программной.
Ответ №2:
То, что вы ищете, — это информация о наборе команд. Что касается процессоров Intel, вы можете посмотреть здесь: http://www.intel.com/products/processor/manuals /.
Для x86-64 и Itanium обратитесь к главе 3 в этом PDF:http://www.intel.com/Assets/PDF/manual/325383.pdf
Каждая архитектура, о которой я достаточно заботился, чтобы изучить это глубоко, имеет аналогичное руководство.
Ответ №3:
Я бы предположил, что нет, поскольку это то, что процессор должен был бы поддерживать. Погуглите свой процессор.
Комментарии:
1. Я предполагаю, что есть какой-то способ, которым процессор сообщает ОС, какие инструкции он поддерживает, и это с помощью programe.
2. Нет, я думаю, что ОС закодирована таким образом, что она заранее знает все инструкции (больше похоже, что она была скомпилирована правильно, и она может отправлять соответствующие инструкции). Если бы это было возможно, то компиляторам не нужно было бы ничего знать о процессоре для компиляции. они могли бы просто запросить у ОС набор istruction.
Ответ №4:
CPU-Z — бесплатная программа, которая вернет поддерживаемые инструкции.
Чтобы получить эту информацию с помощью кода, я полагаю, вам понадобятся глубокие знания ASM Assembly.