elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  TASM Suma de numeros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: TASM Suma de numeros  (Leído 11,615 veces)
lexoazul

Desconectado Desconectado

Mensajes: 48


Ver Perfil
TASM Suma de numeros
« en: 4 Marzo 2012, 04:36 am »

Hola a todos tengo un problema con este codigo, resulta que capturo dos numeros del 0 al 9 y lo sumo, para luego mostrar el resultado.
El problema que tengo es que si el resultado de la suma es de dos dijitos solo me muestra el primero ejemplo:
si sumo 4 + 9 = 13
del resultado solo me muestra el 3
Nota: si el resultado de la suma es de un dijito lo muestra bien; ejemplo 3 + 3 = 6

agradezco mucho su atencion y de antemano Gracias a todos.
Les dejo aqui el codigo, por cierto el ensamblador que estoy utilizando es TASM

Código:

pila segment stack "stack"
    dw 64h dup(?)
pila ends
data segment
    var db "ingrese numero",13,10,"$"
    resul db 0
data ends
code segment
        assume cs:code, ds:data, ss:pila
    inicio:
        mov ax,data
        mov ds,ax
        mov cl,0
        jmp mostrar
    datos:
        cmp cl,2
        je formato
        mov ah,01h
        int 21h
        sub al,30h
        add resul,al
        inc cl
        jmp mostrar
    formato:
        mov ah,02h
        mov dl,10
        int 21h
        
        mov ah,02h
        mov dl,13
        int 21h
        jmp imprimir
    imprimir:
        mov ah,0
        mov al,resul
        mov cl,10
        div cl
        
        ;add al,30h
        ;add ah,30h
        mov bl,ah
        
        mov dl,al
        add dl,30h
        mov ah,02h ;IMPRIME DECENA
        int 21
        
        mov dl,bl
        add dl,30h
        mov ah,02h ;IMPRIME UNIDAD
        int 21h
        jmp fin
        
    mostrar:
        mov ah,09h
        mov dx, offset var
        int 21h
        jmp datos
    fin:
        mov ax,4c00h
        int 21h
code ends
end inicio
end datos
end formato
end imprimir
end mostrar
end fin


EI: juntando mensajes.

bueno de tanto checar el codigo no habia algun error; pero para que me funcionara tube que volver a copiar la parte de la etiqueta imprimir y ya funciono.
Nota: son varias veces que pasa que cuando escribo codigo no funciona pero si lo vuelvo a reescribir entonces ya funciona alguien tiene alguna idea porque????

Bueno gracias a todos y Saludos


« Última modificación: 4 Marzo 2012, 10:43 am por Eternal Idol » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: TASM Suma de numeros
« Respuesta #1 en: 4 Marzo 2012, 10:44 am »

No se ... asegurate de guardar bien los cambios y ensamblar antes de volver a probar.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
lexoazul

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: TASM Suma de numeros
« Respuesta #2 en: 6 Marzo 2012, 03:17 am »

No se ... asegurate de guardar bien los cambios y ensamblar antes de volver a probar.

OK gracias Eternal Idol lo tendre muy encuenta
Ahora tengo un problema tratando del mismo tema de sumas de numeros resulta que quiero imprimir el resulttado de tres dijitos de una ssuma.
ejemplo:
55 + 175 + 112 = 342

bueno en este codigo no he realizado la suma solo estoy probando mostrar el resultado es decir el numero 342 pero me muestra 3R.

segui el mismo concepto de ir dividiendo entre 100,10 para ir mostrarndo cada caracter pero no funciona si alguien me pudiera decir que esta mal se lo agradeceria mucho.

SAludos y gracias a todos

Código:
pila segment stack "stack"
pila ends
data segment
    var dw 342
    ;var2 dw ?
data ends
code segment
        assume cs:code, ds:data, ss:pila
    inicio:
        mov ax,data
        mov ds,ax
       
        mov dx,0
        mov dx,var
        mov ax,var
        mov cl,100
        div cl
        mov bx,dx
       
        mov dl,al
        add dl,30h ;CENTENA
        mov ah,02h
        int 21h
        ;---------------------
       
        mov dx,0
        mov dx,bx
        mov ax,bx
        mov cl,10
        div cl
        mov bx,dx
       
        mov dl,al
        add dl,30h ;Decena
        mov ah,02h
        int 21h
        ;-----------------------------

        mov dl,bl
        add dl,30h
        mov ah,02h
        int 21
       
       
    fin:
        mov ax,4c00h
        int 21h
code ends
end inicio

En línea

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: TASM Suma de numeros
« Respuesta #3 en: 7 Marzo 2012, 15:21 pm »

No te ha funcionado porque seguramente tienes que imprimer el codigo ASCII.
Es decir:
Código:
0 <> '0'
http://www.asciitable.com/

El valor ascci de 0 es 48, 1 es 49, 2 es 50 etc... hasta que 9 es 58

Saludos.
En línea

lexoazul

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: TASM Suma de numeros
« Respuesta #4 en: 12 Marzo 2012, 14:03 pm »

No te ha funcionado porque seguramente tienes que imprimer el codigo ASCII.

Muchas gracias _Enko Tienes razon hay que tomar en cuenta el codigo ASCII, de hecho si lo tomo encuenta y antes de mandar a mostrar el caracter le sumo los 30H ó 48 Decimal, para que me muestre el codigo correspondiente al numero que tengo guardado despues de la divicion(entre 100,10).
pero volvere a hechar un vistazo al codigo.

De antemano Muchas gracias a todos por contestar
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
generador de números y suma de los mismos
Scripting
vidusa 4 3,427 Último mensaje 31 Marzo 2012, 21:30 pm
por vidusa
Como hacer para que muestre numeros aleatoreos y tengo q resolver la suma
Programación Visual Basic
manu4561 3 2,982 Último mensaje 4 Julio 2012, 12:25 pm
por noele1995
[BATCH]Suma y resta números de cualquier longitud
Scripting
Binary_Death 1 3,913 Último mensaje 24 Julio 2012, 11:22 am
por BatchianoISpyxolo
Ayuda suma en TASM
ASM
BetoRoGa 1 4,365 Último mensaje 18 Octubre 2015, 06:31 am
por Eternal Idol
como hago para mostrara la suma  de los numeros porfectos
Java
Shester1996 1 2,435 Último mensaje 17 Noviembre 2019, 20:36 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines