Marquesina

Facilitoml...by Pato :)

sábado, 20 de noviembre de 2010

Programas en ensamblador

Bueno aqui les dejo unos programas realizados en lenguaje ensamblador.
para compilar un programa basta con acceder a la campeta donde esten guardados los progras TASM Y TLINK luego para compilar se escribe:
tasm nombre_programa.asm
si no se generan herrores ponemos lo siguiente:
tlink nombre_progrma
y con esa ultima instruccion generamos un archibo.exe y basta con escribir el nombre del archivo para ver como corre nuestra aplicacion. =)
Recuerden que todo esto se ase desde la consola de windows

<<<<<<<<<<<Macro que imprime un mensage>>>>>>>>>>>>>>>>>>>>

.model small
.stack
.data
mensage db "Hola mundo!!",13,10,"$"
.code
.startup
hola macro msg
mov dx,offset msg
mov ah,09
int 10h;esta linea es opcional, pone una franja azul
int 21h
mov ah,4ch
int 21h
endm
hola mensage
end

<<<<<<<<<<<<<Procedimiento que imprime un mensage>>>>>>>>>>>>

.model small
.stack
.data
mensage db "Hola mundo Procedimiento!!!","$"
.code
.startup
hola proc near
mov dx,offset mensage
mov ah,09
int 10h;opcional, pone una franja de color
int 21h
mov ah,4ch
int 21h
ret
hola endp
call hola
end


<<<<<<Macro que ase una suma(los numeros ya estan establesidos)>>>>>>>

.model tiny
.stack
.data
        msg1 db 10,13, 'El resultado de la suma es:   $'
      
.code
.startup
       mov ah,00h
           mov al,03       ;;;;;cls(borra lo que tenemos en pantalla)
int 10h         ;interrupción del BIOS que controla los servicios de pantalla del PC.

Suma macro nums1, nums2      
mov al,nums1
        mov bl,nums2
add bl,al
 
mov ah,9 ;Servicio 9 para imprimir una cadena
lea dx,msg1 ;Su equivalente seria mov dx, offsett msg1
int 21h ;Interrupcion del DOS ----Imprimimos el mensaje de resultado
mov ah,2 ;Servicio 2 imprime un caracter almacenado en dl

        mov dl,bl ;Pasamos a dl el resultado
        add dl,30h ;Sumamos 30h a dl para convertirlo a caracter
        int 21h ;Imprimimos el resultado

endm ;Fin de la macro para sumar


Suma 4,2
end

'<<<<<<<<<<muebe el cursor a la parte superior>>>>>>>>>>>>>>>>>>>>>>>>

;pone el cursor en la parte superior
.model tiny
.stack
.code
home proc near
mov ah,02h
mov bh,0
mov dx,0
int 10h
ret
home endp
.startup
call home
mov ah,02h
mov bh,0
mov dx,0
int 10h
mov cx,25*80
mov ah,06
mov dl,06
int 21h
main1:
loop main1
call home
mov ah,02h
mov bh,0
mov dx,0
int 10h
mov ax,4c00h
int 21h
end

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<



<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<By Patricio Mendez....Pato =)<<<
<<<                                              <<
<<<                                              <<
<<<Comentar no cuesta nada<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<

3 comentarios:

  1. Saludos patito!!!

    Muy buen post!! Haber si me das chance de darle decoración atu blog.. claroo :D

    ResponderEliminar
  2. y correcion a mis herrores de ortografria jejej

    ResponderEliminar
  3. jajaja tu y tus ORRORES de ortografia XP

    Saludos CUÑADO

    ResponderEliminar