Процессор имеет регистр PC (счетчик программ), содержащий адрес следующей инструкции, которая должна быть выполнена. При сбросе ПК устанавливается на фиксированное значение, с которого начинается выполнение.
Первый байт каждой инструкции является байтом кода операции; его кодирование определяет, что будет делать инструкция и сколько байтов операнда потребуется. Процессор извлекает байт кода операции из адреса в ПК и увеличивает значение ПК. Проверяется код операции и извлекаются все необходимые байты операнда, всегда из памяти, на которую указывает ПК, которая увеличивается для каждого из них. Как только полная инструкция будет получена, ПК укажет на код операции для следующей инструкции.
Затем ЦП выполняет операции, определяемые байтом кода операции и его операндами, это называется выполнением инструкции. Выполнение может изменить ПК в случае перехода, например, но в конце выполнения ПК будет указывать на байт кода операции следующей инструкции для выполнения, и цикл, называемый циклом выборки-выполнения, продолжается.
Ошибки в программах довольно часто связаны с тем, что ПК меняется на значение, которое не является началом инструкции, написанной программистом/компилятором. ЦП не может знать об этом и продолжает работать независимо, выполняя содержимое памяти, которое никогда не предназначалось для выполнения, и выполняя по существу случайные операции.
Отличным ресурсом для понимания того, как все это устроено, является Элементы вычислительных систем. содержимое доступно на этом веб-сайте.
Надеюсь, это поможет.
person
HBP
schedule
19.09.2013