jueves, 28 de febrero de 2019

ejercicios del dia 28 de febrero del 2019

#1 programa que hace la suma de dos numero utilizando la libreria "emu8086.inc"
y utlizando en este ejemplo arreglos 

Codigo del programa:


; You may customize this and other start-up templates; 
; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

name "suma de dos numeros"
include "emu8086.inc"
org 100h
.data
suma db 2 dup (?);manera de declarar un arreglo de dos lugares

.code
sumas proc
    print " Introduce el primer numero: " ;macro de la lib
    call scan_num ;llamada a un procedimietno para pedir un numero
    mov suma[0],cl
    printn " "   ;macro que imprime un espacio
    print " Introduce el segundo numero: " ;macro que imprime una etiqueta
    call scan_num
    mov suma[1],cl
    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 un retorno
    print " La suma es: ";macro que imprime un letrero
    call print_num ;llamada a un procedimiento para imprimir un numero del registro ax
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 por que no hubo 
define_print_num
define_print_num_uns;conversion a decimal del scan num
define_scan_num
end

ret

COMPILACION




#2 programa en emu8086 que hace la comparacion de edades

codigo
.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
    mov num1,cl
   
    ;lectura segundo valor
   

    xor ax,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
define_scan_num
endp inicio

end



#3 programa que compare 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 " "
    print "Ingrese la calificacion: "
   
    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 


captura:


No hay comentarios.:

Publicar un comentario

Unidad 3-ejemplo con macros

Programa que que imprime valores numericos en hexadecimales pero haciendo la utilizacion de macros. include 'emu8086.inc' Mostra...