ThranduilOfTheWoods
@ThranduilOfTheWoods

Используется ли сейчас микропрограммирование/микропрограммы?

Я немного запутался в организации работы компьютера. Процессор способен исполнять только программы, написанные на машинном языке. Что это значит? При компиляции это означает, что на носителе информации создается определенная последовательность бит, которая при считывании будет понятна процессору, нежели та что представлена на языке высокого уровня. Машинный язык - самый низкий уровень. Но где тут применяется микропрограмма? Как я понял - это какой-то интерпретатор команд программы, которую написал программист. Но разве при компиляции компилятор не переводит программу сразу на машинный язык? Exe-файл - это файл на машинном языке? Или компилятор не переводит программу на машинный язык, а на какой-то язык, который потом интерпретируется микропрограммой? Как-то запутано и непонятно.
  • Вопрос задан
  • 989 просмотров
Решения вопроса 1
@pfg21
ex-турист
exe содержит машинный код x86 (или x86-64), который до недавнего времени "аппаратно" исполнялся на x86-процессоре. тут x86-код будет "самым низким уровнем".

современный проц - сложная хитроумная структура, которая машинный x86 код преобразует в risc-код и исполняет только его. т.е. есть набор аппаратных risc-ядер, которые эмулируют работу x86 ядра.
тут x86-код не будет "самым низким уровнем", хотя за пределами процессора об этом никто не догадывается :)
микрокод собственно и описывает систему преобразования x86 в risc-код.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
Не путайте микропрограммы (в основном это прошивки разных устройств, которые сложно назвать операционной системой)
И микрокод процессоров
https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D...

p.s. а .exe файл действительно содержит бинарный код (машинный код), но кроме этого .exe файл, в отличие от .com файла это контейнер со сложной внутренней структурой, которая позволяет хранить и код программ, и данные (текст, диалоги) и графику (иконки и др) и в принципе вообще любой контент.
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
Если для упрощения опустить разные там конвейеры и прочее, то процессор кроме прямых команд управления сумматором и регистрами, имеет ещё дополнительные команды: операции числами с плавающей точкой (бывший сопроцессор), управление мультимедиа MMX и прочее — по сути подпрограммы.
Дополнительные наборы инструкций
5a78b7b8dbf37521716326.png
Ответ написан
Комментировать
Griboks
@Griboks
Микропрограмма, это когда машинный код семейства процессоров компилируется в машинный код конкретной модели процессора. То есть программа переводится в микропрограмму. Таким образом поддерживается совместимость с "старевшими" программами.
Ответ написан
@d-stream
Готовые решения - не подаю, но...
Если совсем обобщенно:
процессор может выполнять машинные команды - та самая скомпилированная программа
В то же время некоторые процессоры позволяют программировать машинные команды. Это можно назвать микропрограммами.

То бишь для процессоров с "типа CISC" архитектурой каждая команда (например MOV Reg, Mem) реализуется микропрограммной на уровне RISC уровня процессора.
Применительно к x86 это может фигурировать в терминах "микрокоды".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы