EJERCICIOS 28/FEB/18 CON LIBRERIAS

org 100h

name "suma de dos numeros"
include "emu8086.inc"   ;macro de la libreria
org 100h

.data
suma db 2 dup (?) ;manera de declarar un arreglo
.code
sumas proc
    print " Introduce el primer numero: "
    call scan_num   ;llamada a un procedimiento para pedir un numero
    mov suma[0],cl
    printn " "      ;macro que imprime un espacio
    print " Introduce el segundo numero: "     ;macro que imprime un letrero
    call scan_num      ;llamada a un procedimiento para pedir un numero
    mov suma[1],cl
    xor ax,ax          ;xor nemonico que limpia registros
    add al,suma[0]     ;valor de suma[0]
    add al,suma[1]     ;suma valor de suma [1]
    printn " "         ;macro de la libreria pone un espacio y retorno
    print " La suma es: "  ;macro que imprime el letero
    call print_num         ;llamada a un proce para imprimir un numero
sumas endp
exit:
    print " "
    printn " "
    print "Presiona enter para salir..."
    mov ah,0  ;servicio de pulsación de teclado
    int 16h   ;invoca a servicios de taclado
    ret
define_print_string
define_print_num    ;es el print_num
define_print_num_uns  ;conversion a decimal
define_scan_num    ; este es el scan_num procedimiento (macro)
end

ret








---------------------------------------------------------------------------------------------------------------------

.model small
.stack
.data                        
include "emu8086.inc"            
num1 db 0; variable para la edad
.code
inicio proc far
    
    ;poner el primer letrero
    print " Ingrese su edad: " ;macro print
    
    ;lectura del valor
    call scan_num  ;LLAMADA DEL PROCEDIMIENTO DE LA LIBRERIA PARA PEDIR UN VALOR
    mov num1,cl
    
    ;lectura segundo valor
    

    xor ax,ax  ;limpiar el registro ax
    mov al,num1
    cmp al,18d ;Si lo que se encuentra en al>18 
    JGE mayor ;salta a mayor
    JMP menor ;sino ve a menor  
    
    mayor:
        printn " " ;macro imprime un espacio
        print "Eres mayor de edad"
        jmp final
    menor:
        printn " "
        print "Eres menor de edad"
               
        jmp final
           
           
    final:  
         print " "
         printn " "
         print "Presiona enter para salir..."
         mov ah,0 ;servicios de lectura de una pulsación de teclado
         int 16h  ;Invoca a servicios de teclado
         mov ah,4ch  ;cierra 
         int 21h
         ret
define_print_string
define_print_num       
define_print_num_uns    ;recibe numeros decimales 
define_scan_num        ;del procedimiento scan_num
endp inicio

end





------------------------------------------------------------------------------------------------------------------------

.MODEL SMALL
.STACK 64
.DATA  
    include "emu8086.inc"
    
    nota db 0

    
.CODE   
OPERACIONES PROC FAR ;DECLARACION DE PROCEDIMIENTO    
    ;MUESTRO EL MENSAJE         
    print " "   ;usa macro print para un espacio
    print "Ingrese la calificacion: "
    
    call scan_num    ;Leo el numero procedimiento de la libreria scan_num
    mov nota,cl      ;lo guardo en nota
    
    xor ax,ax        ;borro el contenido de ax
    mov al,nota      ;muevo nota a al
    
    CMP AL,70d       ;comparo al con 70 es como un if, la d indica que es decimal
    JGE MAYOR        ;si es mayor o igual pasa a mayor
    JMP MENOR        ;si no a menor
        
   MAYOR:
    printn " "    
    print "Aprobado"
    JMP SALIR 
        
   MENOR:   
    printn " "    
    print "Reprobado"
    JMP SALIR
    
   SALIR:
         print " "
         printn " "
         gotoxy 10,10  ;coloco el cursor en las coordenadas 10x,10y
         print "Presiona enter para salir..." ;imprimo despues este mensaje
         mov ah,0  ;servicio de lectura de pulsacion de tecla
         int 16h   ;invoca servicios de teclado
         mov ah,4ch
         int 21h
         ret
       
OPERACIONES ENDP   

define_print_string
define_print_num
define_print_num_uns
define_scan_num    
    
END   





Comentarios

Entradas populares de este blog

Programas usando la documentación y libreria emu8086

Instrucción CMP, JE, JNE, LOOP

Unidad 3(15 programas TASM)