Ensamblador - Otro codigo de ayuda

 
Vista:

Otro codigo de ayuda

Publicado por bubulka (3 intervenciones) el 27/08/2003 13:24:22
Que hace esto?
cli
asm{
mov ax, seg rutina
mov dx, ax
mov dx, offset rutina
mov al, 05h
mov al 25h
int 21h
}
sti
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Otro codigo de ayuda

Publicado por Tongas (18 intervenciones) el 28/08/2003 01:38:32
Esta bien copiado???....
te cuento que hay una doble asignacion.. osea, estas dando un numero a al (mova al,05), y despues otro, (mov al,25)... lo que creo es que uno de los dos tiene que ser ah... para que la int 21 pueda hacer algo...
Creo que estas haciendo algo con un archivo....pero no se si hay cosas de mas o de menos... Revisalo!
Tongas


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Otro codigo de ayuda

Publicado por Néstor (5 intervenciones) el 30/08/2003 07:40:42
Hola, el código que pusiste está mal, como bien dice Tongas. Supongo que lo que intenta hacer es poner una rutina propia que se dispare como una interrupción. Si esto es así, el código corregido sería:

mov ax, seg rutina ; escribe en AX el segmento donde se
; encuentra el programa llamado "rutina"
mov dS, ax ; pone ese valor en DS (un registro de
; segmento y no en DX)
mov dx, offset rutina ; pone en DX el offset de la misma rutina
; con estas instrucciones tener DS:DX
; apuntando a "rutina"
mov al, 05h ; coloca en AL el 05h
mov aH 25h ; coloca un 25h en AH (y no en AL)
int 21h ; Llama a la INT 21h, esto es, ejecuta la
; función 25h (lo que está en AH) del SO.

En particular la función 25h cambia la entrada del vector de ierrupciones (en este caso la entrada 05h). Cada vez que se ejecute una interrupción del tipo 5, se va a ejecutar "rutina"

Saludos

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar