Intel ассемблер / документация по архитектуре?
Кто-нибудь знает, где будет лучшая "официальная" документация Intel, касающаяся низкоуровневой архитектуры / внутренних компонентов ассемблера? Как работает ESP, различные регистры, выбирающие значения из RAM и т. Д.?
Веб-сайт Intel огромен, и я мог найти веб-сайт Агнера Фога, но я ожидал, что для этого будет огромный документ.
2 ответа
Абсолютно точным справочником являются Руководства для разработчиков программного обеспечения для архитектуры Intel 64 и IA-32, они являются отличным ресурсом для понимания архитектуры x86 с точки зрения программиста (при условии, что вы уже знакомы со сборкой).
Я бы порекомендовал вам скачать объединенные тома с 1 по 3C (первая ссылка для скачивания на этой странице). Том 1 представляет собой отличный обзор архитектуры Intel x86(-64), включая различные подробности, касающиеся глубины конвейера, размеров регистров и доступных компонентов в их процессорах. Если вам нужно обратиться к тому, как работают конкретные инструкции, см. Vol. 2, гл. 3-4 (я полагаю, что кодирование бинарных инструкций будет рассмотрено позже в этом томе).
То, как работает сам ассемблер, зависит от того, какой ассемблер вы используете в первую очередь. Вы можете легко найти информацию об ассемблере для NASM/GAS на их соответствующих веб-сайтах, а для MASM существует множество ресурсов (32). Тем не менее, все это не зависит от того, как работает процессор, поэтому я считаю, что то, о чем вы просите, должно быть полностью отражено в документации Intel, указанной выше.
Хорошим обзором доступных ресурсов является вики-тег StackOverflow x86.
Если вы хотите обратиться непосредственно к Intel, руководства по разработке программного обеспечения для архитектуры Intel® 64 и IA-32 удовлетворят все ваши потребности. Это около 3800+ страниц...
Для анализа производительности вашего программного обеспечения очень полезен анализатор кода архитектуры Intel®.
И если ваш процессор устарел (например, тот, который не поддерживает AVX-512:-), вы можете использовать Эмулятор разработки программного обеспечения Intel®.