Мы узнаем о том, как компьютер фактически выполняет C-программу в классе. Я не совсем понимаю, как сочетаются следующие части: процессор (или процессор), файлы регистров, стеки времени выполнения, счетчик программ, виртуальные адреса, память программ.Нужна помощь в понимании базовой компьютерной архитектуры
Позвольте мне объяснить, что я в настоящее время знаю или думаю, что я понимаю:
- Процессор (или CPU), что будет компилировать файл .c в исполняемый машинный код уровня, что компьютер может понять и выполнить.
Существует стек, на который могут быть нажаты команды, чтобы компьютер мог выполнять указанные инструкции. Вопросы: Где находится этот регистр стека в отношении процессора? Где вытягиваются инструкции?
Этот стек может содержать регистры, такие как% eax,% ecx,% edx и т. Д., Которые иногда содержат числовые значения и иногда содержат адреса, указывающие на элементы, хранящиеся в «памяти». Вопрос: Снова где расположена эта память?
Существует программная память, которая содержит исполняемый машинный код для программы, блоки памяти, которые пользователь выделяет, и стек времени выполнения для управления процедурными вызовами и возврата. Вопросы: Опять же, где находится эта программная память, расположенная по отношению к процессору?
Мои мысли настолько перемешаны прямо сейчас я даже не уверен, что я задавать правильные вопросы или если эти темы даже должны быть связаны ... схема рода было бы очень полезно, потому что я просто не вижу, как все должно сочетаться. Я даже не знаю, что я хочу сказать, что даже отдаленно правильно ...
1 является составителем, а не процессор. –
К сожалению, этот вопрос слишком широк для переполнения стека. Есть много хороших руководств по компьютерной архитектуре, которые уже написаны и доступны. Любой ответ здесь может только осветить основы. –
Ohhhh K. Я думаю, что было бы в ваших интересах немного побольше узнать, прежде чем спрашивать. Есть много, много сайтов, которые проходят через основы процессоров, регистров, памяти, компиляторов и языков высокого уровня, таких как C. – Kinnectus