Есть ли способ получить все инструкции, которые мой процессор поддерживает программно?

#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.