jueves, 28 de febrero de 2019

1. Uso de libreria emu8086 (parte 2)

Programa 1: Al introducir la edad, compara si es mayor o menor de edad.

Código:

;De : Ambrocio Isaias
org 100h

.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 al proc 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 " "
        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 ;para recibir numeros decimales
define_scan_num  ;del procedimiento scan_num
endp inicio

end


Resultado:





Programa 2: Nos permitirá mostrar si hemos aprobado o reprobado alguna asignatura en base a una calificación.

Código:


;De : Ambrocio Isaias
.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: " ;macro imprime
    
    call scan_num    ;Leo el numero
    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   



Resultado:





Programa 3: Suma de dos números, uso de la libreria emu8086.inc.


Código:

;De: Isaias Ambrocio
org 100h

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

.data
suma db 2 dup (?) ;manera de declarar un arreglo de 2 lugares 
.code
sumas proc     
    
    print " Introduce el primer numero: " ;macro de la lib
    call scan_num ;llamada a un procedimiento para pedir un num
    mov suma[0],cl ;mueve el valor de cl a la posicion 0 del array   
    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 num
    mov suma[1],cl ;;mueve el valor de cl a la posicion 1 del array   
    xor ax,ax ;xor nemonico que limpia registros
    
    add al,suma[0] ;valor de suma pos 0 []
    add al,suma[1] ;valor de suma pos 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 reg ax
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 ;no se uso
define_print_num ;es del print_num
define_print_num_uns ;conversion a decimal del scan_num
define_scan_num ;procedimiento del scan_num(macro)
end

ret


Resultado:


No hay comentarios:

Publicar un comentario

3. Colores Modificado 9

Modificación del programa # 9 " Colores " Por mi compañero Ambrocio isaias Laureano CR EQU 13 ;Declaro retorno de carro LF...