Это прошивка машинный код? - PullRequest
2 голосов
/ 07 февраля 2011

С точки зрения программных слоев, составляющих процессор.

c> сборка> машинный код> микрокод> схемы

Куда падает прошивка?Это машинный код?Все ли программы должны быть скомпилированы в машинный код или они могут остановиться при сборке?

Ответы [ 4 ]

5 голосов
/ 07 февраля 2011

С точки зрения программных слоев, составляющих процессор.

В вашей терминологии есть некоторая путаница.ЦП - это процессор, сложная схема, которая подает значения, которые представляют машинные инструкции и выполняет результирующие операции, которые изменяют регистры и память;он не состоит из слоев программирования.

c> сборка> машинный код> микрокод> схемы

Это не точная / действительная иерархия.Программы, написанные на C, переводятся компилятором в более низкую форму;эта нижняя форма может быть языком ассемблера, но также может быть прямым двоичным машинным кодом или кодом для уровня виртуальной машины, такой как Java JVM.Языки ассемблера являются близкими представлениями машинного кода, где инструкции, регистры и ячейки памяти имеют символические имена;они переводятся ассемблером в двоичный код, но этот процесс намного проще и прямее, чем для компилятора.Микрокод - это низкоуровневая форма машинного кода.Машинный код обычно не транслируется в микрокод, а скорее интерпретатор машинного кода - ЦП - может быть программой, написанной / реализованной в микрокоде, которая выполняется процессором микрокода низкого уровня.Схемы являются базовым аппаратным слоем, который выполняет операции микрокода (или машинного кода, если нет уровня микрокода).

Куда падает микропрограмма?Это машинный код?

Прошивка - это машинный код / ​​микрокод в фиксированной («фирменной») форме, находящийся в ПЗУ или СППЗУ или даже встроенный непосредственно в схемы.Это форма программного обеспечения, но отличается тем, что она не находится в (легко) модифицируемой памяти.Он концептуально отличается от аппаратного обеспечения, поскольку аппаратное обеспечение - это схемы, память, шины и т. Д., Которые не представляют собой программу.

Все ли программы необходимо скомпилировать в машинный код или они могут остановиться?при сборке?

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

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

3 голосов
/ 07 февраля 2011

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

1 голос
/ 07 февраля 2011

Зависит от того, что вы называете «прошивкой». Если вы ссылаетесь на программное обеспечение встроенной системы, то это программа (написанная, например, на C), которая компилируется в машинный код. В некоторых ситуациях «прошивка» может также относиться к микрокоду.

Вы не можете остановиться на уровне сборки: машине (реальной или виртуальной) нужен машинный код.

Однако не все программы скомпилированы: есть интерпретаторы , которые непосредственно выполняют исходный код.

0 голосов
/ 07 февраля 2011

Прошивка w / r для процессора - это микрокод.

Машинный код - это то, что модели сборки.

...