martes, 5 de marzo de 2019

Aportes en clase con libreria emu8086



PROGRAMA "MAYOR O MENOR DE EDAD"

.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: "
 
    ;lectura del valor
    call scan_num  ;llamada al procedimiento de la lib para pedirla

    mov num1,cl
 
    ;lectura segundo valor
 

    xor ax,ax  ;xor para limpiar el registro
    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 " "
        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
         int 21h
         ret
define_print_string
define_print_num
define_print_num_uns
define_scan_num
endp inicio

end

SALIDA DEL PROGRAMA


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


PROGRAMA DE SUMA DE DOS NUMEROS

name "suma de dos numeros"
include "emu8086.inc"
org 100h

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

SALIDA DEL PROGRAMA


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


PROGRAMA "APROBADO O REPROBADO"

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  proc scan_num de la libreria
    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
    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 

SALIDA DEL PROGRAMA

No hay comentarios.:

Publicar un comentario

Unidad 3 - Configuracion y Administracion del Espacio en Disco

3.1 Estructuras logicas de almacenamiento. Para la gestión del almacenamiento de una base de datos existen 4 conceptos bien definidos que ...