programa que dice si eres mayor o menor de edad con uso de macros

.model small ;modelo de memoria

.stack 64 ;segmento de pila


mmayor macro:    ;declaracion de macro mmayor

 

    MOV DX,OFFSET mens2;se lee la variable mens2

    MOV AH,9


INT 21H;interupcion del DOS

endm;fin del macro


mmenor macro:  ;declaracion de macro mmenor

    MOV DX,OFFSET mens3se lee la variable mens3

    MOV AH,9;trabaja con la interrupcion

    INT 21H;interrupcion del DOS

endm;fin del macro


finn macro:;declaracion de macro fin

    mov ah,4ch;sentencia para terminar el programa

    int 21h;interrupcion del DOS

    endm;fin del macro

;============================empieza segmento datos
.data


    num1 db 0    ;variable para almacenar la edad

    diez db 10   ;variable para poder imprimir 2 caracteres(se multiplica por el primer numero ingresado,para ser decenas)

    mens db "ingresa tu edad ","$"  ;mensaje inicial

    mens2 db 13,10,"Eres mayor de edad","$" ;mensaje para mayor de edad

    mens3 db 13,10,"Eres menor de edad","$" ;mensaje par amenor de edad
 ;===================================================termina segmento datos

;=================inicia segmento codigo
.code

    inicio proc far

        mov ax,@data;direccionamos el segmento de datos

        mov ds,ax ;los datos se mueven a ax

        mov ah,09;trabaja con la interrupcion

        lea dx, mens;se lee la variable mens

        int 21h ;interrupcion del DOS

      

        mov ah,01;;espera la entrada del teclado

        int 21h ;interrupcion de DOS

      

        sub al,30h;se le restan 30 para convertir a numero

        mul diez;se multiplica el numero ingresado para convertirlo a decenas
               
        mov num1,al;el resultado se mueve al registro al

      

        mov ah,01;se espera entrada del teclado

        int 21h;interrupcion del DOS

      

        sub al,30h;se tranforma a numero el segundo digito ingresado

        add num1,al ;se suma a las decenas obtenidas

        mov al,num1;se mueva a al el resultado de la suma

       

      

        cmp al,18;se compara si el contenidos de al es 18

        jge mayor;en caso de ser mayor se salta al proceso mayor

      

        ;=========== de no cumplirse(sea menor a 18)el programa continua a este segmento

        mov ah,09    ;trabaja con la interrupcion

        lea dx,mens3;se lee la variable mens3

        int 21h;interrupcion del DOS

        jmp fin;y salta a proceso fin

      

        ;====================procesos

        mayor:;se declara el proceso mayor

        mmayor;el proceso llama al MACRO mmayor

      

      

        fin:;se declara el proceso fin

        finn;el prceso llama al MACRO finn

       

inicio endp   ;se termina a inicio

Comentarios

Entradas populares de este blog

Programas con macros practicas en clase

Tarea uno.Historia de programas graficos y conceptos.