;-------------------------------------------------------- ; File Created by SDCC : free open source ANSI-C Compiler ; Version 3.2.0 #8008 (Jul 6 2012) (MINGW32) ; This file was generated Fri Oct 02 12:35:58 2015 ;-------------------------------------------------------- .module new .optsdcc -mmcs51 --model-small ;-------------------------------------------------------- ; Public variables in this module ;-------------------------------------------------------- .globl _main .globl _SetVector .globl _T0_ISR .globl _T1_ISR .globl _delay .globl _leds .globl _write_max .globl _SPR0 .globl _SPR1 .globl _CPHA .globl _CPOL .globl _SPIM .globl _SPE .globl _WCOL .globl _ISPI .globl _I2CI .globl _I2CTX .globl _I2CRS .globl _I2CM .globl _MDI .globl _MCO .globl _MDE .globl _MDO .globl _CS0 .globl _CS1 .globl _CS2 .globl _CS3 .globl _SCONV .globl _CCONV .globl _DMA .globl _ADCI .globl _P .globl _F1 .globl _OV .globl _RS0 .globl _RS1 .globl _F0 .globl _AC .globl _CY .globl _CAP2 .globl _CNT2 .globl _TR2 .globl _XEN .globl _TCLK .globl _RCLK .globl _EXF2 .globl _TF2 .globl _WDE .globl _WDS .globl _WDR2 .globl _WDR1 .globl _PRE0 .globl _PRE1 .globl _PRE2 .globl _PX0 .globl _PT0 .globl _PX1 .globl _PT1 .globl _PS .globl _PT2 .globl _PADC .globl _PSI .globl _RXD .globl _TXD .globl _INT0 .globl _INT1 .globl _T0 .globl _T1 .globl _WR .globl _RD .globl _EX0 .globl _ET0 .globl _EX1 .globl _ET1 .globl _ES .globl _ET2 .globl _EADC .globl _EA .globl _RI .globl _TI .globl _RB8 .globl _TB8 .globl _REN .globl _SM2 .globl _SM1 .globl _SM0 .globl _T2 .globl _T2EX .globl _IT0 .globl _IE0 .globl _IT1 .globl _IE1 .globl _TR0 .globl _TF0 .globl _TR1 .globl _TF1 .globl _DACCON .globl _DAC1H .globl _DAC1L .globl _DAC0H .globl _DAC0L .globl _SPICON .globl _SPIDAT .globl _ADCCON3 .globl _ADCGAINH .globl _ADCGAINL .globl _ADCOFSH .globl _ADCOFSL .globl _B .globl _ADCCON1 .globl _I2CCON .globl _ACC .globl _PSMCON .globl _ADCDATAH .globl _ADCDATAL .globl _ADCCON2 .globl _DMAP .globl _DMAH .globl _DMAL .globl _PSW .globl _TH2 .globl _TL2 .globl _RCAP2H .globl _RCAP2L .globl _T2CON .globl _EADRL .globl _WDCON .globl _EDATA4 .globl _EDATA3 .globl _EDATA2 .globl _EDATA1 .globl _ETIM3 .globl _ETIM2 .globl _ETIM1 .globl _ECON .globl _IP .globl _P3 .globl _IE2 .globl _IE .globl _P2 .globl _I2CADD .globl _I2CDAT .globl _SBUF .globl _SCON .globl _P1 .globl _TH1 .globl _TH0 .globl _TL1 .globl _TL0 .globl _TMOD .globl _TCON .globl _PCON .globl _DPP .globl _DPH .globl _DPL .globl _SP .globl _P0 .globl _k .globl _t .globl _i ;-------------------------------------------------------- ; special function registers ;-------------------------------------------------------- .area RSEG (ABS,DATA) .org 0x0000 _P0 = 0x0080 _SP = 0x0081 _DPL = 0x0082 _DPH = 0x0083 _DPP = 0x0084 _PCON = 0x0087 _TCON = 0x0088 _TMOD = 0x0089 _TL0 = 0x008a _TL1 = 0x008b _TH0 = 0x008c _TH1 = 0x008d _P1 = 0x0090 _SCON = 0x0098 _SBUF = 0x0099 _I2CDAT = 0x009a _I2CADD = 0x009b _P2 = 0x00a0 _IE = 0x00a8 _IE2 = 0x00a9 _P3 = 0x00b0 _IP = 0x00b8 _ECON = 0x00b9 _ETIM1 = 0x00ba _ETIM2 = 0x00bb _ETIM3 = 0x00c4 _EDATA1 = 0x00bc _EDATA2 = 0x00bd _EDATA3 = 0x00be _EDATA4 = 0x00bf _WDCON = 0x00c0 _EADRL = 0x00c6 _T2CON = 0x00c8 _RCAP2L = 0x00ca _RCAP2H = 0x00cb _TL2 = 0x00cc _TH2 = 0x00cd _PSW = 0x00d0 _DMAL = 0x00d2 _DMAH = 0x00d3 _DMAP = 0x00d4 _ADCCON2 = 0x00d8 _ADCDATAL = 0x00d9 _ADCDATAH = 0x00da _PSMCON = 0x00df _ACC = 0x00e0 _I2CCON = 0x00e8 _ADCCON1 = 0x00ef _B = 0x00f0 _ADCOFSL = 0x00f1 _ADCOFSH = 0x00f2 _ADCGAINL = 0x00f3 _ADCGAINH = 0x00f4 _ADCCON3 = 0x00f5 _SPIDAT = 0x00f7 _SPICON = 0x00f8 _DAC0L = 0x00f9 _DAC0H = 0x00fa _DAC1L = 0x00fb _DAC1H = 0x00fc _DACCON = 0x00fd ;-------------------------------------------------------- ; special function bits ;-------------------------------------------------------- .area RSEG (ABS,DATA) .org 0x0000 _TF1 = 0x008f _TR1 = 0x008e _TF0 = 0x008d _TR0 = 0x008c _IE1 = 0x008b _IT1 = 0x008a _IE0 = 0x0089 _IT0 = 0x0088 _T2EX = 0x0091 _T2 = 0x0090 _SM0 = 0x009f _SM1 = 0x009e _SM2 = 0x009d _REN = 0x009c _TB8 = 0x009b _RB8 = 0x009a _TI = 0x0099 _RI = 0x0098 _EA = 0x00af _EADC = 0x00ae _ET2 = 0x00ad _ES = 0x00ac _ET1 = 0x00ab _EX1 = 0x00aa _ET0 = 0x00a9 _EX0 = 0x00a8 _RD = 0x00b7 _WR = 0x00b6 _T1 = 0x00b5 _T0 = 0x00b4 _INT1 = 0x00b3 _INT0 = 0x00b2 _TXD = 0x00b1 _RXD = 0x00b0 _PSI = 0x00bf _PADC = 0x00be _PT2 = 0x00bd _PS = 0x00bc _PT1 = 0x00bb _PX1 = 0x00ba _PT0 = 0x00b9 _PX0 = 0x00b8 _PRE2 = 0x00c7 _PRE1 = 0x00c6 _PRE0 = 0x00c5 _WDR1 = 0x00c3 _WDR2 = 0x00c2 _WDS = 0x00c1 _WDE = 0x00c0 _TF2 = 0x00cf _EXF2 = 0x00ce _RCLK = 0x00cd _TCLK = 0x00cc _XEN = 0x00cb _TR2 = 0x00ca _CNT2 = 0x00c9 _CAP2 = 0x00c8 _CY = 0x00d7 _AC = 0x00d6 _F0 = 0x00d5 _RS1 = 0x00d4 _RS0 = 0x00d3 _OV = 0x00d2 _F1 = 0x00d1 _P = 0x00d0 _ADCI = 0x00df _DMA = 0x00de _CCONV = 0x00dd _SCONV = 0x00dc _CS3 = 0x00db _CS2 = 0x00da _CS1 = 0x00d9 _CS0 = 0x00d8 _MDO = 0x00ef _MDE = 0x00ee _MCO = 0x00ed _MDI = 0x00ec _I2CM = 0x00eb _I2CRS = 0x00ea _I2CTX = 0x00e9 _I2CI = 0x00e8 _ISPI = 0x00ff _WCOL = 0x00fe _SPE = 0x00fd _SPIM = 0x00fc _CPOL = 0x00fb _CPHA = 0x00fa _SPR1 = 0x00f9 _SPR0 = 0x00f8 ;-------------------------------------------------------- ; overlayable register banks ;-------------------------------------------------------- .area REG_BANK_0 (REL,OVR,DATA) .ds 8 ;-------------------------------------------------------- ; overlayable bit register bank ;-------------------------------------------------------- .area BIT_BANK (REL,OVR,DATA) bits: .ds 1 b0 = bits[0] b1 = bits[1] b2 = bits[2] b3 = bits[3] b4 = bits[4] b5 = bits[5] b6 = bits[6] b7 = bits[7] ;-------------------------------------------------------- ; internal ram data ;-------------------------------------------------------- .area DSEG (DATA) _i:: .ds 2 _t:: .ds 1 _k:: .ds 1 ;-------------------------------------------------------- ; overlayable items in internal ram ;-------------------------------------------------------- ;-------------------------------------------------------- ; Stack segment in internal ram ;-------------------------------------------------------- .area SSEG (DATA) __start__stack: .ds 1 ;-------------------------------------------------------- ; indirectly addressable internal ram data ;-------------------------------------------------------- .area ISEG (DATA) ;-------------------------------------------------------- ; absolute internal ram data ;-------------------------------------------------------- .area IABS (ABS,DATA) .area IABS (ABS,DATA) ;-------------------------------------------------------- ; bit data ;-------------------------------------------------------- .area BSEG (BIT) ;-------------------------------------------------------- ; paged external ram data ;-------------------------------------------------------- .area PSEG (PAG,XDATA) ;-------------------------------------------------------- ; external ram data ;-------------------------------------------------------- .area XSEG (XDATA) ;-------------------------------------------------------- ; absolute external ram data ;-------------------------------------------------------- .area XABS (ABS,XDATA) ;-------------------------------------------------------- ; external initialized ram data ;-------------------------------------------------------- .area XISEG (XDATA) .area HOME (CODE) .area GSINIT0 (CODE) .area GSINIT1 (CODE) .area GSINIT2 (CODE) .area GSINIT3 (CODE) .area GSINIT4 (CODE) .area GSINIT5 (CODE) .area GSINIT (CODE) .area GSFINAL (CODE) .area CSEG (CODE) ;-------------------------------------------------------- ; interrupt vector ;-------------------------------------------------------- .area HOME (CODE) __interrupt_vect: ljmp __sdcc_gsinit_startup reti .ds 7 ljmp _T1_ISR .ds 5 ljmp _T0_ISR ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- .area HOME (CODE) .area GSINIT (CODE) .area GSFINAL (CODE) .area GSINIT (CODE) .globl __sdcc_gsinit_startup .globl __sdcc_program_startup .globl __start__stack .globl __mcs51_genXINIT .globl __mcs51_genXRAMCLEAR .globl __mcs51_genRAMCLEAR ; SRC/new.c:36: int i = 0; //Счётчик для регулирования времени исполнения ноты clr a mov _i,a mov (_i + 1),a ; SRC/new.c:37: char t = 0; //Флаг для переключения регистра ENA mov _t,#0x00 ; SRC/new.c:38: unsigned char k = 0; //Счётчик внешних прерываний mov _k,#0x00 .area GSFINAL (CODE) ljmp __sdcc_program_startup ;-------------------------------------------------------- ; Home ;-------------------------------------------------------- .area HOME (CODE) .area HOME (CODE) __sdcc_program_startup: lcall _main ; return from main will lock up sjmp . ;-------------------------------------------------------- ; code ;-------------------------------------------------------- .area CSEG (CODE) ;------------------------------------------------------------ ;Allocation info for local variables in function 'delay' ;------------------------------------------------------------ ;ms Allocated to registers r4 r5 r6 r7 ;i Allocated to stack - _bp +1 ;j Allocated to stack - _bp +5 ;------------------------------------------------------------ ; SRC/new.c:26: void delay ( unsigned long ms ) ; ----------------------------------------- ; function delay ; ----------------------------------------- _delay: ar7 = 0x07 ar6 = 0x06 ar5 = 0x05 ar4 = 0x04 ar3 = 0x03 ar2 = 0x02 ar1 = 0x01 ar0 = 0x00 push _bp mov _bp,sp mov r4,dpl mov r5,dph mov r6,b mov r7,a mov a,sp add a,#0x08 mov sp,a ; SRC/new.c:30: for( j = 0; j < ms; j++ ) mov a,_bp add a,#0x05 mov r0,a clr a mov @r0,a inc r0 mov @r0,a inc r0 mov @r0,a inc r0 mov @r0,a 00105$: mov a,_bp add a,#0x05 mov r0,a clr c mov a,@r0 subb a,r4 inc r0 mov a,@r0 subb a,r5 inc r0 mov a,@r0 subb a,r6 inc r0 mov a,@r0 subb a,r7 jnc 00109$ ; SRC/new.c:32: for( i = 0; i < 50; i++ ); mov r0,_bp inc r0 clr a mov @r0,a inc r0 mov @r0,a inc r0 mov @r0,a inc r0 mov @r0,a 00101$: mov r0,_bp inc r0 clr c mov a,@r0 subb a,#0x32 inc r0 mov a,@r0 subb a,#0x00 inc r0 mov a,@r0 subb a,#0x00 inc r0 mov a,@r0 subb a,#0x00 jnc 00107$ mov r0,_bp inc r0 mov a,#0x01 add a,@r0 mov @r0,a clr a inc r0 addc a,@r0 mov @r0,a clr a inc r0 addc a,@r0 mov @r0,a clr a inc r0 addc a,@r0 mov @r0,a sjmp 00101$ 00107$: ; SRC/new.c:30: for( j = 0; j < ms; j++ ) mov a,_bp add a,#0x05 mov r0,a mov a,#0x01 add a,@r0 mov @r0,a clr a inc r0 addc a,@r0 mov @r0,a clr a inc r0 addc a,@r0 mov @r0,a clr a inc r0 addc a,@r0 mov @r0,a sjmp 00105$ 00109$: mov sp,_bp pop _bp ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'T1_ISR' ;------------------------------------------------------------ ; SRC/new.c:49: void T1_ISR( void ) __interrupt ( 1 ) ; ----------------------------------------- ; function T1_ISR ; ----------------------------------------- _T1_ISR: ; SRC/new.c:51: k++; inc _k reti ; eliminated unneeded mov psw,# (no regs used in bank) ; eliminated unneeded push/pop psw ; eliminated unneeded push/pop dpl ; eliminated unneeded push/pop dph ; eliminated unneeded push/pop b ; eliminated unneeded push/pop acc ;------------------------------------------------------------ ;Allocation info for local variables in function 'T0_ISR' ;------------------------------------------------------------ ; SRC/new.c:65: void T0_ISR( void ) __interrupt ( 2 ) ; ----------------------------------------- ; function T0_ISR ; ----------------------------------------- _T0_ISR: push bits push acc push b push dpl push dph push (0+7) push (0+6) push (0+5) push (0+4) push (0+3) push (0+2) push (0+1) push (0+0) push psw mov psw,#0x00 ; SRC/new.c:67: if( i <= 500 && t == 0 ) clr c mov a,#0xF4 subb a,_i mov a,#(0x01 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b clr a rlc a mov r7,a jnz 00166$ mov a,_t jnz 00166$ ; SRC/new.c:70: write_max(ENA, 0b0100000); mov a,#0x20 push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:71: t = 1; mov _t,#0x01 ; SRC/new.c:72: i++; inc _i clr a cjne a,_i,00253$ inc (_i + 1) 00253$: ; SRC/new.c:73: TH0 = 0xFC; mov _TH0,#0xFC ; SRC/new.c:74: TL0 = 0x17; mov _TL0,#0x17 ljmp 00169$ 00166$: ; SRC/new.c:76: else if ( i <= 500 && t == 1 ) mov a,r7 jnz 00162$ mov a,#0x01 cjne a,_t,00162$ ; SRC/new.c:79: write_max(ENA, 0b0111100); mov a,#0x3C push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:80: t=0; mov _t,#0x00 ; SRC/new.c:81: i++; inc _i clr a cjne a,_i,00257$ inc (_i + 1) 00257$: ; SRC/new.c:82: TH0 = 0xFC; mov _TH0,#0xFC ; SRC/new.c:83: TL0 = 0x17; mov _TL0,#0x17 ljmp 00169$ 00162$: ; SRC/new.c:85: else if( i > 500 && i <= 948 && t==0 ) mov a,r7 jz 00157$ clr c mov a,#0xB4 subb a,_i mov a,#(0x03 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00157$ mov a,_t jnz 00157$ ; SRC/new.c:88: write_max(ENA, 0b0100000); mov a,#0x20 push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:89: t = 1; mov _t,#0x01 ; SRC/new.c:90: i++; inc _i clr a cjne a,_i,00261$ inc (_i + 1) 00261$: ; SRC/new.c:91: TH0 = 0xFB; mov _TH0,#0xFB ; SRC/new.c:92: TL0 = 0x8B; mov _TL0,#0x8B ljmp 00169$ 00157$: ; SRC/new.c:94: else if( i > 500 && i <= 948 && t == 1 ) mov a,r7 jz 00152$ clr c mov a,#0xB4 subb a,_i mov a,#(0x03 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00152$ mov a,#0x01 cjne a,_t,00152$ ; SRC/new.c:97: write_max(ENA, 0b0111100); mov a,#0x3C push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:98: t = 0; mov _t,#0x00 ; SRC/new.c:99: i++; inc _i clr a cjne a,_i,00266$ inc (_i + 1) 00266$: ; SRC/new.c:100: TH0 = 0xFB; mov _TH0,#0xFB ; SRC/new.c:101: TL0 = 0x8B; mov _TL0,#0x8B ljmp 00169$ 00152$: ; SRC/new.c:103: else if( i > 948 && i <= 1338 && t == 0 ) clr c mov a,#0xB4 subb a,_i mov a,#(0x03 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b clr a rlc a mov r7,a jz 00147$ clr c mov a,#0x3A subb a,_i mov a,#(0x05 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00147$ mov a,_t jnz 00147$ ; SRC/new.c:106: write_max(ENA, 0b0100000); mov a,#0x20 push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:107: t = 1; mov _t,#0x01 ; SRC/new.c:108: i++; inc _i clr a cjne a,_i,00270$ inc (_i + 1) 00270$: ; SRC/new.c:109: TH0 = 0xFA; mov _TH0,#0xFA ; SRC/new.c:110: TL0 = 0xFF; mov _TL0,#0xFF ljmp 00169$ 00147$: ; SRC/new.c:112: else if( i > 948 && i <= 1338 && t== 1 ) mov a,r7 jz 00142$ clr c mov a,#0x3A subb a,_i mov a,#(0x05 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00142$ mov a,#0x01 cjne a,_t,00142$ ; SRC/new.c:115: write_max(ENA, 0b0111100); mov a,#0x3C push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:116: t = 0; mov _t,#0x00 ; SRC/new.c:117: i++; inc _i clr a cjne a,_i,00275$ inc (_i + 1) 00275$: ; SRC/new.c:118: TH0 = 0xFA; mov _TH0,#0xFA ; SRC/new.c:119: TL0 = 0xFF; mov _TL0,#0xFF ljmp 00169$ 00142$: ; SRC/new.c:121: else if( i > 1338 && i <= 1687 && t==0 ) clr c mov a,#0x3A subb a,_i mov a,#(0x05 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b clr a rlc a mov r7,a jz 00137$ clr c mov a,#0x97 subb a,_i mov a,#(0x06 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00137$ mov a,_t jnz 00137$ ; SRC/new.c:124: write_max(ENA, 0b0100000); mov a,#0x20 push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:125: t = 1; mov _t,#0x01 ; SRC/new.c:126: i++; inc _i clr a cjne a,_i,00279$ inc (_i + 1) 00279$: ; SRC/new.c:127: TH0 = 0xFA; mov _TH0,#0xFA ; SRC/new.c:128: TL0 = 0x69; mov _TL0,#0x69 ljmp 00169$ 00137$: ; SRC/new.c:130: else if( i > 1338 && i <= 1687 && t==1 ) mov a,r7 jz 00132$ clr c mov a,#0x97 subb a,_i mov a,#(0x06 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00132$ mov a,#0x01 cjne a,_t,00132$ ; SRC/new.c:133: write_max(ENA, 0b0111100); mov a,#0x3C push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:134: t = 0; mov _t,#0x00 ; SRC/new.c:135: i++; inc _i clr a cjne a,_i,00284$ inc (_i + 1) 00284$: ; SRC/new.c:136: TH0 = 0xFA; mov _TH0,#0xFA ; SRC/new.c:137: TL0 = 0x69; mov _TL0,#0x69 ljmp 00169$ 00132$: ; SRC/new.c:139: else if( i > 1687 && i <= 2016 && t==0 ) clr c mov a,#0x97 subb a,_i mov a,#(0x06 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b clr a rlc a mov r7,a jz 00127$ clr c mov a,#0xE0 subb a,_i mov a,#(0x07 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00127$ mov a,_t jnz 00127$ ; SRC/new.c:142: write_max(ENA, 0b0100000); mov a,#0x20 push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:143: t = 1; mov _t,#0x01 ; SRC/new.c:144: i++; inc _i clr a cjne a,_i,00288$ inc (_i + 1) 00288$: ; SRC/new.c:145: TH0 = 0xFA; mov _TH0,#0xFA ; SRC/new.c:146: TL0 = 0x0F; mov _TL0,#0x0F ljmp 00169$ 00127$: ; SRC/new.c:148: else if( i > 1687 && i <= 2016 && t==1 ) mov a,r7 jz 00122$ clr c mov a,#0xE0 subb a,_i mov a,#(0x07 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00122$ mov a,#0x01 cjne a,_t,00122$ ; SRC/new.c:151: write_max(ENA, 0b0111100); mov a,#0x3C push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:152: t = 0; mov _t,#0x00 ; SRC/new.c:153: i++; inc _i clr a cjne a,_i,00293$ inc (_i + 1) 00293$: ; SRC/new.c:154: TH0 = 0xFA; mov _TH0,#0xFA ; SRC/new.c:155: TL0 = 0x0F; mov _TL0,#0x0F ljmp 00169$ 00122$: ; SRC/new.c:157: else if( i > 2016 && i <= 2310 && t==0 ) clr c mov a,#0xE0 subb a,_i mov a,#(0x07 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b clr a rlc a mov r7,a jz 00117$ clr c mov a,#0x06 subb a,_i mov a,#(0x09 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00117$ mov a,_t jnz 00117$ ; SRC/new.c:160: write_max(ENA, 0b0100000); mov a,#0x20 push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:161: t = 1; mov _t,#0x01 ; SRC/new.c:162: i++; inc _i clr a cjne a,_i,00297$ inc (_i + 1) 00297$: ; SRC/new.c:163: TH0 = 0xF9; mov _TH0,#0xF9 ; SRC/new.c:164: TL0 = 0x5B; mov _TL0,#0x5B ljmp 00169$ 00117$: ; SRC/new.c:166: else if( i > 2016 && i <= 2310 && t==1 ) mov a,r7 jz 00112$ clr c mov a,#0x06 subb a,_i mov a,#(0x09 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00112$ mov a,#0x01 cjne a,_t,00112$ ; SRC/new.c:169: write_max(ENA, 0b0111100); mov a,#0x3C push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:170: t = 0; mov _t,#0x00 ; SRC/new.c:171: i++; inc _i clr a cjne a,_i,00302$ inc (_i + 1) 00302$: ; SRC/new.c:172: TH0 = 0xF9; mov _TH0,#0xF9 ; SRC/new.c:173: TL0 = 0x5B; mov _TL0,#0x5B ljmp 00169$ 00112$: ; SRC/new.c:175: else if( i > 2310 && i <= 2571 && t==0 ) clr c mov a,#0x06 subb a,_i mov a,#(0x09 ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b clr a rlc a mov r7,a jz 00107$ clr c mov a,#0x0B subb a,_i mov a,#(0x0A ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00107$ mov a,_t jnz 00107$ ; SRC/new.c:178: write_max(ENA, 0b0100000); mov a,#0x20 push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:179: t = 1; mov _t,#0x01 ; SRC/new.c:180: i++; inc _i clr a cjne a,_i,00306$ inc (_i + 1) 00306$: ; SRC/new.c:181: TH0 = 0xF8; mov _TH0,#0xF8 ; SRC/new.c:182: TL0 = 0x89; mov _TL0,#0x89 sjmp 00169$ 00107$: ; SRC/new.c:184: else if( i > 2310 && i <= 2571 && t==1 ) mov a,r7 jz 00102$ clr c mov a,#0x0B subb a,_i mov a,#(0x0A ^ 0x80) mov b,(_i + 1) xrl b,#0x80 subb a,b jc 00102$ mov a,#0x01 cjne a,_t,00102$ ; SRC/new.c:187: write_max(ENA, 0b0111100); mov a,#0x3C push acc mov dptr,#0x0004 lcall _write_max dec sp ; SRC/new.c:188: t = 0; mov _t,#0x00 ; SRC/new.c:189: i++; inc _i clr a cjne a,_i,00311$ inc (_i + 1) 00311$: ; SRC/new.c:190: TH0 = 0xF8; mov _TH0,#0xF8 ; SRC/new.c:191: TL0 = 0x89; mov _TL0,#0x89 sjmp 00169$ 00102$: ; SRC/new.c:196: i = 0; ; SRC/new.c:197: t = 0; clr a mov _i,a mov (_i + 1),a mov _t,a 00169$: pop psw pop (0+0) pop (0+1) pop (0+2) pop (0+3) pop (0+4) pop (0+5) pop (0+6) pop (0+7) pop dph pop dpl pop b pop acc pop bits reti ;------------------------------------------------------------ ;Allocation info for local variables in function 'SetVector' ;------------------------------------------------------------ ;Vector Allocated to stack - _bp -5 ;Address Allocated to registers r6 r7 ;TmpVector Allocated to registers r6 r7 ;------------------------------------------------------------ ; SRC/new.c:213: void SetVector(unsigned char __xdata * Address, void * Vector) ; ----------------------------------------- ; function SetVector ; ----------------------------------------- _SetVector: push _bp mov _bp,sp ; SRC/new.c:218: *Address = 0x02; mov r6,dpl mov r7,dph mov a,#0x02 movx @dptr,a ; SRC/new.c:221: TmpVector = (unsigned char __xdata *) (Address + 1); inc r6 cjne r6,#0x00,00103$ inc r7 00103$: ; SRC/new.c:222: *TmpVector = (unsigned char) ((unsigned short)Vector >> 8); mov a,_bp add a,#0xfb mov r0,a mov ar4,@r0 inc r0 mov ar5,@r0 mov ar4,r5 mov dpl,r6 mov dph,r7 mov a,r4 movx @dptr,a inc dptr mov r6,dpl mov r7,dph ; SRC/new.c:223: ++TmpVector; ; SRC/new.c:224: *TmpVector = (unsigned char) Vector; mov a,_bp add a,#0xfb mov r0,a mov ar5,@r0 mov dpl,r6 mov dph,r7 mov a,r5 movx @dptr,a pop _bp ret ;------------------------------------------------------------ ;Allocation info for local variables in function 'main' ;------------------------------------------------------------ ; SRC/new.c:231: void main( void ) ; ----------------------------------------- ; function main ; ----------------------------------------- _main: ; SRC/new.c:234: TH0 = 0xFC; mov _TH0,#0xFC ; SRC/new.c:235: TL0 = 0x17; mov _TL0,#0x17 ; SRC/new.c:236: TMOD = 0x01; mov _TMOD,#0x01 ; SRC/new.c:237: TCON = 0x11; mov _TCON,#0x11 ; SRC/new.c:240: SetVector( 0x200B, (void *)T0_ISR ); mov r5,#_T0_ISR mov r6,#(_T0_ISR >> 8) mov r7,#0x80 push ar5 push ar6 push ar7 mov dptr,#0x200B lcall _SetVector dec sp dec sp dec sp ; SRC/new.c:241: SetVector( 0x2003, (void *)T1_ISR ); mov r5,#_T1_ISR mov r6,#(_T1_ISR >> 8) mov r7,#0x80 push ar5 push ar6 push ar7 mov dptr,#0x2003 lcall _SetVector dec sp dec sp dec sp ; SRC/new.c:244: EA = 1; setb _EA ; SRC/new.c:245: ET0 = 1; setb _ET0 ; SRC/new.c:246: EX0 = 1; setb _EX0 ; SRC/new.c:248: while( 1 ) 00102$: ; SRC/new.c:250: leds( k ); mov dpl,_k lcall _leds sjmp 00102$ .area CSEG (CODE) .area CONST (CODE) .area XINIT (CODE) .area CABS (ABS,CODE)