Hola:
Tengo un archivo hex del PIC12F629.
	
	
	
		
El código de arriba es muy  pequeño. Quiero hacer una descripción de lo que hace exactamente.
Parece que estaré mucho tiempo descifrando algo, por ejemplo, BCF STATUS, 0x5. Aquí debo saber que es el 0x5 del STATUS. Mirando la lista de abajo es RP0, para cambiar de banco de memoria, en este caso, en el banco 0. Sabiendo esto, ahora se que es:
BCF STATUS, 0x5 es igual aBCF STATUS, RP0
Así en cada instrucción.
	
	
	
		
Parece muy complejo.
La pregunta es:
¿Hay un método que te lo haga automático?
Si lo hago manual en cada instrucción, me pego media vida.
Un saludo.
				
			Tengo un archivo hex del PIC12F629.
Con el MPLAB X 2.15 he importado el archivo hex. He copiado las instrucciones a .txt y es este de abajo.:020000040000FA
:10000000000000000000831207309900831638308A
:100010008500C03081009B011C141A0883128500E2
:10002000B0018C01851D12284B20851D182815282C
:100030004B20851915284B20851915284B2085192B
:1000400015284B20851915282528051C28282B281C
:10005000051D2E283328051D38283D280630B00000
:1000600085003E2012280130B00085003E20122875
:100070000530B00085003E20122812283008831673
:100080009A001C1555309D00AA309D009C141C112F
:1000900083128C0108000330B1001830B200023026
:1000A000B300B10B5428B20B5628B30B5128582873
:0200B000080046
:0400B20000340034E2
:02400E00543F1D
:024200000200BA
:00000001FF
		Código:
	
	                     Line         Address         Opcode         Label         DisAssy    
               1              000            0000                          NOP            
               2              001            0000                          NOP            
               3              002            0000                          NOP            
               4              003            1283                          BCF STATUS, 0x5
               5              004            3007                          MOVLW 0x7      
               6              005            0099                          MOVWF CMCON    
               7              006            1683                          BSF STATUS, 0x5
               8              007            3038                          MOVLW 0x38     
               9              008            0085                          MOVWF GPIO     
               10             009            30C0                          MOVLW 0xC0     
               11             00A            0081                          MOVWF TMR0     
               12             00B            019B                          CLRF 0x1B      
               13             00C            141C                          BSF 0x1C, 0x0  
               14             00D            081A                          MOVF 0x1A, W   
               15             00E            1283                          BCF STATUS, 0x5
               16             00F            0085                          MOVWF GPIO     
               17             010            01B0                          CLRF 0x30      
               18             011            018C                          CLRF PIR1      
               19             012            1D85                          BTFSS GPIO, 0x3
               20             013            2812                          GOTO 0x12      
               21             014            204B                          CALL 0x4B      
               22             015            1D85                          BTFSS GPIO, 0x3
               23             016            2818                          GOTO 0x18      
               24             017            2815                          GOTO 0x15      
               25             018            204B                          CALL 0x4B      
               26             019            1985                          BTFSC GPIO, 0x3
               27             01A            2815                          GOTO 0x15      
               28             01B            204B                          CALL 0x4B      
               29             01C            1985                          BTFSC GPIO, 0x3
               30             01D            2815                          GOTO 0x15      
               31             01E            204B                          CALL 0x4B      
               32             01F            1985                          BTFSC GPIO, 0x3
               33             020            2815                          GOTO 0x15      
               34             021            204B                          CALL 0x4B      
               35             022            1985                          BTFSC GPIO, 0x3
               36             023            2815                          GOTO 0x15      
               37             024            2825                          GOTO 0x25      
               38             025            1C05                          BTFSS GPIO, 0x0
               39             026            2828                          GOTO 0x28      
               40             027            282B                          GOTO 0x2B      
               41             028            1D05                          BTFSS GPIO, 0x2
               42             029            282E                          GOTO 0x2E      
               43             02A            2833                          GOTO 0x33      
               44             02B            1D05                          BTFSS GPIO, 0x2
               45             02C            2838                          GOTO 0x38      
               46             02D            283D                          GOTO 0x3D      
               47             02E            3006                          MOVLW 0x6      
               48             02F            00B0                          MOVWF 0x30     
               49             030            0085                          MOVWF GPIO     
               50             031            203E                          CALL 0x3E      
               51             032            2812                          GOTO 0x12      
               52             033            3001                          MOVLW 0x1      
               53             034            00B0                          MOVWF 0x30     
               54             035            0085                          MOVWF GPIO     
               55             036            203E                          CALL 0x3E      
               56             037            2812                          GOTO 0x12      
               57             038            3005                          MOVLW 0x5      
               58             039            00B0                          MOVWF 0x30     
               59             03A            0085                          MOVWF GPIO     
               60             03B            203E                          CALL 0x3E      
               61             03C            2812                          GOTO 0x12      
               62             03D            2812                          GOTO 0x12      
               63             03E            0830                          MOVF 0x30, W   
               64             03F            1683                          BSF STATUS, 0x5
               65             040            009A                          MOVWF 0x1A     
               66             041            151C                          BSF 0x1C, 0x2  
               67             042            3055                          MOVLW 0x55     
               68             043            009D                          MOVWF 0x1D     
               69             044            30AA                          MOVLW 0xAA     
               70             045            009D                          MOVWF 0x1D     
               71             046            149C                          BSF 0x1C, 0x1  
               72             047            111C                          BCF 0x1C, 0x2  
               73             048            1283                          BCF STATUS, 0x5
               74             049            018C                          CLRF PIR1      
               75             04A            0008                          RETURN         
               76             04B            3003                          MOVLW 0x3      
               77             04C            00B1                          MOVWF 0x31     
               78             04D            3018                          MOVLW 0x18     
               79             04E            00B2                          MOVWF 0x32     
               80             04F            3002                          MOVLW 0x2      
               81             050            00B3                          MOVWF 0x33     
               82             051            0BB1                          DECFSZ 0x31, F 
               83             052            2854                          GOTO 0x54      
               84             053            0BB2                          DECFSZ 0x32, F 
               85             054            2856                          GOTO 0x56      
               86             055            0BB3                          DECFSZ 0x33, F 
               87             056            2851                          GOTO 0x51      
               88             057            2858                          GOTO 0x58      
               89             058            0008                          RETURN         
               90             059            3400                          RETLW 0x0      
               91             05A            3400                          RETLW 0x0Parece que estaré mucho tiempo descifrando algo, por ejemplo, BCF STATUS, 0x5. Aquí debo saber que es el 0x5 del STATUS. Mirando la lista de abajo es RP0, para cambiar de banco de memoria, en este caso, en el banco 0. Sabiendo esto, ahora se que es:
BCF STATUS, 0x5 es igual aBCF STATUS, RP0
Así en cada instrucción.
		Código:
	
	        LIST
;==========================================================================
; Build date : May 28 2014
;  MPASM PIC12F629 processor include
; 
;  (c) Copyright 1999-2014 Microchip Technology, All rights reserved
;==========================================================================
        NOLIST
;==========================================================================
;  This header file defines configurations, registers, and other useful
;  bits of information for the PIC12F629 microcontroller.  These names
;  are taken to match the data sheets as closely as possible.
;
;  Note that the processor must be selected before this file is included.
;  The processor may be selected the following ways:
;
;       1. Command line switch:
;               C:\MPASM MYFILE.ASM /PIC12F629
;       2. LIST directive in the source file
;               LIST   P=PIC12F629
;       3. Processor Type entry in the MPASM full-screen interface
;       4. Setting the processor in the MPLAB Project Dialog
;==========================================================================
;==========================================================================
;
;       Verify Processor
;
;==========================================================================
        IFNDEF __12F629
           MESSG "Processor-header file mismatch.  Verify selected processor."
        ENDIF
;==========================================================================
;
;       Register Definitions
;
;==========================================================================
W                EQU  H'0000'
F                EQU  H'0001'
;----- Register Files -----------------------------------------------------
;-----Bank0------------------
INDF             EQU  H'0000'
TMR0             EQU  H'0001'
PCL              EQU  H'0002'
STATUS           EQU  H'0003'
FSR              EQU  H'0004'
GPIO             EQU  H'0005'
PCLATH           EQU  H'000A'
INTCON           EQU  H'000B'
PIR1             EQU  H'000C'
TMR1             EQU  H'000E'
TMR1L            EQU  H'000E'
TMR1H            EQU  H'000F'
T1CON            EQU  H'0010'
CMCON            EQU  H'0019'
;-----Bank1------------------
OPTION_REG       EQU  H'0081'
TRISIO           EQU  H'0085'
PIE1             EQU  H'008C'
PCON             EQU  H'008E'
OSCCAL           EQU  H'0090'
WPU              EQU  H'0095'
IOC              EQU  H'0096'
IOCB             EQU  H'0096'
VRCON            EQU  H'0099'
EEDAT            EQU  H'009A'
EEDATA           EQU  H'009A'
EEADR            EQU  H'009B'
EECON1           EQU  H'009C'
EECON2           EQU  H'009D'
;----- STATUS Bits -----------------------------------------------------
C                EQU  H'0000'
DC               EQU  H'0001'
Z                EQU  H'0002'
NOT_PD           EQU  H'0003'
NOT_TO           EQU  H'0004'
IRP              EQU  H'0007'
RP0              EQU  H'0005'
RP1              EQU  H'0006'
;----- GPIO Bits -----------------------------------------------------
GP0              EQU  H'0000'
GP1              EQU  H'0001'
GP2              EQU  H'0002'
GP3              EQU  H'0003'
GP4              EQU  H'0004'
GP5              EQU  H'0005'
GPIO0            EQU  H'0000'
GPIO1            EQU  H'0001'
GPIO2            EQU  H'0002'
GPIO3            EQU  H'0003'
GPIO4            EQU  H'0004'
GPIO5            EQU  H'0005'
;----- INTCON Bits -----------------------------------------------------
GPIF             EQU  H'0000'
INTF             EQU  H'0001'
T0IF             EQU  H'0002'
GPIE             EQU  H'0003'
INTE             EQU  H'0004'
T0IE             EQU  H'0005'
PEIE             EQU  H'0006'
GIE              EQU  H'0007'
TMR0IF           EQU  H'0002'
TMR0IE           EQU  H'0005'
;----- PIR1 Bits -----------------------------------------------------
TMR1IF           EQU  H'0000'
CMIF             EQU  H'0003'
ADIF             EQU  H'0006'
EEIF             EQU  H'0007'
T1IF             EQU  H'0000'
;----- T1CON Bits -----------------------------------------------------
TMR1ON           EQU  H'0000'
TMR1CS           EQU  H'0001'
NOT_T1SYNC       EQU  H'0002'
T1OSCEN          EQU  H'0003'
TMR1GE           EQU  H'0006'
T1CKPS0          EQU  H'0004'
T1CKPS1          EQU  H'0005'
;----- CMCON Bits -----------------------------------------------------
CIS              EQU  H'0003'
CINV             EQU  H'0004'
COUT             EQU  H'0006'
CM0              EQU  H'0000'
CM1              EQU  H'0001'
CM2              EQU  H'0002'
;----- OPTION_REG Bits -----------------------------------------------------
PSA              EQU  H'0003'
T0SE             EQU  H'0004'
T0CS             EQU  H'0005'
INTEDG           EQU  H'0006'
NOT_GPPU         EQU  H'0007'
PS0              EQU  H'0000'
PS1              EQU  H'0001'
PS2              EQU  H'0002'
;----- TRISIO Bits -----------------------------------------------------
TRISIO0          EQU  H'0000'
TRISIO1          EQU  H'0001'
TRISIO2          EQU  H'0002'
TRISIO3          EQU  H'0003'
TRISIO4          EQU  H'0004'
TRISIO5          EQU  H'0005'
;----- PIE1 Bits -----------------------------------------------------
TMR1IE           EQU  H'0000'
CMIE             EQU  H'0003'
ADIE             EQU  H'0006'
EEIE             EQU  H'0007'
T1IE             EQU  H'0000'
;----- PCON Bits -----------------------------------------------------
NOT_BOR          EQU  H'0000'
NOT_POR          EQU  H'0001'
NOT_BOD          EQU  H'0000'
;----- OSCCAL Bits -----------------------------------------------------
CAL0             EQU  H'0002'
CAL1             EQU  H'0003'
CAL2             EQU  H'0004'
CAL3             EQU  H'0005'
CAL4             EQU  H'0006'
CAL5             EQU  H'0007'
;----- WPU Bits -----------------------------------------------------
WPU0             EQU  H'0000'
WPU1             EQU  H'0001'
WPU2             EQU  H'0002'
WPU4             EQU  H'0004'
WPU5             EQU  H'0005'
;----- IOC Bits -----------------------------------------------------
IOC0             EQU  H'0000'
IOC1             EQU  H'0001'
IOC2             EQU  H'0002'
IOC3             EQU  H'0003'
IOC4             EQU  H'0004'
IOC5             EQU  H'0005'
IOCB0            EQU  H'0000'
IOCB1            EQU  H'0001'
IOCB2            EQU  H'0002'
IOCB3            EQU  H'0003'
IOCB4            EQU  H'0004'
IOCB5            EQU  H'0005'
;----- IOCB Bits -----------------------------------------------------
IOC0             EQU  H'0000'
IOC1             EQU  H'0001'
IOC2             EQU  H'0002'
IOC3             EQU  H'0003'
IOC4             EQU  H'0004'
IOC5             EQU  H'0005'
IOCB0            EQU  H'0000'
IOCB1            EQU  H'0001'
IOCB2            EQU  H'0002'
IOCB3            EQU  H'0003'
IOCB4            EQU  H'0004'
IOCB5            EQU  H'0005'
;----- VRCON Bits -----------------------------------------------------
VRR              EQU  H'0005'
VREN             EQU  H'0007'
VR0              EQU  H'0000'
VR1              EQU  H'0001'
VR2              EQU  H'0002'
VR3              EQU  H'0003'
;----- EECON1 Bits -----------------------------------------------------
RD               EQU  H'0000'
WR               EQU  H'0001'
WREN             EQU  H'0002'
WRERR            EQU  H'0003'
;==========================================================================
;
;       RAM Definitions
;
;==========================================================================
       __MAXRAM  H'00DF'
       __BADRAM  H'0006'-H'0009'
       __BADRAM  H'000D'
       __BADRAM  H'0011'-H'0018'
       __BADRAM  H'001A'-H'001F'
       __BADRAM  H'0060'-H'007F'
       __BADRAM  H'0086'-H'0089'
       __BADRAM  H'008D'
       __BADRAM  H'008F'
       __BADRAM  H'0091'-H'0094'
       __BADRAM  H'0097'-H'0098'
       __BADRAM  H'009E'-H'009F'
;==========================================================================
;
;       Configuration Bits
;
;   NAME            Address
;   CONFIG            2007h
;
;==========================================================================
; The following is an assignment of address values for all of the
; configuration registers for the purpose of table reads
_CONFIG          EQU  H'2007'
;----- CONFIG Options --------------------------------------------------
_FOSC_LP             EQU  H'3FF8'    ; LP oscillator: Low power crystal on GP4/OSC2/CLKOUT and GP5/OSC1/CLKIN
_LP_OSC              EQU  H'3FF8'    ; LP oscillator: Low power crystal on GP4/OSC2/CLKOUT and GP5/OSC1/CLKIN
_FOSC_XT             EQU  H'3FF9'    ; XT oscillator: Crystal/resonator on GP4/OSC2/CLKOUT and GP5/OSC1/CLKIN
_XT_OSC              EQU  H'3FF9'    ; XT oscillator: Crystal/resonator on GP4/OSC2/CLKOUT and GP5/OSC1/CLKIN
_FOSC_HS             EQU  H'3FFA'    ; HS oscillator: High speed crystal/resonator on GP4/OSC2/CLKOUT and GP5/OSC1/CLKIN
_HS_OSC              EQU  H'3FFA'    ; HS oscillator: High speed crystal/resonator on GP4/OSC2/CLKOUT and GP5/OSC1/CLKIN
_FOSC_EC             EQU  H'3FFB'    ; EC: I/O function on GP4/OSC2/CLKOUT pin, CLKIN on GP5/OSC1/CLKIN
_EC_OSC              EQU  H'3FFB'    ; EC: I/O function on GP4/OSC2/CLKOUT pin, CLKIN on GP5/OSC1/CLKIN
_FOSC_INTRCIO        EQU  H'3FFC'    ; INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN
_INTRC_OSC_NOCLKOUT  EQU  H'3FFC'    ; INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN
_FOSC_INTRCCLK       EQU  H'3FFD'    ; INTOSC oscillator: CLKOUT function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN
_INTRC_OSC_CLKOUT    EQU  H'3FFD'    ; INTOSC oscillator: CLKOUT function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN
_FOSC_EXTRCIO        EQU  H'3FFE'    ; RC oscillator: I/O function on GP4/OSC2/CLKOUT pin, RC on GP5/OSC1/CLKIN
_EXTRC_OSC_NOCLKOUT  EQU  H'3FFE'    ; RC oscillator: I/O function on GP4/OSC2/CLKOUT pin, RC on GP5/OSC1/CLKIN
_FOSC_EXTRCCLK       EQU  H'3FFF'    ; RC oscillator: CLKOUT function on GP4/OSC2/CLKOUT pin, RC on GP5/OSC1/CLKIN
_EXTRC_OSC_CLKOUT    EQU  H'3FFF'    ; RC oscillator: CLKOUT function on GP4/OSC2/CLKOUT pin, RC on GP5/OSC1/CLKIN
_WDTE_OFF            EQU  H'3FF7'    ; WDT disabled
_WDT_OFF             EQU  H'3FF7'    ; WDT disabled
_WDTE_ON             EQU  H'3FFF'    ; WDT enabled
_WDT_ON              EQU  H'3FFF'    ; WDT enabled
_PWRTE_ON            EQU  H'3FEF'    ; PWRT enabled
_PWRTE_OFF           EQU  H'3FFF'    ; PWRT disabled
_MCLRE_OFF           EQU  H'3FDF'    ; GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD
_MCLRE_ON            EQU  H'3FFF'    ; GP3/MCLR pin function is MCLR
_BOREN_OFF           EQU  H'3FBF'    ; BOD disabled
_BODEN_OFF           EQU  H'3FBF'    ; BOD disabled
_BOREN_ON            EQU  H'3FFF'    ; BOD enabled
_BODEN_ON            EQU  H'3FFF'    ; BOD enabled
_CP_ON               EQU  H'3F7F'    ; Program Memory code protection is enabled
_CP_OFF              EQU  H'3FFF'    ; Program Memory code protection is disabled
_CPD_ON              EQU  H'3EFF'    ; Data memory code protection is enabled
_CPD_OFF             EQU  H'3FFF'    ; Data memory code protection is disabled
;----- DEVID Equates --------------------------------------------------
_DEVID1          EQU  H'2006'
;----- IDLOC Equates --------------------------------------------------
_IDLOC0          EQU  H'2000'
_IDLOC1          EQU  H'2001'
_IDLOC2          EQU  H'2002'
_IDLOC3          EQU  H'2003'
        LISTLa pregunta es:
¿Hay un método que te lo haga automático?
Si lo hago manual en cada instrucción, me pego media vida.
Un saludo.
 
   
				 
						 
 
		 
 
		 
 
		
 
 
		 
 
		