Частина 34 - Програма ASM 5 [Indirect Addressing З Registerами]

Для повного змісту змісту всіх уроків, будь ласка, натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть розглянуті. https://github.com/mytechnotalent/Reverse-Engineering-Tutorial

У нашій п'ятій програмі ми продемонструємо, як можна маніпулювати непрямим зверненням з реєстрів.

Ми можемо розмістити більше однієї значення в пам'яті, як вказано вище. У минулому наше місце пам'яті містить одне окреме значення. У вище вказаному ви можете побачити, що значення констант містить 11 окремих значень.

Це створює послідовний ряд даних, розміщених в пам'яті. Кожне значення даних займає одне одиницю пам'яті, яка є цілим числом або 4 байтами.

Ми повинні використовувати систему індексування для визначення цих значень, оскільки те, що ми створили вище, є масивом.

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

Увага! Масив починається з індексу 0. Тому в вище вказаному коді ми бачимо 1, що потрапляє в edi, який є індексом 2, який в кінцевому підсумку потрапляє в ebx.

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

Увага! Для збірки ми типуємо:

as –32 -o indirect_addressing_with_registers.o indirect_addressing_with_registers.s

Для зв'язування об'єкта file ми типуємо:

ld -m elfMDXX_i386XMDX -o indirect_addressing_with_registers indirect_addressing_with_registers.o

Я чекаю на побачення всіх наступної тижня, коли ми глибше вивчимо відлагодження нашої п'ятої програми збірки!

results matching ""

    No results matching ""