>
<pre>
    %include 'nasmx.inc'

    IMPORT cdecl,printf

    PROTO my_pow2, uint32_t exp

    ENTRY my_main

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    [section .text]
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    %define EXPONENT 8

    PROC my_pow2, uint32_t exp
    LOCALS NONE
        mov eax, 1
        mov ecx, uint32_t [argv(.exp)]
        WHILE ecx,!=,0
            IF ecx,>,31
                xor eax,eax   ; return 0 to indicate error
                BREAK         ; break out of whi