Когда
мы говорим о компьютерах, мы часто используем термины, которые, хотя и
важны, редко объясняются простыми словами. Сегодня я хочу коснуться
такого фундаментального понятия, как архитектура наборов команд
(Instruction Set Architecture), или ISA. Если объяснять максимально
точно и ёмко, то ISA, это своего рода "словарь" и "грамматика" для
процессора. Это набор всех команд и инструкций, которые процессор умеет
понимать и выполнять. Представьте, что процессор, это ваш мозг, а ISA,
это тот язык, на котором вы думаете. Без этого языка мозг, как бы он ни
был мощен, не сможет ничего сделать.
Существует несколько
основных типов ISA, но наиболее распространёнными в персональных
компьютерах являются x86 (и её 64-битная версия x86-64 или AMD64), а
также ARM. И вот тут начинается самое интересное. Процессоры, которые
используют разные ISA, несовместимы на уровне машинных инструкций. Это
означает, что программа, скомпилированная для процессора с архитектурой
x86 (например, Inte