SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: davolo en Martes 31 de Octubre de 2006, 23:50
-
:D
hola tal speor pùeda alguine ayudarme , no entiendo como con esa pekeña rutina puedo salir de cualkier programa en asm presionandop la tecla esc , si alguien me lo pudiera explicar o pasar un link con alguna onformacion sobrte este tema se lo agradeceria
saludos
MOV AH, 1
INT 16h
JZ Sigue
MOV AH, 0
INT 16H
;si presionas eSc finaliza el programa:
CMP AL, 1BH
JNZ Sigue
INT 19h
:lol:
-
:D
hola tal speor pùeda alguine ayudarme , no entiendo como con esa pekeña rutina puedo salir de cualkier programa en asm presionandop la tecla esc , si alguien me lo pudiera explicar o pasar un link con alguna onformacion sobrte este tema se lo agradeceria
saludos
Bueno primero que todo, en esta parte lo que hace es:
MOV AH, 1
INT 16h
JZ Sigue
leer el estado del teclado, si no se ha presionado ninguna tecla la bandera ZF esta puesta por lo que se hace esa comparacion JZ,si la bandera ZF esta puesta salta a sigue
MOV AH, 0
INT 16H
pero si no esta puesta es que hay una tecla por lo que luego se lee con la int 16H y AH=0, la tecla presionada queda en AL
CMP AL, 1BH
JNZ Sigue
INT 19h
luego se hace una comparacion si AL = 1B, 1B es el codigo ascii hexadecimal de la tecla ESC (checa Tabla Ascii (http://ascii.cl/es/)), si no es igual salta a sigue, pero si es igual ejecuta la instruccion 19h que lo que hace es activar la rutina de arranque de la computadora, nunca habia visto que se podia finalizar un programa asi :blink: , generalmente se finaliza con AH=0 e INT 21H, pero bueno
saludos :hola:
-
MASM style:
Codigo segment 'code'
org 100h
main:
int 19h
Codigo ends
end main
Un ejecutable VALIDO (para MS-DOS obviamente) de 2 bytes B)
"... In 16 bit code MASM can produce a 2 byte com file (int 19h) ..."
http://www.masm32.com/masmmyth.htm (http://www.masm32.com/masmmyth.htm)
-
:D muchas gracias Tania_D y Eternal Idol, ya me kedo muy claro , creo q podria cambiar lo siguiente verdad
int 19 = mov ah, 4ch
int 21h
y debera funcionarme , voy a probar gracias y saludos
-
:D muchas gracias Tania_D y Eternal Idol, ya me kedo muy claro , creo q podria cambiar lo siguiente verdad
int 19 = mov ah, 4ch
int 21h
y debera funcionarme , voy a probar gracias y saludos
Efectivamente, tambien te funcionaria y es lo mas "actual". Con ah a 0 tambien funciona.
-
okis gracias brothers :D