Teste se o valor no EAX é igual a qualquer valor em uma matriz x86

Estou tentando testar se o valor aleatório gerado no eax é igual a qualquer valor em uma matriz que eu aloquei. O loop externo gera a matriz e a grava na tela e na matriz. O loop interno deve testar se o valor existe na matriz. Sei que não estou fazendo o loop interno corretamente, mas não sei como corrigi-l

Ele monta muito bem, mas quando tento executar, recebo apenas uma tela de janela cmd em branco. Também estou usando bibliotecas Irvine32. Meu código está abaixo:

EDITA: Agradeço sua ajuda até agora, mas agora tenho dois problemas. A primeira é que, quando tento avaliar o número no eax por exclusividade em relação à minha matriz, recebo um erro de violação de acesso. Meu código para gerar o array e testá-lo está abaixo:

RandomArray PROC uses EAX

    call Randomize 
    mov esi, OFFSET arr
    mov edi, OFFSET arr
    mov ebx, TYPE arr 
    mov ecx, 15
    L1:
        mov eax, [79 - 19]
        push eax
        call RandomRange
        add eax, 19
        search1:
                 mov edx,[esi]
                 cmp eax,edx                 ; compares the values in the array and the random int
                 je L1                       ; jumps if the values are equal
                 add esi,4                   ; moves to next byte to check again
                 loop search1                ; repeats loop
        mov [esi],eax
        pop eax
        add esi, ebx
        loop L1
    ret
RandomArray ENDP
        pop ecx     
        loop OUTER_LOOP

    jmp FINISHED

    SWAP:
        mov bl, [esi]
        mov dl, [esi+1]
        xchg bl,dl 
        mov [esi],dl 
        mov [esi+1],bl
        jmp CONTINUE 

    FINISHED:
    ret

Agradecemos sua ajuda com antecedênci

questionAnswers(2)

yourAnswerToTheQuestion