| 
	
		|  Autor | Tema: TASM Suma de numeros  (Leído 12,091 veces) |  
	| 
			| 
					
						| lexoazul 
								
								 Desconectado 
								Mensajes: 48
								
								
								
								
								
								   | 
 
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 EI: juntando mensajes.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
 
 
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 ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
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 
								Mensajes: 48
								
								
								
								
								
								   | 
 
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 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 | 
 
No te ha funcionado porque seguramente tienes que imprimer el codigo ASCII. Es decir: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 
								Mensajes: 48
								
								
								
								
								
								   | 
 
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 | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | generador de números y suma de los mismos Scripting
 | vidusa | 4 | 3,816 |  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 | 3,449 |  4 Julio 2012, 12:25 pm por noele1995
 |  
						|   |   | [BATCH]Suma y resta números de cualquier longitud Scripting
 | Binary_Death | 1 | 4,190 |  24 Julio 2012, 11:22 am por BatchianoISpyxolo
 |  
						|   |   | Ayuda suma en TASM ASM
 | BetoRoGa | 1 | 4,630 |  18 Octubre 2015, 06:31 am por Eternal Idol
 |  
						|   |   | como hago para mostrara la suma  de los numeros porfectos Java
 | Shester1996 | 1 | 3,148 |  17 Noviembre 2019, 20:36 pm por engel lex
 |    |