6. Validar si un número es positivo o negativo
7. Salir
Código
name: " PROTOTIPO FINAL" org 100h ; inicio de programa include 'emu8086.inc' ;Incluye funciones de libreria emu8086 DEFINE_SCAN_NUM DEFINE_PRINT_STRING DEFINE_PRINT_NUM DEFINE_PRINT_NUM_UNS jmp inicio menu1: db 13,10,'ELKIN DAVID AGUILAR LLANOS',13,10, db 13,10,'Codigo 10697830',13,10, db 13,10,'Universidad Nacional Abierta y a Distancia UNAD-Cead ElBordo',13,10, db 13,10,'Fecha:Mayo 15 de 2017',13,10, db 13,10, '******MENU******',13,10, db 13,10,'1 Suma de dos numeros ',13,10, db 13,10,'2 Resta de dos numeros ' ,13,10, db 13,10,'3 Multiplicacion de dos numeros ',13,10, db 13,10,'4 Division de dos numero',13,10, db 13,10,'5 Validar numeros negativos y positivos',13,10, db 13,10,'6 Salir ' ,13,10, db 13,10,13,10,'Digite el Primer Numero: $' texto2 db 13,10,13,10,'Digite el Segundo Numero: $' texto3 db 13,10,13,10, 'La Suma Es: $' texto4 db 13,10,'La Resta Es: $' texto5 db 13,10,'La Multiplicacion Es: $' texto6 db 13,10,'La Divison es: $' texto7 db 13,10,'positivo: $' texto8 db 13,10,'negativo: $' texto9 db 13,10,'cero: $' num1 dw ? ;defino variables de 2 bytes num2 dw ? ; el simbolo ? es para indicar q no se inicilizan con valor algunp inicio: mov ah,09 ;instruccion para imprimir en pantalla lea dx,menu1 ;carga cadena de texto 1 en dx int 21h ;interrupcion pantalla call SCAN_NUM ;Llama Funcion SCAN_NUM que toma numero de teclado; el valor se guarda en ax mov num1,cx ;mueve numero a variable num1 mov ah,09 ;interrupcion para imprimir en pantalla lea dx,texto2 ;carga cadena de texto 2 en dx int 21h call SCAN_NUM ;Llama Funcion SCAN_NUM que toma numero de teclado; el valor se guarda en ax mov num2,cx ;mueve numero a variable num2 mov ah,09 lea dx,texto3 int 21h mov ax,num1 ;mueve primer numero digitado a ax add ax,num2 ;suma los numeros digitado, queda almacenaddo en ax call PRINT_NUM mov ah,09 lea dx,texto4 int 21h mov ax,num1 ;mueve primer numero digitado a ax sub ax,num2 ;resta el 2do del 1er numero, queda almacenaddo en ax call PRINT_NUM mov ah,09 lea dx,texto5 int 21h mov ax,num1 ;mueve primer numero digitado a ax mov bx,num2 ;mueve segundo numero digitado a bx mul bx ;ax = ax*bx call PRINT_NUM mov ah,09 lea dx,texto6 int 21h xor dx,dx ;deja en cero dx; si no lo hago se desborda la division ;DX ALMACENA EL modulo de la division, por eso hay q dejarlo en cero mov ax,num1 ;mueve primer numero digitado a ax mov bx,num2 ;mueve segundo numero digitado a bx div bx ;ax = ax*bx call PRINT_NUM cmp bl,0 mov ah,09h lea dx,texto7 int 21h mov ah,09h lea dx,texto8 int 21h mov ah,09h lea dx,texto9 int 21h
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex