Всегда ли должен изменяться счетчик программы (по такту)? - PullRequest
2 голосов
/ 08 августа 2011

Я не очень знаком с теорией вычислений (программного обеспечения), и я подумал над этим вопросом - всегда ли должен меняться компьютер (счетчик программ) (я думаю, при каждом новом такте)?

Я немного поискал в Интернете и нашел Справочное руководство по программированию для Commodore 64 ( хе:) ), подтверждающее это: " ... Commodore 64 (или, если уж на то пошло, любой компьютер), счетчик программ всегда меняется"(а также Глава 6: Жесткий, мягкий или твердый? );но я просто хотел прокомментировать это здесь.

Я думал, что если команда установит ПК (или, скорее, следующий ПК), поэтому следующий адрес выполнения будет таким же, как его текущий, выход из этого цикла будет невозможен (если только не существует какой-либо внешней команды).прервать, конечно)?

Ответы [ 2 ]

1 голос
/ 08 августа 2011

Счетчик программы изменяется, когда его нужно изменить. Если ваша текущая инструкция занимает некоторое время или ваша программа не выполняется в текущий момент (помните, что на большинстве компьютеров выполняется более одного потока выполнения), нет необходимости менять ее при каждом такте.

Да, изменяя ПК таким образом, чтобы он менялся на начало набора инструкций, который устанавливает себя в начало набора инструкций, который устанавливает себя ... как вы можете видеть, да, это приведет к бесконечности петля. Это в значительной степени то, о чем была старая ситуация «20 GOTO 10».

1 голос
/ 08 августа 2011

Вообще говоря, счетчик программы не должен меняться на каждом такте.Выполнение инструкции может занять несколько тактов, а затем, когда она закончится, счетчик программы изменится.

...