Где я могу найти наборы инструкций для микропроцессоров Intel или AMD?

Извините, если это глупые вопросы или они не относятся к этому сайту. Я действительно не знаю, где еще я мог бы спросить это.

Хорошо, во-первых, я не очень понимаю, как работают наборы команд на микропроцессорах. Они реализованы через ассемблер? Использует ли Intel одинаковые наборы инструкций для всех микропроцессоров линейки процессоров, таких как Haswell или Ivy Bridge, или каждый конкретный микропроцессор отличается? Я всегда думал, что микроархитектура - это то же самое, что и набор инструкций, но, очевидно, это не так. Может ли кто-нибудь объяснить мне это? И последнее: есть ли место, где можно просматривать наборы инструкций микропроцессоров Intel или AMD?

Заранее большое спасибо.

1 ответ

Решение

Если вам нужен список инструкций для какого-либо ЦП, обычно вы хотите получить справочник по набору команд этого ЦП или справочник программистов.

Intel: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

AMD: http://developer.amd.com/resources/documentation-articles/developer-guides-manuals/ (Руководства программиста по архитектуре - это то, что вам нужно)

У Intel есть несколько процессорных архитектур, x86 является ее (и самой) самой популярной. x86 был (и продолжает) расширяться с течением времени, как правило, более поздние версии обратно совместимы с более ранними версиями. Например, первый процессор архитектуры Intel x86 был 8088. Затем вышел 80286. Он расширяет набор инструкций 8088. 80286 понимает все 8088 сборки. И так далее в течение 80386, 80486, Pentium, серии Core и серии i.

Я всегда думал, что микроархитектура - это то же самое, что набор команд

Нет. Микроархитектура "ниже" и реализует основную архитектуру. В этом случае Intel имеет много микроархитектур, которые реализуют различные ревизии набора команд x86. Микроархитектура - это не то, о чем вам нужно беспокоиться при изучении программирования на ассемблере. Вам необходимо знать, какую версию x86 (или архитектуру, а не микроархитектуру) вы используете, как, например, в Pentium есть инструкции, которых нет у процессоров 80386. Возможно, вы захотите начать с книги или чего-нибудь, что научит вас программировать 8088, так как это будет проще, и последующие версии архитектуры (286, 386 и т. Д.) Будут основаны на нем.

Хорошо, во-первых, я не очень понимаю, как работают наборы команд на микропроцессорах. Они реализованы через ассемблер?

Язык ассемблера позволяет программисту писать машинный язык с использованием чего-то, напоминающего читаемый человеком текст, и, как правило, позволяет использовать метки вместо запоминания необработанных адресов ОЗУ или ввода-вывода. Альтернативой может быть ввод кодов операций каждой инструкции вручную, что является очень утомительным заданием, учитывая количество инструкций и режимы адресации, которые имеет x86.

Каждая инструкция представлена ​​мнемоникой и переводится в одну инструкцию на машинном языке. Ассемблер возьмет ваш ассемблерный код (в текстовом файле) и соберет (НЕ компилирует) его в двоичный образ, который может запустить ЦПУ.

AMD скопировала набор инструкций Intel, но начала расходиться с инструкциями SSE, инструкциями VMM и, возможно, другими вещами. Тем не менее, большая часть того, что вы изучите для сборки Intel, будет применяться.

Другие вопросы по тегам