?? main.asm
字號:
;main.c,399 :: if ((PORTA & 0x30) == 0x30)// change mode button has been triggered
$0321 $3030 MOVLW 48
$0322 $1303 BCF STATUS, RP1
$0323 $1283 BCF STATUS, RP0
$0324 $0505 ANDWF PORTA, 0
$0325 $00F1 MOVWF STACK_1
$0326 $0871 MOVF STACK_1, 0
$0327 $3A30 XORLW 48
$0328 $1D03 BTFSS STATUS, Z
$0329 $2BB3 GOTO L_main_50
;main.c,401 :: if (!INTCON.T0IE) // if the timer is off
$032A $1A8B BTFSC INTCON, 5
$032B $2BB3 GOTO L_main_51
;main.c,403 :: delay = 3;
$032C $3003 MOVLW 3
$032D $00B1 MOVWF _delay
$032E $3000 MOVLW 0
$032F $00B2 MOVWF _delay+1
;main.c,404 :: if (!flag.f0)
$0330 $182F BTFSC _flag, 0
$0331 $2B6F GOTO L_main_52
;main.c,406 :: flag.f0 = 1; //change mode as down counter
$0332 $142F BSF _flag, 0
;main.c,407 :: do {
$0333 $ L_main_53:
;main.c,408 :: repitition = 250;
$0333 $30FA MOVLW 250
$0334 $1303 BCF STATUS, RP1
$0335 $1283 BCF STATUS, RP0
$0336 $00B3 MOVWF _repitition
$0337 $01B4 CLRF _repitition+1
;main.c,409 :: do {
$0338 $ L_main_55:
;main.c,410 :: PORTB = mask (11); //load millisecond value to PORTB
$0338 $300B MOVLW 11
$0339 $1303 BCF STATUS, RP1
$033A $1283 BCF STATUS, RP0
$033B $00BA MOVWF FARG_mask+0
$033C $207C CALL _mask
$033D $1303 BCF STATUS, RP1
$033E $1283 BCF STATUS, RP0
$033F $0870 MOVF STACK_0, 0
$0340 $0086 MOVWF PORTB
;main.c,411 :: PORTA = PORTA | 0x01; //enable the display of ones millisecond
$0341 $1405 BSF PORTA, 0
;main.c,412 :: Short_delay();
$0342 $20CF CALL _Short_delay
;main.c,413 :: PORTB = 0;
$0343 $0186 CLRF PORTB, 1
;main.c,414 :: PORTA = PORTA & 0xff; //disable the display
$0344 $30FF MOVLW 255
$0345 $0585 ANDWF PORTA, 1
;main.c,415 :: PORTB = mask (2); //load millisecond value to PORTB
$0346 $3002 MOVLW 2
$0347 $00BA MOVWF FARG_mask+0
$0348 $207C CALL _mask
$0349 $1303 BCF STATUS, RP1
$034A $1283 BCF STATUS, RP0
$034B $0870 MOVF STACK_0, 0
$034C $0086 MOVWF PORTB
;main.c,416 :: PORTA = PORTA | 0x05; //enable the display of ones millisecond
$034D $3005 MOVLW 5
$034E $0485 IORWF PORTA, 1
;main.c,417 :: Short_delay();
$034F $20CF CALL _Short_delay
;main.c,418 :: PORTB = 0;
$0350 $0186 CLRF PORTB, 1
;main.c,419 :: PORTA = PORTA & 0xff; //disable the display
$0351 $30FF MOVLW 255
$0352 $0585 ANDWF PORTA, 1
;main.c,420 :: repitition--;
$0353 $3001 MOVLW 1
$0354 $02B3 SUBWF _repitition, 1
$0355 $1C03 BTFSS STATUS, C
$0356 $03B4 DECF _repitition+1, 1
;main.c,421 :: } while (repitition > 0);
$0357 $0834 MOVF _repitition+1, 0
$0358 $3C00 SUBLW 0
$0359 $1D03 BTFSS STATUS, Z
$035A $2B5D GOTO L_main_83
$035B $0833 MOVF _repitition, 0
$035C $3C00 SUBLW 0
$035D $ L_main_83:
$035D $1C03 BTFSS STATUS, C
$035E $2B38 GOTO L_main_55
$035F $ L_main_56:
;main.c,422 :: Delay_sec();
$035F $21E3 CALL _Delay_sec
;main.c,423 :: delay--;
$0360 $3001 MOVLW 1
$0361 $1303 BCF STATUS, RP1
$0362 $1283 BCF STATUS, RP0
$0363 $02B1 SUBWF _delay, 1
$0364 $1C03 BTFSS STATUS, C
$0365 $03B2 DECF _delay+1, 1
;main.c,424 :: } while (delay > 0);
$0366 $0832 MOVF _delay+1, 0
$0367 $3C00 SUBLW 0
$0368 $1D03 BTFSS STATUS, Z
$0369 $2B6C GOTO L_main_84
$036A $0831 MOVF _delay, 0
$036B $3C00 SUBLW 0
$036C $ L_main_84:
$036C $1C03 BTFSS STATUS, C
$036D $2B33 GOTO L_main_53
$036E $ L_main_54:
;main.c,425 :: goto exit1
$036E $2BAF GOTO ___main_exit1
;main.c,426 :: }
$036F $ L_main_52:
;main.c,427 :: if (flag.f0)
$036F $1303 BCF STATUS, RP1
$0370 $1283 BCF STATUS, RP0
$0371 $1C2F BTFSS _flag, 0
$0372 $2BAF GOTO L_main_57
;main.c,429 :: flag.f0 = 0; //change mode as up counter
$0373 $102F BCF _flag, 0
;main.c,430 :: do {
$0374 $ L_main_58:
;main.c,431 :: repitition = 250;
$0374 $30FA MOVLW 250
$0375 $1303 BCF STATUS, RP1
$0376 $1283 BCF STATUS, RP0
$0377 $00B3 MOVWF _repitition
$0378 $01B4 CLRF _repitition+1
;main.c,432 :: do {
$0379 $ L_main_60:
;main.c,433 :: PORTB = mask (11); //load millisecond value to PORTB
$0379 $300B MOVLW 11
$037A $1303 BCF STATUS, RP1
$037B $1283 BCF STATUS, RP0
$037C $00BA MOVWF FARG_mask+0
$037D $207C CALL _mask
$037E $1303 BCF STATUS, RP1
$037F $1283 BCF STATUS, RP0
$0380 $0870 MOVF STACK_0, 0
$0381 $0086 MOVWF PORTB
;main.c,434 :: PORTA = PORTA | 0x01; //enable the display of ones millisecond
$0382 $1405 BSF PORTA, 0
;main.c,435 :: Short_delay();
$0383 $20CF CALL _Short_delay
;main.c,436 :: PORTB = 0;
$0384 $0186 CLRF PORTB, 1
;main.c,437 :: PORTA = PORTA & 0xff; //disable the display
$0385 $30FF MOVLW 255
$0386 $0585 ANDWF PORTA, 1
;main.c,438 :: PORTB = mask (1); //load millisecond value to PORTB
$0387 $3001 MOVLW 1
$0388 $00BA MOVWF FARG_mask+0
$0389 $207C CALL _mask
$038A $1303 BCF STATUS, RP1
$038B $1283 BCF STATUS, RP0
$038C $0870 MOVF STACK_0, 0
$038D $0086 MOVWF PORTB
;main.c,439 :: PORTA = PORTA | 0x05; //enable the display of ones millisecond
$038E $3005 MOVLW 5
$038F $0485 IORWF PORTA, 1
;main.c,440 :: Short_delay();
$0390 $20CF CALL _Short_delay
;main.c,441 :: PORTB = 0;
$0391 $0186 CLRF PORTB, 1
;main.c,442 :: PORTA = PORTA & 0xff; //disable the display
$0392 $30FF MOVLW 255
$0393 $0585 ANDWF PORTA, 1
;main.c,443 :: repitition--;
$0394 $3001 MOVLW 1
$0395 $02B3 SUBWF _repitition, 1
$0396 $1C03 BTFSS STATUS, C
$0397 $03B4 DECF _repitition+1, 1
;main.c,444 :: } while (repitition > 0);
$0398 $0834 MOVF _repitition+1, 0
$0399 $3C00 SUBLW 0
$039A $1D03 BTFSS STATUS, Z
$039B $2B9E GOTO L_main_85
$039C $0833 MOVF _repitition, 0
$039D $3C00 SUBLW 0
$039E $ L_main_85:
$039E $1C03 BTFSS STATUS, C
$039F $2B79 GOTO L_main_60
$03A0 $ L_main_61:
;main.c,445 :: Delay_sec();
$03A0 $21E3 CALL _Delay_sec
;main.c,446 :: delay--;
$03A1 $3001 MOVLW 1
$03A2 $1303 BCF STATUS, RP1
$03A3 $1283 BCF STATUS, RP0
$03A4 $02B1 SUBWF _delay, 1
$03A5 $1C03 BTFSS STATUS, C
$03A6 $03B2 DECF _delay+1, 1
;main.c,447 :: } while (delay > 0);
$03A7 $0832 MOVF _delay+1, 0
$03A8 $3C00 SUBLW 0
$03A9 $1D03 BTFSS STATUS, Z
$03AA $2BAD GOTO L_main_86
$03AB $0831 MOVF _delay, 0
$03AC $3C00 SUBLW 0
$03AD $ L_main_86:
$03AD $1C03 BTFSS STATUS, C
$03AE $2B74 GOTO L_main_58
$03AF $ L_main_59:
;main.c,448 :: }
$03AF $ L_main_57:
;main.c,449 :: exit1: load_default_values();
$03AF $ ___main_exit1:
$03AF $219D CALL _load_default_values
;main.c,450 :: flag.f2 = 1;//set reset flag
$03B0 $1303 BCF STATUS, RP1
$03B1 $1283 BCF STATUS, RP0
$03B2 $152F BSF _flag, 2
;main.c,451 :: }
$03B3 $ L_main_51:
;main.c,452 :: }
$03B3 $ L_main_50:
;main.c,456 :: if ((PORTA & 0x30)== 0x20) // stop/show button has been triggered
$03B3 $3030 MOVLW 48
$03B4 $1303 BCF STATUS, RP1
$03B5 $1283 BCF STATUS, RP0
$03B6 $0505 ANDWF PORTA, 0
$03B7 $00F1 MOVWF STACK_1
$03B8 $0871 MOVF STACK_1, 0
$03B9 $3A20 XORLW 32
$03BA $1D03 BTFSS STATUS, Z
$03BB $2BF2 GOTO L_main_62
;main.c,458 :: if (INTCON.T0IE)
$03BC $1E8B BTFSS INTCON, 5
$03BD $2BC2 GOTO L_main_63
;main.c,460 :: INTCON.T0IE = 0;
$03BE $128B BCF INTCON, 5
;main.c,461 :: flag.f1 = 0; // flag.f1 is used as the the lapsed flag
$03BF $10AF BCF _flag, 1
;main.c,462 :: alarm();
$03C0 $22A1 CALL _alarm
;main.c,463 :: goto exit2
$03C1 $2BEF GOTO ___main_exit2
;main.c,464 :: }
$03C2 $ L_main_63:
;main.c,465 :: if (!INTCON.T0IE)
$03C2 $1A8B BTFSC INTCON, 5
$03C3 $2BEF GOTO L_main_64
;main.c,467 :: delay = 500;
$03C4 $30F4 MOVLW 244
$03C5 $1303 BCF STATUS, RP1
$03C6 $1283 BCF STATUS, RP0
$03C7 $00B1 MOVWF _delay
$03C8 $3001 MOVLW 1
$03C9 $00B2 MOVWF _delay+1
;main.c,468 :: do {
$03CA $ L_main_65:
;main.c,469 :: if (flag.f0) offset_up_time();
$03CA $1303 BCF STATUS, RP1
$03CB $1283 BCF STATUS, RP0
$03CC $1C2F BTFSS _flag, 0
$03CD $2BCF GOTO L_main_67
$03CE $2205 CALL _offset_up_time
$03CF $ L_main_67:
;main.c,470 :: if (!flag.f0) offset_down_time();
$03CF $1303 BCF STATUS, RP1
$03D0 $1283 BCF STATUS, RP0
$03D1 $182F BTFSC _flag, 0
$03D2 $2BD4 GOTO L_main_68
$03D3 $2253 CALL _offset_down_time
$03D4 $ L_main_68:
;main.c,471 :: delay--;
$03D4 $3001 MOVLW 1
$03D5 $1303 BCF STATUS, RP1
$03D6 $1283 BCF STATUS, RP0
$03D7 $02B1 SUBWF _delay, 1
$03D8 $1C03 BTFSS STATUS, C
$03D9 $03B2 DECF _delay+1, 1
;main.c,472 :: if ((PORTA & 0x20) == 0x20) delay = 500;
$03DA $3020 MOVLW 32
$03DB $0505 ANDWF PORTA, 0
$03DC $00F1 MOVWF STACK_1
$03DD $0871 MOVF STACK_1, 0
$03DE $3A20 XORLW 32
$03DF $1D03 BTFSS STATUS, Z
$03E0 $2BE5 GOTO L_main_69
$03E1 $30F4 MOVLW 244
$03E2 $00B1 MOVWF _delay
$03E3 $3001 MOVLW 1
$03E4 $00B2 MOVWF _delay+1
$03E5 $ L_main_69:
;main.c,473 :: } while (delay >0);
$03E5 $1303 BCF STATUS, RP1
$03E6 $1283 BCF STATUS, RP0
$03E7 $0832 MOVF _delay+1, 0
$03E8 $3C00 SUBLW 0
$03E9 $1D03 BTFSS STATUS, Z
$03EA $2BED GOTO L_main_87
$03EB $0831 MOVF _delay, 0
$03EC $3C00 SUBLW 0
$03ED $ L_main_87:
$03ED $1C03 BTFSS STATUS, C
$03EE $2BCA GOTO L_main_65
$03EF $ L_main_66:
;main.c,474 :: }
$03EF $ L_main_64:
;main.c,475 :: exit2: PORTA.F3 = 0;
$03EF $ ___main_exit2:
$03EF $1303 BCF STATUS, RP1
$03F0 $1283 BCF STATUS, RP0
$03F1 $1185 BCF PORTA, 3
;main.c,476 :: }
$03F2 $ L_main_62:
;main.c,480 :: if ((PORTA & 0x30) == 0x10) // start button bas been triggered
$03F2 $3030 MOVLW 48
$03F3 $1303 BCF STATUS, RP1
$03F4 $1283 BCF STATUS, RP0
$03F5 $0505 ANDWF PORTA, 0
$03F6 $00F1 MOVWF STACK_1
$03F7 $0871 MOVF STACK_1, 0
$03F8 $3A10 XORLW 16
$03F9 $1D03 BTFSS STATUS, Z
$03FA $2C0C GOTO L_main_70
;main.c,482 :: if (!INTCON.T0IE && flag.f2 )
$03FB $1A8B BTFSC INTCON, 5
$03FC $2C0C GOTO L_main_73
$03FD $3000 MOVLW 0
$03FE $192F BTFSC _flag, 2
$03FF $3001 MOVLW 1
$0400 $00F1 MOVWF STACK_1
$0401 $0871 MOVF STACK_1, 0
$0402 $1903 BTFSC STATUS, Z
$0403 $2C0C GOTO L_main_73
$0404 $ L659_ex_L_main_73:
;main.c,484 :: lapsed_count = 0;
$0404 $1303 BCF STATUS, RP1
$0405 $1283 BCF STATUS, RP0
$0406 $01AD CLRF _lapsed_count
$0407 $01AE CLRF _lapsed_count+1
;main.c,485 :: INTCON.T0IE = 1;
$0408 $168B BSF INTCON, 5
;main.c,486 :: TMR0 = 0;
$0409 $0181 CLRF TMR0, 1
;main.c,487 :: flag.f1 = 0;
$040A $10AF BCF _flag, 1
;main.c,488 :: flag.f2 = 0;
$040B $112F BCF _flag, 2
;main.c,489 :: }
$040C $ L_main_73:
;main.c,490 :: }
$040C $ L_main_70:
;main.c,494 :: if (PORTB.F0) // reset button has been triggerred
$040C $1303 BCF STATUS, RP1
$040D $1283 BCF STATUS, RP0
$040E $1C06 BTFSS PORTB, 0
$040F $2C14 GOTO L_main_74
;main.c,496 :: if (!INTCON.T0IE)
$0410 $1A8B BTFSC INTCON, 5
$0411 $2C14 GOTO L_main_75
;main.c,498 :: load_default_values();
$0412 $219D CALL _load_default_values
;main.c,499 :: flag.f2 = 1;//set the reset flag
$0413 $152F BSF _flag, 2
;main.c,500 :: }
$0414 $ L_main_75:
;main.c,501 :: }
$0414 $ L_main_74:
;main.c,504 :: if (flag.f1 && !INTCON.T0IE)// lapsed time indication
$0414 $3000 MOVLW 0
$0415 $1303 BCF STATUS, RP1
$0416 $1283 BCF STATUS, RP0
$0417 $18AF BTFSC _flag, 1
$0418 $3001 MOVLW 1
$0419 $00F1 MOVWF STACK_1
$041A $0871 MOVF STACK_1, 0
$041B $1903 BTFSC STATUS, Z
$041C $2C25 GOTO L_main_78
$041D $1A8B BTFSC INTCON, 5
$041E $2C25 GOTO L_main_78
$041F $ L687_ex_L_main_78:
;main.c,506 :: INTCON.T0IE = 0;
$041F $128B BCF INTCON, 5
;main.c,507 :: flag.f1 = 0; // flag.f1 is used as the the lapsed flag
$0420 $1303 BCF STATUS, RP1
$0421 $1283 BCF STATUS, RP0
$0422 $10AF BCF _flag, 1
;main.c,508 :: alarm();
$0423 $22A1 CALL _alarm
;main.c,509 :: PORTA.F3 = 0;
$0424 $1185 BCF PORTA, 3
;main.c,510 :: }
$0425 $ L_main_78:
;main.c,512 :: }
$0425 $2B17 GOTO L_main_46
;main.c,513 :: }
$0426 $2C26 GOTO $
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -