    ;   This program tests the numbers a, b and c to
    ;   see if they can be the legs and hypotenuse of
    ;   a right triangle: a^2 + b^2 = c^2

            segment .data
    a       dq      246         ; one leg of a triangle
    b       dq      328         ; another leg
    c       dq      410         ; hypotenuse ?
            segment .text
            global  main
    main:
            mov     rax, [a]    ; move a into rax
            imul    rax, rax    ; a squared
            mov     rdx, [b]    ; move b into rdx
            imul    rdx, rdx    ; b squared
            mov     rcx, [c]    ; move c into rcx
            imul    rcx, rcx    ; c squared
            add     rax, rdx    ; rax has a^2+b^2
            sub     rax, rcx    ; is rax 0?
            xor     rax, rax
            ret