Частина 13: Контрольні реєстри
Для повного змісту змісту всіх уроків натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть обговорені. https://github.com/mytechnotalent/Reverse-Engineering-Tutorial
Є п'ять контрольних реєстрів, які використовуються для визначення режиму роботи процесора і особливостей поточного виконуваного завдання. Кожен контрольний реєстр виглядає так:
CR0: Системний флаг, який контролює режим роботи і різні станів процесора.
CR1: (Не імплементовано зараз)
CR2: Інформація про помилку сторінки пам'яті.
CR3: Інформація про директорію сторінок пам'яті.
CR4: Флаги, які дозволяють використовувати особливості процесора і вказують можливості процесора.
Значення кожного з контрольних реєстрів не можна безпосередньо звертатися до нього, але дані в контрольному реєстрі можна перемістити в один з загальних регістрів, а коли дані знаходяться в регістрі GP, програма може досліджувати флаги бітів в реєстрі, щоб визначити режим роботи процесора разом з поточним виконуваним завданням.
Якщо необхідно змінити значення флагу контрольного реєстру, зміну можна зробити в даних регістру GP і потім перемістити реєстр в CR. Низькорівневі програми системи звичайно змінюють значення в контрольних реєстрах. Нормальні програми застосування рідко змінюють записи контрольних реєстрів, але вони можуть запитувати значення флагів, щоб визначити можливості процесора, на якому зараз працює програма.