WCU / Cybersecurity
~/CSC 471/Class 03/KP 11
Class 03 · KP 11 / 21

...and its Disassembly

add_squares:
    push rbp                 ; prologue: save old frame ptr
    mov  rbp, rsp            ; new frame base
    mov  [rbp-0x14], edi     ; store param a
    mov  [rbp-0x18], esi     ; store param b
    mov  eax, [rbp-0x14]
    imul eax, eax            ; a * a
    mov  [rbp-0x4], eax      ; x = a*a
    mov  eax, [rbp-0x18]
    imul eax, eax            ; b * b
    mov  [rbp-0x8], eax      ; y = b*b
    mov  edx, [rbp-0x4]
    mov  eax, [rbp-0x8]
    add  eax, edx            ; x + y  -> return value in eax
    pop  rbp                 ; epilogue
    ret