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 endResultado:
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