← Back to Articles

Assembly Optimization Tips

Writing Efficient Assembly

Optimize your assembly code for better performance.

Tip 1: Minimize Memory Access

Registers are much faster than memory. Keep frequently used values in registers:

// Slow: Repeated memory access\nLDR R0, 100\nADD R0, R0, #1\nSTR R0, 100\nLDR R0, 100\nADD R0, R0, #1\nSTR R0, 100\n\n// Fast: Use register\nLDR R0, 100\nADD R0, R0, #1\nADD R0, R0, #1\nSTR R0, 100

Tip 2: Use Shifts for Power-of-2 Operations

// Slower multiplication\nMOV R0, #5\nMOV R1, #8\nMUL R2, R0, R1   // R2 = 40\n\n// Faster with shift\nMOV R0, #5\nLSL R1, R0, #3   // R1 = 5 * 8 = 40

Tip 3: Reuse Registers

Don't waste registers. Reuse them when values are no longer needed:

MOV R0, #10\nADD R1, R0, #5   // R1 = 15\n// Done with R0, reuse it\nMOV R0, #20\nADD R2, R0, R1   // R2 = 35

Tip 4: Eliminate Redundant Operations

// Redundant\nMOV R0, #5\nMOV R1, R0\nMOV R2, R1\n\n// Optimized\nMOV R0, #5\nMOV R2, R0

Tip 5: Plan Register Allocation

Plan which registers hold what data to avoid unnecessary moves.