Частина 31 - Програма ASM 4 [Moving Дані між регістрами та пам'яттю]
Для повного змісту змісту всіх уроків, будь ласка, натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть розглянуті. https://github.com/mytechnotalent/Reverse-Engineering-Tutorial
У нашій четвертій програмі ми продемонструємо, як можна переміщувати дані між регістрами та пам'яттю.
У конкретному випадку ми перемістимо безпосередню вартість 777 десятичної у EAX. Потім ми перемістимо цю вартість, яка зберігається в EAX, в константну вартість в пам'яті, яка спочатку мала вартість 10 десятичної на час виконання. Увага: ми могли б назвати цю вартість будь чим, але я назвав її константою, оскільки вона була встановлена як константа в секції.data.
Як ви можете побачити, вона може бути змінена, тобто вона не є константою. Я вибрав цю назву навмисно, оскільки якщо вона була в чистій формі, вартість залишалася б 10 десятичною або 0xa в формі шістнадцятирічного числа.
Цей код є чисто навчальним, оскільки звичайно змінні дані встановлюються під секцією.bss, але я хотів продемонструвати, що вище можливе, щоб показати абсолютну гнучкість мови ассемблера.
Увага: щоб скомпільувати, ми пишемо:
as –32 -o moving_data_between_registers_and_memory.o moving_data_between_registers_and_memory.s
Аби зв'язати об'єкт file ми пишемо:
ld -m elfMDXX_i386XMDX -o moving_data_between_registers_and_memory moving_data_between_registers_and_memory.o
Я чекаю на побачення всіх наступної тижня, коли ми розпочнемо відлагоджувати наш четвертий програму мовою ассемблера!