Микропроцессоры и микроконтроллеры

 
 
 
«Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.»
Brian W. Kernighan.
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципи роботи мікропроцесорів :: Управління послідовністю читання команд з пам'яті

Управління послідовністю читання команд з пам'яті

Функціонування процесора полягає в послідовної вибірки команд з пам'яті та їх виконанні. Черговий байт команд зчитується з тієї комірки пам'яті, адреса якої міститься в лічильнику команд PC . Після читання кожного байта автоматично виконується дію PC: = PC + 1 (див. мал. 4.3). Таким чином на апаратному рівні забезпечується читання кодів команд, розташованих в пам'яті послідовно один за одним.

rn

Якщо згідно з алгоритмом необхідно змінити пряму послідовність виконання команд (наприклад, при організації розгалуження в алгоритмах, при реалізації циклічної обробки даних), то для програмування подібних ситуацій слід використовувати спеціальні команди передачі управління або < strong> переходу . Дія цих команд полягає в тому, що в PC примусово завантажується нове значення, яке є адресою команди, наступного за алгоритмом, а не наступного за розташуванням в пам'яті. На мал. 4.4 показані приклад алгоритму, що містить галуження, і абстрактний приклад розміщення в пам'яті команд програми (без прив'язки до конкретного мікропроцесор).

rn

rn

Рис. 4.4. Схема виконання команди умовного переходу

rn

Нехай команда 3 має формат 3 байтів і є командою умовного переходу. Другий і третій байти цієї команди містять адресу команди 6. Таким чином, при зчитування всій команди 3 буде виконано дію
PC = PC + 3 (це буде адреса команди 4 ) . При виконанні команди 3 буде проведена перевірка деякого умови. У випадку істинності умови в регістр PC буде записано нову адресу - в даному випадку адреса команди 6 , який міститься в адресній частині команди 3 . Таким чином, наступною командою, зчитує з пам'яті, буде команда 6 , і, значить, буде виконана передача управління в потрібну точку алгоритму. У випадку ложность перевіряється умови вміст лічильника команд не зміниться, і наступного виконуваної командою буде команда 4 .