Я знаю, что это очень распространенный вопрос. Но у меня в голове другой взгляд. Я просто попытаюсь сформулировать это здесь.
Из того, что я знаю, каждая инструкция, которую выполняет ЦП, написана на машинном языке, и все, что ЦП может сделать, это выполнить некоторые арифметические операции благодаря ALU и его транзисторам (если мы перейдем на аппаратный уровень).
Однако это легче напечатать, чем понять. Итак, если все, что ЦП делает, это сложение, вычитание и т. Д., То как программа, скажем, JAVA-программа с именем print Hello World, выполняется с этими арифметическими операциями?
Я имею в виду, как эта программа превращается в нечто, что является просто дополнением для процессора?
PS Если этот вопрос не относится к этому сайту, то я прошу прощения.
-----Часть вторая-----
Ладно. Спасибо всем, что ответили так быстро и с таким энтузиазмом. Я подумал, что лучше немного изменить свой вопрос, чем идти, комментировать все ответы и задавать их снова.
Так и здесь.
Во-первых, все ответили конкретно на примере Hello World. Это моя ошибка. Я должен был сохранить этот родовой. Пример Hello world ставит под вопрос устройства вывода и то, как его обработка не ограничивается только процессором, что справедливо отражено в ваших ответах.
Также многие из вас привлекли мое внимание, что процессор делает больше, чем просто дополнение. Я согласен с этим. Я просто не писал это и предполагал это полностью. Из того, что я понимаю, это процесс:
читать инструкцию из памяти (используя шины данных и адресов и программный счетчик)
- хранить данные в регистре внутри процессора
- Теперь ALU выполняет арифметические операции, конечно, после декодирования инструкции, или выполняет переход, если это инструкция if like
- И затем общение с другими ресурсами, если необходимо, например, с устройством вывода и так далее. Процессы вне этого пока тривиальны.
Таким образом, на шаге 3, где ЦП декодирует инструкцию и решает выполнить арифметическую операцию (здесь мы предполагаем, что не нужно выполнять никакой другой операции, например, выполнить переход по текущей инструкции ... поскольку арифметические операции в основном выполняются ... поэтому мы будем придерживаться этого ) На этом моя визуализация заканчивается. Как инструкция из моей программы - просто арифметическая операция для процессора. Он выполняет эту арифметическую операцию, и эта инструкция служит своей цели.
Надеюсь, на этот раз я прояснил ситуацию.
PS Я принимаю здесь большое предположение, что ALU просто не ограничивается фактической арифметической операцией, которую мы выполняем в наших программах, скорее он выполняет все инструкции, которые теперь находятся в двоичной форме, путем сложения или вычитания и т. Д. Их, чтобы получить результат, который они подразумевают. уступить. Если я здесь не прав, тогда ответьте правильно на мой вопрос.