Мне не хватает понимания, как код, скомпилированный для процессора Intel, работает на процессоре AMD.
Мое базовое понимание состоит в том, что если вы, например, компилируете код C, компилятор преобразует исходный код в машинный язык, который будет содержать инструкции для конкретного процессора. Итак, вам нужно скомпилировать компилятор для любой платформы, которую вы хотите, чтобы ваше приложение использовало. Почему вам не нужен компилятор для AMD и Intel, и вам не нужно покупать программное обеспечение для конкретного процессора?
Я знаю, что процессоры AMD и процессоры Intel имеют некоторую совместимость со старыми инструкциями x86; что я хотел бы знать, как они это делают? Я имею в виду, что AMD или Intel не должны звонить друг другу и рассказывать друг другу свои коммерческие секреты, так как они могут создавать совместимые наборы инструкций?
Вся совместимость по-прежнему основана на наборе инструкций 386, с набором утверждений, таких как «ЕСЛИ ЦП AMD, сделайте это, В противном случае, если INTEL сделает это»?