16/06/2005, 14:57
|
| | Fecha de Ingreso: octubre-2004 Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 20 años, 1 mes Puntos: 3 | |
Mira External Idol, gracias por todo, ya lo termine
Código:
.MODEL SMALL
.STACK
.DATA
VAL1 DB 'DIGITE VALOR 1: $'
VAL2 DB 13,10,'DIGITE VALOR 2: $'
MSG DB 13,10,'LA SUMA ES: $'
RESU DB '0'
CAPT1BIN DB '0'
CAPT2BIN DB '0'
.CODE
inicio:
;CAPTURAR PRIMER VALOR
MOV AX, SEG VAL1
MOV DS, AX
MOV DX, OFFSET VAL1 ;Envia a DX el mensaje VAL1
CALL Print
CALL Capt
MOV CAPT1BIN, AL ;Guarda en Binario
SUB CAPT1BIN, 48 ;Se restan 48 para dar valor ASCII
;CAPTURAR SEGUNDO VALOR
MOV AX, SEG VAL2
MOV DS, AX
MOV DX, OFFSET VAL2 ;Envia a DX el mensaje VAL1
CALL Print
CALL Capt
MOV CAPT2BIN, AL ;Guarda en Binario
SUB CAPT2BIN, 48 ;Se restan 48 para dar valor ASCII
;SE EFECTUA LA SUMA
MOV BL, CAPT1BIN
ADD BL, CAPT2BIN
MOV RESU, BL
;SE IMPRIME MENSAJE DE RESULTADO
MOV AX, SEG MSG
MOV DS, AX
MOV DX, OFFSET MSG ;Envia a DX el mensaje MSG
MOV AH, 09h ;imprime mensaje con la
INT 21h ;función 9h
;IMPRIMIR LOS RESULTADOS
MOV AH, 0 ;Se limpia el registro
MOV AL, RESU ;El dividendo en AX para impresion de digitos uno por uno
MOV BL, 10 ;Se le pone 10 al divisor BL
DIV BL ;Se divide (al=numero/divisor=10 ) COCIENTE=AL RESIDUO=DX
MOV CL, AL ;Guardamos el cociente en CL
MOV CH, AH ;Guardamos el residuo en CH
ADD AL, 48 ;Sumamos 48d al numero para convertirlo en ascii
MOV AH, 2 ;Funcion del DOS para imprimir un caracter
MOV DL, AL ;Imprimir el primer digito
INT 21h
ADD CH, 48 ;Sumamos 48d al numero para convertirlo en ascii
MOV DL, CH ;Imprimimos el segundo caracter
INT 21h
MOV AH, 4Ch ;Sale al DOS
INT 21h
;PROCEDIMIENTO PARA IMPRIMIR CADENA
Print Proc Near
MOV AH, 09h ;imprime mensaje con la
INT 21h ;función 9h
SUB AL, 48 ;restamos al caracter el ASCII de 0 para convertirlo en un numero
RET
Print Endp
;PROCEDIMIENTO DE CAPTURA
Capt Proc Near
MOV AH, 01h ;captura un valor del teclado
INT 21h ;y se guarda en AL
RET
Capt Endp
END inicio
|