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