Autor Tema: pasar texto a pdu en asm  (Leído 7186 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
pasar texto a pdu en asm
« en: 11 de Julio de 2007, 11:46:19 »
hola,quiero hacer un programa en asm,para pasar sms modo texto a sms modo pdu.

aqui tengo una direccion para pasar texto a pdu.
http://www.dreamfabric.com/sms/hello.html

pero alguien sabe como se pasa al contrario?

el programa lo hare con instrucciones de rotacion,creo que es como se debe hacer.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: pasar texto a pdu en asm
« Respuesta #1 en: 11 de Julio de 2007, 15:14:44 »
hola,quiero hacer un programa en asm,para pasar sms modo texto a sms modo pdu.

aqui tengo una direccion para pasar texto a pdu.
http://www.dreamfabric.com/sms/hello.html

pero alguien sabe como se pasa al contrario?

el programa lo hare con instrucciones de rotacion,creo que es como se debe hacer.

Complicado lo que propones... o más que complicado "laborioso" diría yo...

He hecho cosas en PDU pero en formato binario (8 bits) y te digo que no son la panacea ni mucho menos...

Realmente lo tedioso del tema hace que uno se replantee hacerlo en C. 
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: pasar texto a pdu en asm
« Respuesta #2 en: 12 de Julio de 2007, 10:36:01 »
ya,lo que pasa es que no se c.
y a lo peor si se hace en c,pudiera ser que consumiera muchos recursos.

lo que pasa es que no he visto manuales para pasar formato pdu a formato texto,sabrias decirme de alguna direccion?

gracias.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: pasar texto a pdu en asm
« Respuesta #3 en: 12 de Julio de 2007, 11:17:31 »
ya,lo que pasa es que no se c.
y a lo peor si se hace en c,pudiera ser que consumiera muchos recursos.
Bueno, si tu aplicación es muy minimalista estarías en lo cierto, ahora si haces bien las cosas en C y usas un buen compilador el código en exceso se compensaría con las horas/días que ahorrarías aunque si no sabes C, el concepto no aplica  :)


lo que pasa es que no he visto manuales para pasar formato pdu a formato texto,sabrias decirme de alguna direccion?

No, no he visto nada que diga como hacer el pasaje, simplemente creo que hay que deducir como hacerlo, luego probar al revés (pasar de pdu a texto) y ver si quedó el texto bien conformado.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: pasar texto a pdu en asm
« Respuesta #4 en: 12 de Julio de 2007, 17:46:35 »
je je ,la regla de tres.pues lo intentare.pero me queda tela hasta que solucione mi primer problema,pasar modo texto a pdu.

pero  me gustan las metas,si lo consigo ya lo posteare.haber si entre todos hacemos una gran biblioteca de asm. :-)
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: pasar texto a pdu en asm
« Respuesta #5 en: 12 de Julio de 2007, 20:23:50 »
je je ,la regla de tres.pues lo intentare.pero me queda tela hasta que solucione mi primer problema,pasar modo texto a pdu.

pero  me gustan las metas,si lo consigo ya lo posteare.haber si entre todos hacemos una gran biblioteca de asm. :-)

¡Lejos de quererte desmotivar! solamente te quería mostrar un camino más simple, elegante y portable como es hacerlo en C.  Soy amante del ASM pero para algunos proyectos ya no lo uso por las razones antes mencionadas.

Me parece muy bien que te gusten los desafíos y le dediques tiempo y esfuerzo a sacarlo adelante a tu proyecto!

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: pasar texto a pdu en asm
« Respuesta #6 en: 13 de Julio de 2007, 15:27:10 »
groundman, encontré este texto donde muestran 'gráficamente' como se haría la conversión!

http://mobileforensics.files.wordpress.com/2007/06/understanding_sms.pdf

Espero te sirva
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: pasar texto a pdu en asm
« Respuesta #7 en: 19 de Julio de 2007, 10:44:56 »
muchas gracias,mirare haber como creo el asm de conversion,pero creo que me va a costar bastante.
mas que na,por el tiempo.que cada dia nos faltan mas horas para realizar todo lo que queremos hacer. :)
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: pasar texto a pdu en asm
« Respuesta #8 en: 19 de Julio de 2007, 14:58:18 »
mas que na,por el tiempo.que cada dia nos faltan mas horas para realizar todo lo que queremos hacer. :)

Exacto, es que hoy en día de eso se trata... de ahorrar tiempo.  El tiempo es más caro que los kb de flash... :)


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: pasar texto a pdu en asm
« Respuesta #9 en: 19 de Agosto de 2007, 15:07:58 »
por fin lo termine,me ha costado tela marinera.
cuando he estudiado el sistema,me he dado cuenta de que solo es una compresion de datos.
lo que hace es convertir 8 bytes de 7 bit utiles,en 7 bytes de 8 bit utiles al comprimir.
y 7 bytes de 8 bit utiles en 8 bytes de 7 bit utiles al descomprimir.y digo utiles porque en el alfabeto de 7bit para sms;
solo se utilizan los 7 bit de menos peso.
esta es la direccion del alfabeto de 7bit para sms

http://www.dreamfabric.com/sms/default_alphabet.html

y a cuntinuacion posteo los programas en asm.
por si a alguien les puede servir,y ya que cada uno lo modifique a su gusto o combeniencia. :-)
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: pasar texto a pdu en asm
« Respuesta #10 en: 19 de Agosto de 2007, 15:10:03 »
;*****************************************groundman ************************
; PROGRAMA : texto-pdu.asm
; Funcion : pasar texto sms a pdu   
;           
;   
;  Revision : 1.0        7/2/2002            Programa para : PIC16F876
; CPU Clock : 4 MHz                      Reloj instruccion : 1 MHz = 1 us
;       WDT : Deshabilitado                  Tipo de reloj : XT 
; Code Prot : OFF           
;****************************************************************************
;ESTE PROGRAMA COMBIERTE LOS CARACTERES ALFABETICOS DE 7 BIT,A FORMATO PDU
;****************************************************************************
      LIST   P=16F876   ;Se indica el modo de procesador
      
      RADIX   HEX      ;Sistema de numeracion hexadecimal

      INCLUDE   <P16f876.inc>   ;se incluye la definicion de los
               ;registros internos
      __CONFIG    _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC & _BODEN_OFF &_LVP_OFF &_CPD_OFF &_WRT_ENABLE_OFF
      ERRORLEVEL      -302
                  
CONT      EQU   20h
TEMP_CONT   EQU   21h
KEY_1      EQU   22h


SECTOR_000   MACRO
         BCF   PCLATH,0
         BCF   PCLATH,1
         ENDM
SECTOR_100   MACRO
         BSF   PCLATH,0
         BCF   PCLATH,1
         ENDM
SECTOR_200   MACRO
         BCF   PCLATH,0
         BSF   PCLATH,1
         ENDM
SECTOR_300   MACRO
         BSF   PCLATH,0
         BSF   PCLATH,1
         ENDM


;<<<<<<---------------------- VECTOR DE RESET ------------------------>>>>>>>
         ORG   0x00      ;Inicio en el Vector de Reset
      
         goto   INICIO      ;Va a la primera instruccion del
               

;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>>
INICIO      call   TRASPASS
         movlw   0x30
         movwf   FSR
      
DESCOMP      clrf   CONT
         movf   INDF,w
         xorlw   .0         ;comprueva si hay algun dato
         btfsc   STATUS,Z
         sleep            ;fin del programa,poner aqui a donde queremos que salte o un return
      
         incf   CONT,F
PROG      incf   CONT,f   
PROG2      movf   CONT,W
         movwf   TEMP_CONT
PROG3      decfsz   TEMP_CONT,F
         goto   IZQUIER   
         movf   CONT,W
         movwf   TEMP_CONT
PROG4      decfsz   TEMP_CONT,F
         goto   BLOKE
         incf   FSR,F;call   SUBE
         xorlw   .8
         btfss   STATUS,Z
         goto   PROG
         incf   FSR,F;call   SUBE
         goto   DESCOMP
         
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<BLOKE DE ROTACIONES>>>>>>>>>>>>>>>>>>>>>>>>>>>
BLOKE      incf   FSR,F
         rrf      INDF,F
         decf   FSR,F
         rrf      INDF,F
         goto   PROG4;return
IZQUIER      rlf      INDF,F
         goto   PROG3         
         
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<TRASPASO DATOS A LA RAM>>>>>>>>>>>>>>>>>>>>>>>>>>>>
TRASPASS   movlw   0x30      ;direccion donde empieza a pasar los datos
         movwf   FSR
CONTIN      call   TEXTO
         movwf   INDF
         xorlw   .0         ;si encuentra este caracter,termina de leer.
         btfsc   STATUS,Z
         return            ;goto   PROSIGUE
         incf   KEY_1,F
         incf   FSR,F
         goto   CONTIN


;<<<<<<-----------------LISTA DEL TEXTO A CONVERTIR ------------------->>>>>>
;si introducimos muchas cadenas de texto,deveremos tener cuidado de no pasar
;de la direccion 1FF,en tal caso deveremos crear otra tabla ejm.
;         org 0x200
;TEXTO2      SECTOR_200
;y luego lo mismo que en la tabla anterior,excepto los datos que queramos introducir
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=================================>>>>>>>>>>>>>>>>>>>
         org   0x100
TEXTO      SECTOR_100
         movf   KEY_1,W
         addwf   PCL,F
      
         retlw    .104   ;h
           retlw    .101   ;e
            retlw    .108   ;l
           retlw    .108   ;l
            retlw    .111   ;o
            retlw    .104   ;h
            retlw    .101   ;e   
         retlw    .108   ;l
            retlw    .108   ;l
            retlw    .111   ;o
      
            retlw   .0               ;FIN DE TABLA
           
         end
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: pasar texto a pdu en asm
« Respuesta #11 en: 19 de Agosto de 2007, 15:16:32 »
;*****************************************groundman *******
; PROGRAMA : texto-pdu.asm
; Funcion : pasar pdu a texto sms   
;           
;   
;  Revision : 1.0        7/2/2002            Programa para : PIC16F876
; CPU Clock : 4 MHz                      Reloj instruccion : 1 MHz = 1 us
;       WDT : Deshabilitado                  Tipo de reloj : XT 
; Code Prot : OFF           
;**********************************************************
;ESTE PROGRAMA DESCOMPRIME LOS DATOS PDU A FORMATO TEXTO PARA SMS
      LIST   P=16F876   ;Se indica el modo de procesador
      
      RADIX   HEX      ;Sistema de numeracion hexadecimal

      INCLUDE   <P16f876.inc>   ;se incluye la definicion de los
               ;registros internos
      __CONFIG    _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC & _BODEN_OFF &_LVP_OFF &_CPD_OFF &_WRT_ENABLE_OFF
      ERRORLEVEL      -302
                  

KEY_1      EQU   20h
TEMP      EQU 21h
TEMP_FSR   EQU 22h
CONT      EQU   23h


SECTOR_000   MACRO
         BCF   PCLATH,0
         BCF   PCLATH,1
         ENDM
SECTOR_100   MACRO
         BSF   PCLATH,0
         BCF   PCLATH,1
         ENDM
SECTOR_200   MACRO
         BCF   PCLATH,0
         BSF   PCLATH,1
         ENDM
SECTOR_300   MACRO
         BSF   PCLATH,0
         BSF   PCLATH,1
         ENDM


;<<<<<<---------------------- VECTOR DE RESET ------------------------>>>>>>>
         ORG   0x00      ;Inicio en el Vector de Reset
      
         goto   INICIO      ;Va a la primera instruccion del programa
               

;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>>
INICIO      call   TRASPASS
         clrf   INDF         ;borra el byte de fin de tabla
         movlw   0x2A         ;16 bytes mas abajo de la direccion donde
         movwf   TEMP_FSR      ;hemos metido la tabla

;<<<<zona donde calculamos e introducimos el valor del byte en blanco "byte ocavo">>>>>>>>>>
DESCOMP      movlw   .5
         movwf   CONT
         movlw   .6            
         addwf   TEMP_FSR,F      ;situate en el primer Byte   
         movf   TEMP_FSR,W
         movwf   FSR
         movlw   .6
         addwf   FSR,F
         movf   INDF,W
         incf   FSR,F
         movwf   INDF
         movlw   .7
         subwf   FSR,F
         movf   INDF,w
         xorlw   0X00            ;termina si no hay mas datos
         btfsc   STATUS,Z   
         sleep               ;fin del programa,poner aqui a donde queremos que salte o un return

;<<<<<<programa principal,donde se realizan la mayor parte de las instruciones>>>>>>>>>>>>
;<<<<<<<<<<<<<<<<<de rotacion para el calculo de la descompresion>>>>>>>>>>>>>>>>>>>>>>>>>>   
         movlw   .6
         movwf   TEMP
         call   REP_IZQ_UP
PROG      movf   CONT,W
         movwf   TEMP
         call   REP_BAJA
         
         movf   CONT,W
         movwf   TEMP
         call   REP_IZQ_UP
         decfsz   CONT,F
         goto   PROG         
      
         rlf      INDF,F
         call   REMETE
         incf   TEMP_FSR,f
         incf   TEMP_FSR,f
         goto   DESCOMP
      
REP_IZQ_UP   rlf      INDF,F
RPE2      incf   FSR,F
         rlf      INDF,F
         decfsz   TEMP,F
         goto   RPE2
         return

REP_BAJA   decf   FSR,F
         decfsz   TEMP,F
         goto   REP_BAJA
         return            

;<<<<<<<<<<<<REMETE UN PASO HACIA LA DERECHA DEL CONJUNTO DE 8 Bytes >>>>>>>>>>>>>>>
REMETE      incf   FSR,F
         bcf      STATUS,C
         rrf      INDF,F
         decf   FSR,F
         bcf      STATUS,C
         rrf      INDF,F
         decf   FSR,F
         bcf      STATUS,C
         rrf      INDF,F
         decf   FSR,F
         bcf      STATUS,C
         rrf      INDF,F
         decf   FSR,F
         bcf      STATUS,C
         rrf      INDF,F
         decf   FSR,F
         bcf      STATUS,C
         rrf      INDF,F
         decf   FSR,F
         bcf      STATUS,C
         rrf      INDF,F
         decf   FSR,F
         bcf      STATUS,C
         rrf      INDF,F
         decf   FSR,F
         return      
         
         
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<TRASPASO DATOS A LA RAM>>>>>>>>>>>>>>>>>>>>>>>>>>>>
TRASPASS   movlw   0x30         ;direccion donde empieza a pasar los datos
         movwf   FSR
CONTIN      call   TEXTO
         movwf   INDF
         xorlw   0XFF         ;si encuentra este valor,termina de leer.
         btfsc   STATUS,Z
         return            
         incf   KEY_1,F
         incf   FSR,F
         goto   CONTIN


;<<<<<<-----------------LISTA DEL TEXTO A CONVERTIR ------------------->>>>>>
;si introducimos muchas cadenas de texto,deveremos tener cuidado de no pasar
;de la direccion 1FF,en tal caso deveremos crear otra tabla ejm.
;         org 0x200
;TEXTO2      SECTOR_200
;y luego lo mismo que en la tabla anterior,excepto los datos que queramos introducir
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=================================>>>>>>>>>>>>>>>>>>>
;ademas cada 7 Bytes pondremos un byte con valor 0x00 para que cuando descomprimamos
;los datos este lugar nos sirva para el dato resultante de la descompresion
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
         org   0x100
TEXTO      SECTOR_100
         movf   KEY_1,W
         addwf   PCL,F
         retlw    0XE8      ;primer grupo
            retlw    0X32
            retlw    0X9B
           retlw    0XFD
            retlw    0X46
            retlw    0X97
         retlw    0XD9
            retlw    0X00      ;fin del grupo
         retlw    0XEC      ;segundo grupo
            retlw    0X37
                        ;aqui no hace falta el valor 00h ya que tenemos espacio de sobra,o almenos aseguraros de que lo hay
         retlw   0XFF      ;fin de tabla
           
         end
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: pasar texto a pdu en asm
« Respuesta #12 en: 19 de Octubre de 2010, 17:07:59 »
soft flt.recivi tu privado. pero prefiero contestar en el hilo de lo que necesitas.por si las respuestas pueden servir a otras personas.
Montando mi primera impresora 3D (Raprep Prusa i3)


 

anything