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
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
Publicar un comentario