Проверьте, совпадает ли значение в EAX с любым значением в массиве x86

Я пытаюсь проверить, совпадает ли случайное значение, сгенерированное в eax, с любым значением в массиве, который я выделил. Внешний цикл генерирует массив и записывает его на экран и в массив. Предполагается, что внутренний цикл проверяет, существует ли значение в массиве. Я знаю, что я не делаю внутренний цикл правильно, но я не уверен, как это исправить.

Он собирается просто отлично, но когда я пытаюсь запустить, я получаю только пустой экран окна cmd. Также я использую библиотеки Irvine32. Мой код ниже:

РЕДАКТИРОВАТЬ: Я ценю, что ваши ребята помогают до сих пор, но теперь у меня есть две проблемы. Во-первых, когда я пытаюсь оценить число в eax для уникальности моего массива, я на самом деле получаю ошибку нарушения доступа. Мой код для генерации массива и его тестирования приведен ниже:

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

Заранее благодарны за Вашу помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос