Частина 8 - КПСР

Для повного змісту змісту всіх уроків натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть обговорені.

Реєстр КПСР зберігає інформацію про програму та результати певної операції. Біти, що знаходяться в відповідних регістрах, мають попередньо призначені умови, які перевіряються на наявність яких-небудь прапорів.

Всього 32 біти складаються в цей реєстр. Найвищі 4 з них найбільше хвилюють нас, які є:

Біт 31 – N = Прапор негативності

Біт 30 – Z = Прапор нульової величини

Біт 29 – C = Прапор перенесення (БЕЗПРИСТАТНІ ОПЕРАЦІЇ)

Біт 28 – V = Прапор переповнення (ЗНАЧЕННІ ОПЕРАЦІЇ)

При виконанні інструкції КПСР може бути оновлений, якщо він потрапляє до однієї з згаданих раніше ситуацій. Якщо відбувається одне з умов, в відповідні біти потрапляє 1.

Є дві інструкції, які безпосередньо впливають на прапори КПСР, які є CMP і CMN. CMP є порівнянням, наприклад:

CMP R1, R0 @ notational subtraction where R1 – R0 and if the result is 0, bit 30 Z would be set to 1

Найбільш логічна команда, яка звичайно слідує за цим, це BEQ = перехід, якщо рівні, тобто був встановлений прапор нульової величини, і здійснюється перехід до іншої метки всередині коду.

У разі CMP, якщо два операнди рівні, тоді результат є нулем. CMN здійснює той же порівняння, але з другим операндом, який був від'ємним, наприклад:

CMN R1, R0 @ R1 - (-R0) or R1 + R0

При роботі з командою SUB результат не оновлює КПСР, необхідно використовувати команду SUBS, щоб здійснити будь-яке оновлення прапорів відповідно.

Наступної тижня ми глибше вивчимо інформацію про реєстр зв'язку! Підтримуйте нас!

results matching ""

    No results matching ""