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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Conversion de bases, consulta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Conversion de bases, consulta  (Leído 4,521 veces)
fofaso

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Conversion de bases, consulta
« en: 4 Noviembre 2014, 05:05 am »

Hola Gente!! quizás alguien tenga la amabilidad para contestar una pregunta que tengo sobre Assembler, desde hace rato...

Estoy tratando de hacer un programa en Assembler para que pueda convertir un numero dado en base 10 a cualquier base (desde base 2 hasta base hexadecimal).

No tengo grandes conocimientos en este lenguaje, pero sé lo básico. Hasta ahora pude armar toda la estructura del programa, pidiendo el número a convertir y los resultados dados luego de la conversión.

Mi pregunta es: Como puedo hacer para convertir un numero en esas condiciones? Hasta ahora no pude encontrar una manera, se me hace muy difícil.

No les estoy pidiendo que me resuelvan el programa completo ni mucho menos. Solo les pido algun centro, con algún código que resuelva ese numero convertido a alguna base (ninguna en particular), así yo después puedo relacionar ese código con las restantes conversiones y poder terminar mi anhelado programa.

Ojala me puedan contestar, seria de muchísima ayuda.

En ese caso, voy a estar eternamente agradecido. Soy un visitante de esta pagina con frecuencia, ya que de aca saco gran información y por esa misma razon decidi registrarme, ya qe siempre lo hacia en modo anonimo!!

Mis respetos y saludos a toda esta comunidad, saludos!


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Conversion de bases, consulta
« Respuesta #1 en: 4 Noviembre 2014, 10:08 am »

El código ya es cosa tuya, pero el algoritmo es muy sencillo (desde base 10 a base X).

Tedejoe stá página que lo explica bien (by Google): http://www.ceibal.edu.uy/UserFiles/P0001/ODEA/HTML/091111_binario.elp/cambio_de_base_10_a_otras_bases.html


En línea

plataplomo2948

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Conversion de bases, consulta
« Respuesta #2 en: 9 Noviembre 2014, 01:16 am »

Exactamente que quiere hacer?. En ASM todo ya es base 2, pero lo leamos en base 16. En ASM todo lo siguente es igual

Código:
mov eax , 0xf 

mov eax, 15d

mov eax, 00001111b

Si no refiere a eso, tendria que estar hablando de punteros del string asi? en ese caso puede usar strtol de libc

Código:

string = "12344321" // d
base = 2

push string
push NULL // no se necisita por convercion
push base
call strtol()

cmp eax, 0 // eax tendra la respuesta
jnz etc etc...


Seria mejor si postea su codigo pra mostrar su problema




fofaso - Recibi su mensaje privado, seria mejor si usted postea su codigo aqui para tener mas opiniones.
« Última modificación: 9 Noviembre 2014, 02:13 am por Eternal Idol » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: Conversion de bases, consulta
« Respuesta #3 en: 9 Noviembre 2014, 02:13 am »

fofaso - Recibi su mensaje privado, seria mejor si usted postea su codigo aqui para tener mas opiniones.

plataplomo2948: no escribas mensajes consecutivos.
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
fofaso

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Conversion de bases, consulta
« Respuesta #4 en: 17 Noviembre 2014, 21:14 pm »

Respondiendo a plataplomo2948 dejo mi codigo hasta ahora es el esqueleto!!

;PROGRAMA DE CONVERSION DE NUMEROS
#make_COM#
org 100h
include emu8086.inc ;libreria donde hay algunas funciones basicas
gotoxy 5,1
printn 'Programa conversor de numeros'
printn

;Inicio del codigo
call OTRO_PARRAFO
call FIN_DE_LINEA
call PEDIR_NUMERO   ;pide un numero
call CONV_B2
;call CONV_B3
;call CONV_B4
;call CONV_B5
;call CONV_B6
;call CONV_B7
;call CONV_B8
;call CONV_B9
;call CONV_BHEXA

printn         ;printn ES UN ENTER!
;call print_num      ;MUESTRA LO QE HAY EN AX!
call TERMINAR_PROGRAMA

;DESARROLLO DE FUNCIONES
CONV_B2:
   putc 10
   putc 13
   
   mov ax,cx
   mov cx,10
   div cx
   call print_num
   putc 10
   putc 13
   ;Codigo para resolver numero a base 2
   print 'Numero convertido base 2: '
   ret
;CONV_B3:
   putc 10
   putc 13
   ;Codigo para resolver numero a base 3
   print 'Numero convertido base 3: '
   ret
;CONV_B4:
   putc 10
   putc 13
   ;Codigo para resolver numero a base 4
   print 'Numero convertido base 4: '
   ret
;CONV_B5:
   putc 10
   putc 13
   ;Codigo para resolver numero a base 5
   print 'Numero convertido base 5: '
   ret
;CONV_B6:
   putc 10
   putc 13
   ;Codigo para resolver numero a base 6
   print 'Numero convertido base 6: '
   ret
;CONV_B7:
   putc 10
   putc 13
   ;Codigo para resolver numero a base 7
   print 'Numero convertido base 7: '
   ret
;CONV_B8:
   putc 10
   putc 13
   ;Codigo para resolver numero a base 8
   print 'Numero convertido base 8: '
   ret
;CONV_B9:
   putc 10
   putc 13
   ;Codigo para resolver numero a base 9
   print 'Numero convertido base 9: '
   ret
;CONV_BHEXA:
   putc 10
   putc 13
   ;Codigo para resolver numero a base hexa
   print 'Numero convertido base hexa: '
   ret
PEDIR_NUMERO:
   print 'Numero a convertir:  '
   call scan_num   ;funcion de la libreria incluida
   ret      ;vuelve a donde habian llamado a la funcion
TERMINAR_PROGRAMA:
   mov ah,4ch
   int 21h
FIN_DE_LINEA:
   print 10
   print 13
   ret
OTRO_PARRAFO:
   print 10
   print '--------------------------'
   print 13
   ret
   
define_scan_num
define_print_string
define_print_num
define_print_num_uns
define_pthis
define_clear_screen
end

Se nota que estan todas las bases indicadas, pero falta el codigo (importante -.-).
Bueno, se asume qe se ingresan decimales.
Desde ahi se tendrian qe hacer divisiones constantes respecto al total de caracteres ingresados, para que el resto de cada una de esas divisiones pueda conformar mi numero convertido.

Mi primer problema es como saber cuantos caracteres se ingresaron? Luego el siguiente problema es como guardar el resto y poder mostrarlos todos juntos para formar el numero convertido?

Estuve investigando desde hace 2 semanas este problema y no pude tener muchos resultados qe me sirvan, espero alguna ayuda. Ojala me puedan ayudar/orientar. Gracias chicos, saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Conversión . mov a .avi
Multimedia
Sakura85 1 2,562 Último mensaje 9 Junio 2004, 03:48 am
por Songoku
conversion de wmv a avi
Multimedia
Lemmy 1 2,004 Último mensaje 29 Junio 2005, 14:12 pm
por arda-lothi
Consulta; Necesito armar una consulta para saber si una fecha ha caido dentro...
Bases de Datos
astinx 6 6,367 Último mensaje 23 Diciembre 2011, 20:34 pm
por astinx
funcion de conversion de bases « 1 2 »
Programación C/C++
m@o_614 17 5,744 Último mensaje 20 Marzo 2014, 10:04 am
por amchacon
Consulta sobre bases de datos e instalador
Java
zonahurbana 1 1,749 Último mensaje 24 Mayo 2014, 00:12 am
por Migugami
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines