Autor Tema: Como hacer para definir un registro con valor preestablecido  (Leído 2136 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado CARlosDAN783

  • PIC10
  • *
  • Mensajes: 11
Como hacer para definir un registro con valor preestablecido
« en: 21 de Mayo de 2012, 17:47:50 »
         :)  :lol: Hola a toda la comunidad de este foro, mis mas lindos deseos para todos.
     Bueno la razón de esta consulta es para saber si en lenguaje asm, se puede definir un registro de usuario con un valor directamente establecido, esto es para evitar tener que establecerlo luego, este es el ejemplo; realizo un registro con el nombre carl en la direccion 0x0c ok, hasta aqui todo bien pero me gustaria que ese registro desde el principio lleve un valor preestablecido por ejemplo el 0xff y no tener que hacer la siguiente lineas de codigo

 :5] :5] :5]
movlw 0xff
movwf carl
decfsz carl
ect,ect,ect

Y empezar de esta forma:

decfsz carl
ect,ect,ect

ojala y me haya dado a entender bien. 
carlosdan783
 
Mensajes: 1
Registrado: Lun May 21, 2012 9:23 am

Desconectado om@r

  • PIC12
  • **
  • Mensajes: 86
Re: Como hacer para definir un registro con valor preestablecido
« Respuesta #1 en: 21 de Mayo de 2012, 23:50:24 »
Hola ,lo que hago siempre al inicio de un programa es borra todas las posiciones de registros  :shock:
y cuando tengo que hacer una rutina de retardo en loop lo hago con la instruccion incfsz  :shock:
no se me ocurre ahora otra opcion ,quizas ya la estes usando :shock:
Saludos!!!
Ejemplo:
CONTADOR   EQU   20H
;
INICIO    MOVLW   20H
            MOVWF   FSR
BORRA    CLRF      INDF
            INCF       FSR,F
            MOVF      FSR,W   
            XORLW    6FH
           BTFSS      STATUS,Z
           GOTO       BORRA
;
LOOP    INCFSZ     CONTADOR,F
           GOTO        $-1
           RETURN


Desconectado CARlosDAN783

  • PIC10
  • *
  • Mensajes: 11
Re: Como hacer para definir un registro con valor preestablecido
« Respuesta #2 en: 22 de Mayo de 2012, 00:45:11 »
 :) Gracias por responder mi amigo pero no entiendes lo que digo, te lo explicare de nuevo creo el registro Contador en la posicion de memoria 0x20 pero quiero tratar de insertarle directamente un valor por ejemplo el decimal 23, es como si quisiera hacer esto

Contador=23  equ   0x20     osea que el registro Contador esta en la posición 20 con el valor 10111 me entiende ahora si. Ahora si mal no recuerdo creo que en lenguaje C se puede hacer esto si no estoy mal claro que con otra estructura de código.    :o

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Como hacer para definir un registro con valor preestablecido
« Respuesta #3 en: 22 de Mayo de 2012, 04:29:23 »
Pues tampoco es que sea un experto del asm, pero me parece que todo valor que quieras cargar en una dirección de memoria lo tienes que hacer pasándolo por el w, ya que juegas directamente con la arquitectura del micro, de hecho los compiladores de C, lo que hacen al traducirlo a asm, es eso también. Asique, salvo que esté equivocado y alguien nos de una sorpresa, me temo que tendrás que seguir pasando los valores a través del registro W o mediante alguna operación matemática si estás en el programa ya.
(Y tampoco es tan pesado hacer ctrl+C y ctrl+v jejee y cambiar alguna cosilla).
Un saludo.

Desconectado CARlosDAN783

  • PIC10
  • *
  • Mensajes: 11
Re: Como hacer para definir un registro con valor preestablecido
« Respuesta #4 en: 22 de Mayo de 2012, 09:07:30 »
       :lol: Gracias amigo NoSepComo tienes razón el lenguaje C hace eso de pasarlo primero al asm y luego código maquina .hex los registros de usuario siempre se inician desde cero y no se puede iniciar con un valor predeterminado lastima que sea así.


 

anything