Частина 22 – Хакінг ADC

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

Щоб підсумувати знову, ADC є тим же, що і ADD, окрім того, що воно додає 1, якщо флаг кара встановлений. Нам необхідно особливу увагу звернути на CPSR або реєстр стану, коли ми працюємо з ADC.

Давайте знову переглянемо свій код:

Ми додаємо 100 десятичне в r1, 4,294,967,295 в r2, 100 десятичне в r3 і 100 десятичне в r4. Потім ми додаємо r1 і r2 і розміщуємо в r0 і потім додаємо r3 і r4 і розміщуємо в r5.

Ми запускаємо програму і крокуємо до місця, де ми переміщаємо 4,294,967,295 в r2. Давайте хакуємо цей значення в r2 і змінимо його на 100 десятичне.

Давайте крокуємо кілька разів далі:

Також ми додаємо 100 десятичне і 100 десятичне разом в r3 і r4 і отримуємо 200 десятичне в r5! Чи пам'ятаєте ви минулу неделю, коли ми мали 201? Давайте розглянемо CPSR нижче.

Ми знову повинні пам'ятати, що біти 31, 20, 29 і 28 в CPSR вказують наступне:

біт 31 - N = Флаг Негативного

біт 30 - Z = Флаг Нульовий

біт 29 - C = Флаг Кара

біт 28 - V = Флаг Перезавантаження

Ми бачимо CPSR в 10 гекс. Найвисокі біти 10 гекс у бінарному вигляді 0001.

Отже, якщо значення в бінарному вигляді було 0001 біт 31, 30, 29 і 28 (NZCV) це означало б:

Флаг Негативного не встановлений

Флаг Нульовий не встановлений

Флаг Кара не встановлений

Флаг Перезавантаження встановлений

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

Наступна неділя ми вийдемо в SUB.

results matching ""

    No results matching ""