Que tal amigos programadores aki les dejo unos codigos my utiles en el famoso lenguaje ensamblador primeramente aprenderemos a limpiar la pantalla que lo podemos hacer con las siguientes instrucciones
mov ax,0600h
mov bh,07h
mov cx,0000h
mov dx,184fh
int 10
*en la primera instruccion(mov ax,0600h) limpia la pantalla loque queremos hacer.
*la segunda instruccion (mov bh,07h) nos permite poner un color en la pantalla el 0 es el color que esta en el fondo y el 7 es es que esta disponible sobre la pantalla, claro estos son colores que yo puse, sepueden cambiar los conoles cambiando los numeros pero eso se los dejo al gusto de ustedes.
*la tercera instruccion (mov cx,0000h) es lo que nos permite poner desde donde va a empezar la limpieza de la pantalla.
*la cuarta instruccion(mov dx,184fh) es lo que mos permite poner hasta donde va a llegar la limpieza de la pantalla.
* y por ultimos la (int 10h) es la instruccion que nos permite llamar al BIOS y asi terminar con el proceso de limpieza.
Lo siguiente que veremos es, como desplegar un mensaje en pantalla.
Empezamos con escribir el mensaje que queremos desplegar esto de hace de la siguiente forma.
mov ah, 09h
lea cx, mensage
int 21h
* en la primera instruccion (mov ah,09h) es lo ke nos permite desplegar el mensaje.
*en la segunda instruccion(lea cx,mensaje) es el que manda a llamar el mensaje en este caso el mensaje se llama "mensaje" por eso despues de la coma le puse mensaje este nombre puede variar, debe recordar que al final del mensaje usted tiene que poner el simbolo $ para que el programa vea que es el final del mensaje.
*en la ultima instruccion (int 21h)llama al BIOS.
"aclaro el mensaje tiene que ser del mismo nombre que le pusiste al principio de lo contrario marcara un error y no se desplegara el mensaje
(datasg segment
mensaje db"mi nombre es$"
datasg ends )
este es un ejemplo de como declarar un mensaje, el mensaje es lo que esta escrito entre comillas y termina con $"
El siguiente codigo es para posicionar el curson el cuanquier parte de la pantalla, para que puedas empezara a escribir desde donde tu le pongas a tu programa.
Para realizar esto se debera ingresar este conjunto de instrucciones.
mov ah,02h
mov dh,03h
mov dl,0ch
int 10h
* el la primera instruccion (mov ah,02h) es lo que nos permite mover el cursor.
*la segunda instruccion (mov dh,03h) es la direccion de la fila, en este caso yo estoy posicionando el cursor en la fila 3 (hexadecimal).
*en la tercera instruccion (mov dl,0ch) es la direccion de la columna, en esta caso tambien yo estoy posicionando el cursor en la columna 12 solo que esta en hexadecimal.
*y por ultimo mandamos a llamar al BIOS.
El siguiente codigo nos permitira leer un caracter con eco.
Leer un caracter con eco quiere decir que al leer el caracter, este lo mostrara y lo podemos hacer con el siguiente codigo.
mov ah,01h
int 21h
*La primera instruccion (mov ah,01h) es lo que nos permite leer el caracter con eco, cabe destacar que yo estoy utilizando esta funcion(01h) pero hay otros tambien .
*En el ultimo solo mandamos allamar el BIOS y listo.
Este codigo nos permitira leer un caracter sin eco.
Leer un caracter sin eco quiere decir que al pulsar un caracter esta no se mostrara hasta que hagamos un metodo para desplegar el caracter.
mov ah,07h
int 21h
*En la primera instruccion (mov ah,07h) nos permite leer el caracter sin eco, al igual que el codigo anterior aqui tambien hay otras funciones mas.
* Y por ultimo mandamos a llamar al BIOS.
"este codigo puede ser util, cuando queramos que nuestro programa acepte solo algunos caracteres en especifico".
Codigo para desplegar un solo caracter.
Algunas veces queremos imprimir cualquier caracter y para lograr eso el siguiente codigo no sera de utilidad.
mov ah,0eh
mov al, '@'
int 10h
* en la primera instruccion (mov ah,0eh) es la funcion para poder imprimir un caracter
*en la segunda instruccion (mov al, '@') es lo que nos permite imprimir el caracter en este caso el caracter es @ y se almacena en ' al ' en este codigo le puse el arroba pero tambien esto puede variar, por ejemplo para imprimir un caracter del codigo ascii solo puedes poner el numero en hexadecimal equivalente al codigo pero solo se quitan los apostrofes( ' ' ) es solamente el puro numero pero no olvides que si pones ay directamente el caracter es son apostrofes.
* por ultimo mandamos a llamar al BIOS con la interrupcion 21 (int 21h).
Los siguientes codigos son para empilar y desempilar (push) y (pop)
Al hablar de empilar me refiero a ingresar un dato o registro en una pila (un espacio para guandar elementos)
y desempilar es quitar el dato de alguna pila y para ello utilizaremos los siguientes codigos.
push ax
* con esta instruccion podemos empilar el registro ax, es decir guardar el contenido del registro, tambien se pueden empilar los demas registros (bx, cx, dx)
pop ax
* con esta instruccion desempilamos el registro ax, es decir quitamos el contenido del registro ax de la pila.
nota:
"en las pilas, los datos que se ingresan al principio se desempilan al ultimo y los que se empilan al ultimo de empilan al principio".
Codigo para obtener la fecha del sistema.
aveces necesitamos obtener la fecha del sistema es por eso que tambien pongo el codigo para realizar esto.
mov ah,02h
int 21h
*En la primera instruccion (mov ah,02h) es para pedir la fecha del sistema y se almacenan en los siguientes registros al=dia (en donde 0 equivale a domingo) , cx= año(que se muestra en hexadecimal), dh=mes(que se muestra del 01 al 12), dl=dia (que se muestra de 01 al 31) .
* Y por ultimo mandamos a llamar al BIOS para finalizar.
Codigo para obtener la hora del sistema.
Este es el codigo que se utiliza para obtener la hora del sistema.
mov ah,2ch
int 21h
*En la primera instruccion (mov ah,2ch) es para pedir la hora del sistema y se guarda en los siguientes registros ch=hora, cl=minutos, dh=segundos y cl=centesimas de segundo
*Por ultimo mandamos a llamar al BIOS y fin.
bueno es todo lo que puedo poner por el momento.
gracias.
atte:Manuel Martinez
miércoles, 22 de abril de 2009
Suscribirse a:
Enviar comentarios (Atom)
SE DICE APILAR Y DESAPILAR...NO EMPILAR Y DESEMPILAR
ResponderEliminarjaja ni lo note, a lo mejor después del tutorial se fue a empilar a alguien :P
EliminarBuena info ya fue agregada a los favoritos!!!
ResponderEliminarGracias, sobre todo por explicar desmenuzando el codigo, no sabes como se me dificulta este lenguaje =)
ResponderEliminarmuy bueno gracias
ResponderEliminarno pude obtener la fecha viejo, hace falta algo aparte de esa dos líneas, soy nuevo en esto... gracias
ResponderEliminarno pude obtener la fecha viejo, hace falta algo aparte de esa dos líneas, soy nuevo en esto... gracias
ResponderEliminar