С точки зрения программных слоев, составляющих процессор.
В вашей терминологии есть некоторая путаница.ЦП - это процессор, сложная схема, которая подает значения, которые представляют машинные инструкции и выполняет результирующие операции, которые изменяют регистры и память;он не состоит из слоев программирования.
c> сборка> машинный код> микрокод> схемы
Это не точная / действительная иерархия.Программы, написанные на C, переводятся компилятором в более низкую форму;эта нижняя форма может быть языком ассемблера, но также может быть прямым двоичным машинным кодом или кодом для уровня виртуальной машины, такой как Java JVM.Языки ассемблера являются близкими представлениями машинного кода, где инструкции, регистры и ячейки памяти имеют символические имена;они переводятся ассемблером в двоичный код, но этот процесс намного проще и прямее, чем для компилятора.Микрокод - это низкоуровневая форма машинного кода.Машинный код обычно не транслируется в микрокод, а скорее интерпретатор машинного кода - ЦП - может быть программой, написанной / реализованной в микрокоде, которая выполняется процессором микрокода низкого уровня.Схемы являются базовым аппаратным слоем, который выполняет операции микрокода (или машинного кода, если нет уровня микрокода).
Куда падает микропрограмма?Это машинный код?
Прошивка - это машинный код / микрокод в фиксированной («фирменной») форме, находящийся в ПЗУ или СППЗУ или даже встроенный непосредственно в схемы.Это форма программного обеспечения, но отличается тем, что она не находится в (легко) модифицируемой памяти.Он концептуально отличается от аппаратного обеспечения, поскольку аппаратное обеспечение - это схемы, память, шины и т. Д., Которые не представляют собой программу.
Все ли программы необходимо скомпилировать в машинный код или они могут остановиться?при сборке?
Как отмечалось выше, язык ассемблера является символическим представлением машинного языка;он не может быть напрямую обработан процессором;он должен быть переведен на машинный язык.
Больше информации о всех этих терминах и проблемах можно найти в Википедии и других интернет-источниках, а также в вводных книгах по программированию.