no he podido realizar la validación y el salir me pueden ayudar por favor
6. Validar si un número es positivo o negativo
7. Salir
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex
6. Validar si un número es positivo o negativo
7. Salir
Código (asm) [Seleccionar]
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