Ver Mensaje Individual
  #29 (permalink)  
Antiguo 16/06/2005, 14:57
RadicalEd
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 20 años, 4 meses
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