Programación General > ASM (Ensamblador)

 Una Explicacion Pliss

(1/2) > >>

davolo:
: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:

Toph:

--- Cita de: "davolo" ---: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


--- Fin de la cita ---
Bueno primero que todo, en esta parte lo que hace es:

--- Citar ---MOV     AH, 1
INT     16h
JZ      Sigue
--- Fin de la cita ---
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


--- Citar ---MOV     AH, 0
INT     16H
--- Fin de la cita ---

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

--- Citar ---CMP     AL, 1BH
JNZ     Sigue
INT     19h

--- Fin de la cita ---
luego se hace una comparacion si AL = 1B, 1B es el codigo ascii hexadecimal de la tecla ESC (checa Tabla Ascii), 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:

Eternal Idol:
MASM style:

--- Código: Text --- Codigo segment 'code'org 100hmain:int 19hCodigo endsend 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

davolo:
: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

Eternal Idol:

--- Cita de: "davolo" --- :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
--- Fin de la cita ---
Efectivamente, tambien te funcionaria y es lo mas "actual". Con ah a 0 tambien funciona.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa