?? main.asm
字號:
; ASM code generated by mikroVirtualMachine for PIC - V. 8.0.0.0
; Date/Time: 9/11/2008 11:15:25 AM
; Info: http://www.mikroe.com
; ADDRESS OPCODE ASM
; ----------------------------------------------
$0000 $2AC3 GOTO _main
$0033 $ _increment_up_time:
;main.c,25 :: void increment_up_time()
;main.c,27 :: up_time[5]++;
$0033 $1303 BCF STATUS, RP1
$0034 $1283 BCF STATUS, RP0
$0035 $0AA5 INCF _up_time+5, 1
;main.c,28 :: if (up_time[5] == 10)
$0036 $0825 MOVF _up_time+5, 0
$0037 $3A0A XORLW 10
$0038 $1D03 BTFSS STATUS, Z
$0039 $2854 GOTO L_increment_up_time_0
;main.c,30 :: up_time[5] = 0;
$003A $01A5 CLRF _up_time+5, 1
;main.c,31 :: up_time[4]++;
$003B $0AA4 INCF _up_time+4, 1
;main.c,32 :: if (up_time[4] == 10)
$003C $0824 MOVF _up_time+4, 0
$003D $3A0A XORLW 10
$003E $1D03 BTFSS STATUS, Z
$003F $2854 GOTO L_increment_up_time_1
;main.c,34 :: up_time[4] = 0;
$0040 $01A4 CLRF _up_time+4, 1
;main.c,35 :: up_time[3]++;
$0041 $0AA3 INCF _up_time+3, 1
;main.c,36 :: if (up_time[3] == 10)
$0042 $0823 MOVF _up_time+3, 0
$0043 $3A0A XORLW 10
$0044 $1D03 BTFSS STATUS, Z
$0045 $2854 GOTO L_increment_up_time_2
;main.c,38 :: up_time[3] = 0;
$0046 $01A3 CLRF _up_time+3, 1
;main.c,39 :: up_time[2]++;
$0047 $0AA2 INCF _up_time+2, 1
;main.c,40 :: if (up_time[2] == 6)
$0048 $0822 MOVF _up_time+2, 0
$0049 $3A06 XORLW 6
$004A $1D03 BTFSS STATUS, Z
$004B $2854 GOTO L_increment_up_time_3
;main.c,42 :: up_time[2] = 0;
$004C $01A2 CLRF _up_time+2, 1
;main.c,43 :: up_time[1]++;
$004D $0AA1 INCF _up_time+1, 1
;main.c,44 :: if (up_time[1] == 10)
$004E $0821 MOVF _up_time+1, 0
$004F $3A0A XORLW 10
$0050 $1D03 BTFSS STATUS, Z
$0051 $2854 GOTO L_increment_up_time_4
;main.c,46 :: up_time[1] = 0;
$0052 $01A1 CLRF _up_time+1, 1
;main.c,47 :: up_time[0]++;
$0053 $0AA0 INCF _up_time, 1
;main.c,48 :: }
$0054 $ L_increment_up_time_4:
;main.c,49 :: }
$0054 $ L_increment_up_time_3:
;main.c,50 :: }
$0054 $ L_increment_up_time_2:
;main.c,51 :: }
$0054 $ L_increment_up_time_1:
;main.c,52 :: }
$0054 $ L_increment_up_time_0:
;main.c,53 :: }
$0054 $0008 RETURN
$0055 $ _decrement_down_time:
;main.c,55 :: void decrement_down_time()
;main.c,57 :: down_time[5]--;
$0055 $1303 BCF STATUS, RP1
$0056 $1283 BCF STATUS, RP0
$0057 $03AB DECF _down_time+5, 1
;main.c,58 :: if (down_time[5] == 255)
$0058 $082B MOVF _down_time+5, 0
$0059 $3AFF XORLW 255
$005A $1D03 BTFSS STATUS, Z
$005B $287B GOTO L_decrement_down_time_5
;main.c,60 :: down_time[5] = 9;
$005C $3009 MOVLW 9
$005D $00AB MOVWF _down_time+5
;main.c,61 :: down_time[4]--;
$005E $03AA DECF _down_time+4, 1
;main.c,62 :: if (down_time[4] == 255)
$005F $082A MOVF _down_time+4, 0
$0060 $3AFF XORLW 255
$0061 $1D03 BTFSS STATUS, Z
$0062 $287B GOTO L_decrement_down_time_6
;main.c,64 :: down_time[4] = 9;
$0063 $3009 MOVLW 9
$0064 $00AA MOVWF _down_time+4
;main.c,65 :: down_time[3]--;
$0065 $03A9 DECF _down_time+3, 1
;main.c,66 :: if (down_time[3] == 255)
$0066 $0829 MOVF _down_time+3, 0
$0067 $3AFF XORLW 255
$0068 $1D03 BTFSS STATUS, Z
$0069 $287B GOTO L_decrement_down_time_7
;main.c,68 :: down_time[3] = 9;
$006A $3009 MOVLW 9
$006B $00A9 MOVWF _down_time+3
;main.c,69 :: down_time[2]--;
$006C $03A8 DECF _down_time+2, 1
;main.c,70 :: if (down_time[2] == 255)
$006D $0828 MOVF _down_time+2, 0
$006E $3AFF XORLW 255
$006F $1D03 BTFSS STATUS, Z
$0070 $287B GOTO L_decrement_down_time_8
;main.c,72 :: down_time[2] = 5;
$0071 $3005 MOVLW 5
$0072 $00A8 MOVWF _down_time+2
;main.c,73 :: down_time[1]--;
$0073 $03A7 DECF _down_time+1, 1
;main.c,74 :: if (down_time[1] == 255)
$0074 $0827 MOVF _down_time+1, 0
$0075 $3AFF XORLW 255
$0076 $1D03 BTFSS STATUS, Z
$0077 $287B GOTO L_decrement_down_time_9
;main.c,76 :: down_time[1] = 9;
$0078 $3009 MOVLW 9
$0079 $00A7 MOVWF _down_time+1
;main.c,77 :: down_time[0]--;
$007A $03A6 DECF _down_time, 1
;main.c,78 :: }
$007B $ L_decrement_down_time_9:
;main.c,79 :: }
$007B $ L_decrement_down_time_8:
;main.c,80 :: }
$007B $ L_decrement_down_time_7:
;main.c,81 :: }
$007B $ L_decrement_down_time_6:
;main.c,82 :: }
$007B $ L_decrement_down_time_5:
;main.c,83 :: }
$007B $0008 RETURN
$0004 $ _interrupt:
$0004 $00FF MOVWF STACK_15
$0005 $0E03 SWAPF STATUS, 0
$0006 $0183 CLRF STATUS
$0007 $00B6 MOVWF ?saveSTATUS
$0008 $0804 MOVF FSR, 0
$0009 $00B5 MOVWF ?saveFSR
$000A $080A MOVF PCLATH, 0
$000B $00B7 MOVWF ?savePCLATH
$000C $018A CLRF PCLATH
$000D $0870 MOVF STACK_0, 0
$000E $00BB MOVWF STSAVED_0
;main.c,86 :: void interrupt()
;main.c,88 :: TMR0 = 0;
$000F $0181 CLRF TMR0, 1
;main.c,89 :: if (INTCON.T0IF)
$0010 $1D0B BTFSS INTCON, 2
$0011 $2827 GOTO L_interrupt_10
;main.c,91 :: time_count++;
$0012 $0AAC INCF _time_count, 1
;main.c,92 :: if (time_count == 38)
$0013 $082C MOVF _time_count, 0
$0014 $3A26 XORLW 38
$0015 $1D03 BTFSS STATUS, Z
$0016 $2827 GOTO L_interrupt_11
;main.c,94 :: time_count = 0;
$0017 $01AC CLRF _time_count, 1
;main.c,95 :: lapsed_count++;
$0018 $0AAD INCF _lapsed_count, 1
$0019 $1903 BTFSC STATUS, Z
$001A $0AAE INCF _lapsed_count+1, 1
;main.c,96 :: increment_up_time();
$001B $2033 CALL _increment_up_time
;main.c,97 :: decrement_down_time();
$001C $2055 CALL _decrement_down_time
;main.c,98 :: if (lapsed_count >= 60000)
$001D $30EA MOVLW 234
$001E $022E SUBWF _lapsed_count+1, 0
$001F $1D03 BTFSS STATUS, Z
$0020 $2823 GOTO L_interrupt_79
$0021 $3060 MOVLW 96
$0022 $022D SUBWF _lapsed_count, 0
$0023 $ L_interrupt_79:
$0023 $1C03 BTFSS STATUS, C
$0024 $2827 GOTO L_interrupt_12
;main.c,100 :: INTCON.T0IE = 0;
$0025 $128B BCF INTCON, 5
;main.c,101 :: flag.f1 = 1; // enable lapsed flag
$0026 $14AF BSF _flag, 1
;main.c,102 :: }
$0027 $ L_interrupt_12:
;main.c,103 :: }
$0027 $ L_interrupt_11:
;main.c,104 :: }
$0027 $ L_interrupt_10:
;main.c,105 :: INTCON.T0IF = 0;
$0027 $110B BCF INTCON, 2
;main.c,106 :: }
$0028 $ L_Interrupt_end:
$0028 $083B MOVF STSAVED_0, 0
$0029 $00F0 MOVWF STACK_0
$002A $0837 MOVF ?savePCLATH, 0
$002B $008A MOVWF PCLATH
$002C $0835 MOVF ?saveFSR, 0
$002D $0084 MOVWF FSR
$002E $0E36 SWAPF ?saveSTATUS, 0
$002F $0083 MOVWF STATUS
$0030 $0EFF SWAPF STACK_15, 1
$0031 $0E7F SWAPF STACK_15, 0
$0032 $0009 RETFIE
$007C $ _mask:
;main.c,109 :: unsigned short mask(unsigned short num)
;main.c,111 :: switch (num)
$007C $28A0 GOTO L_mask_13
;main.c,113 :: case 0 : return 0xf6;
$007D $ L_mask_15:
$007D $30F6 MOVLW 246
$007E $1303 BCF STATUS, RP1
$007F $1283 BCF STATUS, RP0
$0080 $00F0 MOVWF STACK_0
$0081 $0008 RETURN
;main.c,114 :: case 1 : return 0x60;
$0082 $ L_mask_16:
$0082 $3060 MOVLW 96
$0083 $00F0 MOVWF STACK_0
$0084 $0008 RETURN
;main.c,115 :: case 2 : return 0xba;
$0085 $ L_mask_17:
$0085 $30BA MOVLW 186
$0086 $00F0 MOVWF STACK_0
$0087 $0008 RETURN
;main.c,116 :: case 3 : return 0xf8;
$0088 $ L_mask_18:
$0088 $30F8 MOVLW 248
$0089 $00F0 MOVWF STACK_0
$008A $0008 RETURN
;main.c,117 :: case 4 : return 0x6c;
$008B $ L_mask_19:
$008B $306C MOVLW 108
$008C $00F0 MOVWF STACK_0
$008D $0008 RETURN
;main.c,118 :: case 5 : return 0xdc;
$008E $ L_mask_20:
$008E $30DC MOVLW 220
$008F $00F0 MOVWF STACK_0
$0090 $0008 RETURN
;main.c,119 :: case 6 : return 0xde;
$0091 $ L_mask_21:
$0091 $30DE MOVLW 222
$0092 $00F0 MOVWF STACK_0
$0093 $0008 RETURN
;main.c,120 :: case 7 : return 0x70;
$0094 $ L_mask_22:
$0094 $3070 MOVLW 112
$0095 $00F0 MOVWF STACK_0
$0096 $0008 RETURN
;main.c,121 :: case 8 : return 0xfe;
$0097 $ L_mask_23:
$0097 $30FE MOVLW 254
$0098 $00F0 MOVWF STACK_0
$0099 $0008 RETURN
;main.c,122 :: case 9 : return 0xfc;
$009A $ L_mask_24:
$009A $30FC MOVLW 252
$009B $00F0 MOVWF STACK_0
$009C $0008 RETURN
;main.c,123 :: case 11 : return 0x1e;
$009D $ L_mask_25:
$009D $301E MOVLW 30
$009E $00F0 MOVWF STACK_0
$009F $0008 RETURN
;main.c,124 :: }
$00A0 $ L_mask_13:
$00A0 $1303 BCF STATUS, RP1
$00A1 $1283 BCF STATUS, RP0
$00A2 $083A MOVF FARG_mask+0, 0
$00A3 $3A00 XORLW 0
$00A4 $1903 BTFSC STATUS, Z
$00A5 $287D GOTO L_mask_15
$00A6 $083A MOVF FARG_mask+0, 0
$00A7 $3A01 XORLW 1
$00A8 $1903 BTFSC STATUS, Z
$00A9 $2882 GOTO L_mask_16
$00AA $083A MOVF FARG_mask+0, 0
$00AB $3A02 XORLW 2
$00AC $1903 BTFSC STATUS, Z
$00AD $2885 GOTO L_mask_17
$00AE $083A MOVF FARG_mask+0, 0
$00AF $3A03 XORLW 3
$00B0 $1903 BTFSC STATUS, Z
$00B1 $2888 GOTO L_mask_18
$00B2 $083A MOVF FARG_mask+0, 0
$00B3 $3A04 XORLW 4
$00B4 $1903 BTFSC STATUS, Z
$00B5 $288B GOTO L_mask_19
$00B6 $083A MOVF FARG_mask+0, 0
$00B7 $3A05 XORLW 5
$00B8 $1903 BTFSC STATUS, Z
$00B9 $288E GOTO L_mask_20
$00BA $083A MOVF FARG_mask+0, 0
$00BB $3A06 XORLW 6
$00BC $1903 BTFSC STATUS, Z
$00BD $2891 GOTO L_mask_21
$00BE $083A MOVF FARG_mask+0, 0
$00BF $3A07 XORLW 7
$00C0 $1903 BTFSC STATUS, Z
$00C1 $2894 GOTO L_mask_22
$00C2 $083A MOVF FARG_mask+0, 0
$00C3 $3A08 XORLW 8
$00C4 $1903 BTFSC STATUS, Z
$00C5 $2897 GOTO L_mask_23
$00C6 $083A MOVF FARG_mask+0, 0
$00C7 $3A09 XORLW 9
$00C8 $1903 BTFSC STATUS, Z
$00C9 $289A GOTO L_mask_24
$00CA $083A MOVF FARG_mask+0, 0
$00CB $3A0B XORLW 11
$00CC $1903 BTFSC STATUS, Z
$00CD $289D GOTO L_mask_25
$00CE $ L_mask_14:
;main.c,125 :: }
$00CE $0008 RETURN
$00CF $ _Short_delay:
;main.c,127 :: void Short_delay()
;main.c,129 :: Delay_us(500);
$00CF $30A6 MOVLW 166
$00D0 $1303 BCF STATUS, RP1
$00D1 $1283 BCF STATUS, RP0
$00D2 $00FA MOVWF STACK_10
$00D3 $0BFA DECFSZ STACK_10, F
$00D4 $28D3 GOTO $-1
$00D5 $0000 NOP
;main.c,130 :: }
$00D6 $0008 RETURN
$00D7 $ _EEprom_read:
$00D7 $1303 BCF STATUS, RP1
$00D8 $1283 BCF STATUS, RP0
$00D9 $0838 MOVF FARG_EEprom_read+0, 0
$00DA $1683 BSF STATUS, RP0
$00DB $009B MOVWF EEADR
$00DC $139C BCF EECON1, 7
$00DD $141C BSF EECON1, 0
$00DE $081A MOVF EEDATA, 0
$00DF $00F0 MOVWF STACK_0
$00E0 $0008 RETURN
$00E1 $ _EEprom_write:
$00E1 $0000 NOP
$00E2 $ L_EEprom_write_0:
$00E2 $1303 BCF STATUS, RP1
$00E3 $1683 BSF STATUS, RP0
$00E4 $1C9C BTFSS EECON1, 1
$00E5 $28E8 GOTO L_EEprom_write_1
$00E6 $0000 NOP
$00E7 $28E2 GOTO L_EEprom_write_0
$00E8 $ L_EEprom_write_1:
$00E8 $1283 BCF STATUS, RP0
$00E9 $0838 MOVF FARG_EEprom_write+0, 0
$00EA $1683 BSF STATUS, RP0
$00EB $009B MOVWF EEADR
$00EC $1283 BCF STATUS, RP0
$00ED $0839 MOVF FARG_EEprom_write+1, 0
$00EE $1683 BSF STATUS, RP0
$00EF $009A MOVWF EEDATA
$00F0 $139C BCF EECON1, 7
$00F1 $151C BSF EECON1, 2
$00F2 $138B BCF INTCON, 7
$00F3 $3055 MOVLW 85
$00F4 $009D MOVWF EECON2
$00F5 $30AA MOVLW 170
$00F6 $009D MOVWF EECON2
$00F7 $149C BSF EECON1, 1
$00F8 $178B BSF INTCON, 7
$00F9 $111C BCF EECON1, 2
$00FA $0008 RETURN
$00FB $ _offset_up_time2:
;main.c,215 :: void offset_up_time2() // displays the requested time
;main.c,217 :: PORTB = mask (up_time[5]); //load millisecond value to PORTB
$00FB $1303 BCF STATUS, RP1
$00FC $1283 BCF STATUS, RP0
$00FD $0825 MOVF _up_time+5, 0
$00FE $00BA MOVWF FARG_mask+0
$00FF $207C CALL _mask
$0100 $1303 BCF STATUS, RP1
$0101 $1283 BCF STATUS, RP0
$0102 $0870 MOVF STACK_0, 0
$0103 $0086 MOVWF PORTB
;main.c,218 :: PORTA = PORTA | 0x0d; //enable the display of ones millisecond
$0104 $300D MOVLW 13
$0105 $0485 IORWF PORTA, 1
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -