martes, 17 de abril de 2018

macro de suma

sumas macro a, b      ;macro de la suma
    mov al, a         ;se mueve el primer numero a al
    add al, b         ;a al se le suma el segundo numero (b)
    add al, 30h       ;a al se le suma 30h para obtener de nuevo el numero en decimal
    mov suma, al      ;se mueve al a suma
    mov ah, 09        ;salida de cadena de caracteres
    lea dx, msj3      ;se imprime el mensaje 3
    int 21h           ;interrupcion
    mov ah, 02        ;peticion para colocar el cursor
    mov dl, suma      ;se mueve suma a dl
    int 21h           ;interrupcion
    mov ah, 4ch       ;termina programa
    int 21h           ;interrupcion
endm
 

.model small          ;Modelo de memoria mas utilizado
.stack 64
.data                 ;segmento de datos con  variables

    n1 db 0
    n2 db 0
    suma db 0
    msj  db "Dame el primer valor: $"
    msj2 db 10,13, "Dame el segundo valor $"
    msj3 db 10,13, "suma = $"
 
.code                 ;segmento de codigo

mov ax, @data         ;se mueve data a ax
mov ds, ax            ;movemos ax a ds
mov ah, 09            ;salida de una cadena de caracteres
lea dx, msj           ;se imprime el primer mensaje
int 21h               ;interrupcion

mov ah, 01            ;peticion de leer caracter
int 21h               ;interrupcion
sub al, 30h           ;se resta 30h para obtener el numero
mov n1, al            ;se mueve al a n1

mov ah, 09            ;salida de una cadena de caracteres
lea dx, msj2          ;se imprime el segundo mensaje
int 21h               ;interrupcion
mov ah, 01            ;peticion de leer caracter
int 21h               ;interrupcion
sub al, 30h           ;se resta 30h para obtener el numero
mov n2, al            ;se mueve al a n2

sumas n1, n2          ;se llama al macro y se le envian los parametros
 
ret

No hay comentarios:

Publicar un comentario

Trabajo con puerto usb

Programación de puerto USB USB viene de frase en Ingles “Universal Serial Bus” que se utiliza para describir un tipo de puerto en la co...