gplink-0.13.5 alpha Copyright (c) 1998-2005 gputils project Listing File Generated: 9-8-2008 16:23:47 Address Value Disassembly Source ------- ----- ----------- ------ ;-------------------------------------------------------- ; File Created by SDCC : free open source ANSI-C Compiler ; Version 2.8.2 #5195 (Jul 13 2008) (UNIX) ; This file was generated Mon Sep 8 16:23:47 2008 ;-------------------------------------------------------- ; PIC16 port for the Microchip 16-bit core micros ;-------------------------------------------------------- list p=18f2520 radix dec ;-------------------------------------------------------- ; public variables in this module ;-------------------------------------------------------- global _delayMs global _main ;-------------------------------------------------------- ; extern variables in this module ;-------------------------------------------------------- extern _PORTAbits extern _PORTBbits extern _PORTCbits extern _PORTDbits extern _PORTEbits extern _LATAbits extern _LATBbits extern _LATCbits extern _LATDbits extern _LATEbits extern _DDRAbits extern _TRISAbits extern _DDRBbits extern _TRISBbits extern _DDRCbits extern _TRISCbits extern _DDRDbits extern _TRISDbits extern _DDREbits extern _TRISEbits extern _OSCTUNEbits extern _PIE1bits extern _PIR1bits extern _IPR1bits extern _PIE2bits extern _PIR2bits extern _IPR2bits extern _EECON1bits extern _RCSTAbits extern _TXSTAbits extern _T3CONbits extern _CMCONbits extern _CVRCONbits extern _ECCP1ASbits extern _PWM1CONbits extern _BAUDCONbits extern _BAUDCTLbits extern _CCP2CONbits extern _CCP1CONbits extern _ADCON2bits extern _ADCON1bits extern _ADCON0bits extern _SSPCON2bits extern _SSPCON1bits extern _SSPSTATbits extern _T2CONbits extern _T1CONbits extern _RCONbits extern _WDTCONbits extern _HLVDCONbits extern _LVDCONbits extern _OSCCONbits extern _T0CONbits extern _STATUSbits extern _INTCON3bits extern _INTCON2bits extern _INTCONbits extern _STKPTRbits extern _PORTA extern _PORTB extern _PORTC extern _PORTD extern _PORTE extern _LATA extern _LATB extern _LATC extern _LATD extern _LATE extern _DDRA extern _TRISA extern _DDRB extern _TRISB extern _DDRC extern _TRISC extern _DDRD extern _TRISD extern _DDRE extern _TRISE extern _OSCTUNE extern _PIE1 extern _PIR1 extern _IPR1 extern _PIE2 extern _PIR2 extern _IPR2 extern _EECON1 extern _EECON2 extern _EEDATA extern _EEADR extern _RCSTA extern _TXSTA extern _TXREG extern _RCREG extern _SPBRG extern _SPBRGH extern _T3CON extern _TMR3L extern _TMR3H extern _CMCON extern _CVRCON extern _ECCP1AS extern _PWM1CON extern _BAUDCON extern _BAUDCTL extern _CCP2CON extern _CCPR2 extern _CCPR2L extern _CCPR2H extern _CCP1CON extern _CCPR1 extern _CCPR1L extern _CCPR1H extern _ADCON2 extern _ADCON1 extern _ADCON0 extern _ADRES extern _ADRESL extern _ADRESH extern _SSPCON2 extern _SSPCON1 extern _SSPSTAT extern _SSPADD extern _SSPBUF extern _T2CON extern _PR2 extern _TMR2 extern _T1CON extern _TMR1L extern _TMR1H extern _RCON extern _WDTCON extern _HLVDCON extern _LVDCON extern _OSCCON extern _T0CON extern _TMR0L extern _TMR0H extern _STATUS extern _FSR2L extern _FSR2H extern _PLUSW2 extern _PREINC2 extern _POSTDEC2 extern _POSTINC2 extern _INDF2 extern _BSR extern _FSR1L extern _FSR1H extern _PLUSW1 extern _PREINC1 extern _POSTDEC1 extern _POSTINC1 extern _INDF1 extern _WREG extern _FSR0L extern _FSR0H extern _PLUSW0 extern _PREINC0 extern _POSTDEC0 extern _POSTINC0 extern _INDF0 extern _INTCON3 extern _INTCON2 extern _INTCON extern _PROD extern _PRODL extern _PRODH extern _TABLAT extern _TBLPTR extern _TBLPTRL extern _TBLPTRH extern _TBLPTRU extern _PC extern _PCL extern _PCLATH extern _PCLATU extern _STKPTR extern _TOS extern _TOSL extern _TOSH extern _TOSU ;-------------------------------------------------------- ; Equates to used internal registers ;-------------------------------------------------------- STATUS equ 0xfd8 FSR1L equ 0xfe1 FSR2L equ 0xfd9 POSTDEC1 equ 0xfe5 PREINC1 equ 0xfe4 PLUSW2 equ 0xfdb ; Internal registers .registers udata_ovr 0x0000 r0x00 res 1 r0x01 res 1 r0x02 res 1 r0x03 res 1 ;-------------------------------------------------------- ; interrupt vector ;-------------------------------------------------------- ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- ; I code from now on! ; ; Starting pCode block S_testLed__main code _main: ; .line 37; testLed.c OSCCON = 0x62; // Internal 4MHZ 000086 0e62 movlw 0x62 MOVLW 0x62 000088 6ed3 movwf 0xd3, 0 MOVWF _OSCCON ; .line 39; testLed.c TRISA = 0x00; // PORTA top 4 bits Output 00008a 6a92 clrf 0x92, 0 CLRF _TRISA ; .line 40; testLed.c PORTB = 0; 00008c 6a81 clrf 0x81, 0 CLRF _PORTB _00127_DS_: ; .line 45; testLed.c for(v = 0; v < 16; v++){ 00008e 6a00 clrf 0, 0 CLRF r0x00 _00119_DS_: 000090 0e10 movlw 0x10 MOVLW 0x10 000092 5c00 subwf 0, 0, 0 SUBWF r0x00, W 000094 e2fc bc 0x8e BC _00127_DS_ ; .line 46; testLed.c PORTA = v; 000096 c000 movff 0, 0xf80 MOVFF r0x00, _PORTA 000098 ff80 ; .line 47; testLed.c delayMs(200); 00009a 6ae5 clrf 0xe5, 0 CLRF POSTDEC1 00009c 0ec8 movlw 0xc8 MOVLW 0xc8 00009e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0000a0 ec15 call 0x2a, 0 CALL _delayMs 0000a2 f000 0000a4 0e02 movlw 0x2 MOVLW 0x02 0000a6 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 45; testLed.c for(v = 0; v < 16; v++){ 0000a8 2a00 incf 0, 0x1, 0 INCF r0x00, F 0000aa d7f2 bra 0x90 BRA _00119_DS_ 0000ac 0012 return 0 RETURN ; ; Starting pCode block S_testLed__delayMs code _delayMs: ; .line 23; testLed.c void delayMs(unsigned int n){ 00002a cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 00002c ffe5 00002e cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 000030 ffd9 000032 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 000034 ffe5 000036 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000038 ffe5 00003a c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 00003c ffe5 00003e c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000040 ffe5 000042 0e02 movlw 0x2 MOVLW 0x02 000044 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 000046 f000 000048 0e03 movlw 0x3 MOVLW 0x03 00004a cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 00004c f001 _00105_DS_: ; .line 26; testLed.c while(n--){ 00004e c000 movff 0, 0x2 MOVFF r0x00, r0x02 000050 f002 000052 c001 movff 0x1, 0x3 MOVFF r0x01, r0x03 000054 f003 000056 0eff movlw 0xff MOVLW 0xff 000058 2600 addwf 0, 0x1, 0 ADDWF r0x00, F 00005a a0d8 btfss 0xd8, 0, 0 BTFSS STATUS, 0 00005c 0601 decf 0x1, 0x1, 0 DECF r0x01, F 00005e 5002 movf 0x2, 0, 0 MOVF r0x02, W 000060 1003 iorwf 0x3, 0, 0 IORWF r0x03, W 000062 e006 bz 0x70 BZ _00111_DS_ ; .line 27; testLed.c for(c = 0; c < 250; c++){ 000064 0efa movlw 0xfa MOVLW 0xfa 000066 6e02 movwf 0x2, 0 MOVWF r0x02 _00110_DS_: 000068 0000 nop nop 00006a 2e02 decfsz 0x2, 0x1, 0 DECFSZ r0x02, F 00006c d7fd bra 0x68 BRA _00110_DS_ ; .line 27; testLed.c for(c = 0; c < 250; c++){ 00006e d7ef bra 0x4e BRA _00105_DS_ _00111_DS_: 000070 cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 000072 f003 000074 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 000076 f002 000078 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 00007a f001 00007c cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 00007e f000 000080 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 000082 ffd9 000084 0012 return 0 RETURN ; Statistics: ; code size: 132 (0x0084) bytes ( 0.10%) ; 66 (0x0042) words ; udata size: 0 (0x0000) bytes ( 0.00%) ; access size: 4 (0x0004) bytes end ;-------------------------------------------------------- ; File Created by SDCC : free open source ANSI-C Compiler ; Version 2.8.2 #5195 (Jul 13 2008) (UNIX) ; This file was generated Tue Sep 2 21:50:58 2008 ;-------------------------------------------------------- ; PIC16 port for the Microchip 16-bit core micros ;-------------------------------------------------------- list p=18f2520 radix dec ;-------------------------------------------------------- ; public variables in this module ;-------------------------------------------------------- global __entry global __startup ;-------------------------------------------------------- ; extern variables in this module ;-------------------------------------------------------- extern _stack extern _stack_end extern _TBLPTRU extern _main ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- ; ; Starting pCode block S_crt0___entry code 0X000000 __entry: 000000 ef57 goto 0xae goto __startup 000002 f000 ; I code from now on! ; ; Starting pCode block S_crt0___startup code __startup: 0000ae ee12 lfsr 0x1, 0x2ff lfsr 1, _stack_end 0000b0 f0ff 0000b2 ee22 lfsr 0x2, 0x2ff lfsr 2, _stack_end 0000b4 f0ff 0000b6 6af8 clrf 0xf8, 0 clrf _TBLPTRU, 0 0000b8 8ea6 bsf 0xa6, 0x7, 0 bsf 0xa6, 7, 0 0000ba 9ca6 bcf 0xa6, 0x6, 0 bcf 0xa6, 6, 0 ; .line 70; crt0.c main(); 0000bc ec43 call 0x86, 0 CALL _main 0000be f000 _00110_DS_: ; .line 74; crt0.c goto loop; 0000c0 d7ff bra 0xc0 BRA _00110_DS_ ; Statistics: ; code size: 20 (0x0014) bytes ( 0.02%) ; 10 (0x000a) words ; udata size: 0 (0x0000) bytes ( 0.00%) ; access size: 0 (0x0000) bytes end