hay un renglon que no tiene sentido, pero el resto esta bueno...
Mov ax,40h
--------
mueve a ax el valor 40 en hexa, pero lo que creo que quiere hacer
es pasar a ah a 0, y a al a 40 en hexa.... (recorda este numero)
etiq: Mov es, ax
---
Parte de declarar una bander (un punto donde va a retornar despues),
esta pasando a "es", el valor 40... ("es" por lo general guarda
sectores de memoria
Mov dx,es:[0]
------
Mueve a "DX" el valor del primer word del sector de es... osea
(0040:0000)
In al,dx
------
Recoradas el valor 40, bueno, esto pide la entrada del puerto 40. Lo
que este puerto da es el valor del contador de pulsos del cuarso del
reloj de la PC =P... osea: un numero aleatoreo.... y lo guarda en "dx"
cmp al, 17
------
se fija si al ( que vale 40) es igual que 17...
Je next
----
si la comprovacion anterior es verdadera.. (ya vimos que no) salta a
"next"... que supongo que es lo que sigue en el codigo...
Jmp etiq
--- -
salta a la bandera "etiq"... osea, vuele a pedir un numero aleatorieo, etc, etc.... NUNCA TERMINA.... osea, se te va a trabar la compu....
Suerte, segui investigando!!!!!!!!!
Tongas
Pta: De donde lo sacaste