Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: karmi en 18 Marzo 2011, 03:46 am



Título: ayuda con suma
Publicado por: karmi en 18 Marzo 2011, 03:46 am
Hola, estoy empezando con ensamblador (MASM) e hice este prog. para sumar dos numeros que ingresados desde el teclado se sumen, pero no me arroja el resultado, alguien pudiera ayudarme? gracias


Código:


PILA SEGMENT PARA STACK "STACK"
   DB 200 DUP (0)
PILA ENDS
;---------------------------------------------------

DATOS SEGMENT PARA "DATA"
   uno DB "Ingresa el primer numero ","$"
   dos DB 13,10, "ingresa el segundo numero: ","$"
   PRIMER DB 15 DUP (0)
   SEGUN DB 15 DUP (0)
   resp DB 15 DUP (0)

DATOS ENDS ; cierre del segmento
;---------------------------------------------------

CODIGO SEGMENT PARA "CODE"  
EMPIEZA PROC FAR
   ASSUME CS: CODIGO, DS: DATOS, SS: PILA    
   MOV AX, DATOS
   MOV DS, AX
   MOV AH, 0FH
   INT 10H
   MOV AH, 00H
   INT 10H  

  ;CALL PREGUNTA

     EMPIEZA ENDP

  PREGUNTA PROC NEAR
  

   MOV DX,OFFSET uno
   MOV AH,9
   INT 21H

   MOV AH,0AH
   MOV DX,OFFSET primer
   MOV primer[0],15
   INT 21H

   MOV DX,OFFSET dos
   MOV AH,9
   INT 21H
  
    MOV AH,0AH
   MOV DX,OFFSET segun
   MOV segun[0],15
   INT 21H
  

  
   MOV AL, primer
   ADD AL, segun  



   MOV  AH,09H
   MOV DX, OFFSET resp
   MOV  resp[0], AL  
   INT 21H



    
     PREGUNTA ENDP

  
CODIGO ENDS ; cierra programa
 END EMPIEZA  





Título: Re: ayuda con suma
Publicado por: Иōҳ en 18 Marzo 2011, 18:05 pm
bien yo no se mucho de interrupciones, pero el mismo masm32 tiene una carpeta  example donde hace uso de consola y usa la macro input, en realidad no se si seria el caso usar pero con input puedes obtener lo que escribe el teclado, y en el IDE del RadAsm hay un ejemplo de un code en 16bits... seria cuestion de hecharle un vistaso, pero algo que noto en tu code es que nunca sumas =/, el mnemónico add es el indicado aparentemente.

Seguro ya vendra alguien que sepa sobre interrupciones :P

Salu2


Título: Re: ayuda con suma
Publicado por: Eternal Idol en 18 Marzo 2011, 18:54 pm
http://www.ctyme.com/intr/int-21.htm

Investiga como funcionan todos los servicios que usas y depura tu programa con debug.com, cuando leas una cadena recorda que no es un numero DECIMAL sino una secuencia de CARACTERES, si escribis 25 vas a tener '2' y '5' (49 y 53 en decimal).