Как компилятор узнает о наборе команд моего процессора?

я прочел тот

Компилятор преобразует код, написанный на понятном человеку языке программирования, в
представление машинного кода, которое понимает ваш процессор.

Как компилятор узнает о наборе команд моего процессора?

Любая ссылка для понимания работы ассемблера, компоновщика и загрузчика будет полезна.

4

Решение

Как компилятор узнает о наборе команд моего процессора?

Большинство компиляторов знают только, как генерировать код для конкретного процессора (или небольшого их количества). Каждый целевой процессор требует, чтобы кто-то написал для него бэкэнд компилятора, и эта задача нетривиальна.

GCC поддерживает большое разнообразие целей, но даже GCC создан для передачи кода только для нескольких целей. Другими словами, вы можете построить GCC для испускания кода для x86_64 а также i*86 процессоры, и вы можете создать еще одну копию для испускания кода для PowerPC, но вы не можете создать один GCC, который будет производить код для всех трех.

Любая ссылка, чтобы понять работу ассемблера, компоновщика и загрузчика

Поиск в Google по приведенным выше терминам привел меня Вот.

6

Другие решения

По сути, каждая комбинация аппаратного и программного обеспечения требует своего собственного компилятора. Таким образом, даже несмотря на то, что вы могли бы написать код C для его компиляции и запуска на компьютере Windows, вам все равно понадобится компилятор, который отличается от реализации по сравнению с компилятором C для компьютера Apple.

Просто добавим, что есть компиляторы, которые генерируют код для аппаратного обеспечения, который отличается от того, на котором они работают. Простой пример — продукты Arduino. Arduino IDE работает на компьютере Windows (и других), но код скомпилирован для микропроцессора Atmel на плате Arduino. Кроме того, каждый стиль платы (UNO и т. Д.) Имеет свой вид микропроцессора Atmel, поэтому в IDE вы должны определить цель своего эскиза, чтобы компилятор мог внести необходимые коррективы для работы с конкретным аппаратное обеспечение (набор инструкций).

Эта идея также применима к ассемблерам и компоновщикам (возможно, немного меньше).

5

По вопросам рекламы [email protected]