sum: // Label endbr64 // Indirect Branch target (No effect on code's logic) pushq %rbp // Preserve caller stack frame movq %rsp, %rbp // Set up new stack frame movl %edi, -20(%rbp) // Arg1 register -> stack movl %esi, -24(%rbp) // Arg2 register -> stack movl -20(%rbp), %edx // stack[Arg1] -> gp register movl -24(%rbp), %eax // stack[Arg2] -> gp register addl %edx, %eax // Add Arg1 + Arg2 -> gp register movl %eax, -4(%rbp) // result -> stack movl -4(%rbp), %eax // stack[result] -> return register popq %rbp // Restore caller stack frame ret // jump back to caller