Prueba si el valor en EAX es el mismo que cualquier valor en una matriz x86
Estoy intentando probar si el valor aleatorio generado en eax es el mismo que cualquier valor en una matriz que he asignado. El bucle externo genera la matriz y la escribe en la pantalla y en la matriz. Se supone que el bucle interno prueba si el valor existe en la matriz. Sé que no estoy haciendo el bucle interno correctamente, pero no estoy seguro de cómo solucionarlo.
Se ensambla muy bien, pero cuando intento ejecutarlo solo aparece una pantalla de ventana cmd en blanco. También estoy usando las bibliotecas Irvine32. Mi código está abajo:
EDITA: Aprecio su ayuda hasta ahora, pero ahora tengo dos problemas. La primera es que cuando trato de evaluar el número en eax para la unicidad en mi matriz, en realidad obtengo un error de infracción de acceso. Mi código para generar la matriz y probarlo está a continuación:
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
Gracias por su ayuda por adelantado.