Differences Between Compiler Optimization Levels -O0 and -O1 in ARMv8

Differences Between Compiler Optimization Levels -O0 and -O1 in ARMv8

This article explores the differences between the compiler optimization levels <span><span>-O0</span></span> and <span><span>-O1</span></span> under the ARMv8 architecture. While the core concepts are consistent with architectures like x86, there are ARM-specific behaviors in terms of register usage, instruction set features, and more. Overview of ARMv8 Architecture Rich Register Set: ARMv8 has 31 general-purpose registers <span><span>X0-X30</span></span> (64-bit) … Read more

Reverse Engineering of a Parameterless C Function with Return Value in 32-bit

Reverse Engineering of a Parameterless C Function with Return Value in 32-bit

Reverse Engineering of a Parameterless C Function with Return Value in 32-bit Below is a simple example of a C function that does not take any parameters but returns an integer value. Additionally, I provide step-by-step instructions for writing and viewing its assembly code using Visual Studio 2022. C Function #include <stdio.h> // Definition of … Read more