📄 main.lst
字号:
$03A5 $1283 BCF STATUS, RP0
$03A6 $00C4 MOVWF save_password_address_L0
;main.c,416 :: byte_count1 = 0;
$03A7 $01A6 CLRF _byte_count1, 1
;main.c,417 :: while (byte_count1 < 6)
$03A8 $ L_save_password_84:
$03A8 $3080 MOVLW 128
$03A9 $0626 XORWF _byte_count1, 0
$03AA $00F0 MOVWF STACK_0
$03AB $3080 MOVLW 128
$03AC $3A06 XORLW 6
$03AD $0270 SUBWF STACK_0, 0
$03AE $1803 BTFSC STATUS, C
$03AF $2BBD GOTO L_save_password_85
;main.c,419 :: EEprom_Write (address,password[byte_count1]);
$03B0 $0844 MOVF save_password_address_L0, 0
$03B1 $00C9 MOVWF FARG_EEprom_write+0
$03B2 $0826 MOVF _byte_count1, 0
$03B3 $3F29 ADDLW _password
$03B4 $0084 MOVWF FSR
$03B5 $0800 MOVF INDF, 0
$03B6 $00CA MOVWF FARG_EEprom_write+1
$03B7 $219E CALL _EEprom_write
;main.c,420 :: byte_count1++;
$03B8 $1303 BCF STATUS, RP1
$03B9 $1283 BCF STATUS, RP0
$03BA $0AA6 INCF _byte_count1, 1
;main.c,421 :: address++;
$03BB $0AC4 INCF save_password_address_L0, 1
;main.c,422 :: }
$03BC $2BA8 GOTO L_save_password_84
$03BD $ L_save_password_85:
;main.c,423 :: }
$03BD $0008 RETURN
$03BE $ _close_door:
;main.c,502 :: void close_door()
;main.c,505 :: offset_message(1,0x50);
$03BE $3001 MOVLW 1
$03BF $1303 BCF STATUS, RP1
$03C0 $1283 BCF STATUS, RP0
$03C1 $00C9 MOVWF FARG_offset_message+0
$03C2 $3050 MOVLW 80
$03C3 $00CA MOVWF FARG_offset_message+1
$03C4 $20EF CALL _offset_message
;main.c,506 :: step_count = 150;
$03C5 $3096 MOVLW 150
$03C6 $00C4 MOVWF close_door_step_count_L0
;main.c,507 :: while (step_count > 0)
$03C7 $ L_close_door_92:
$03C7 $0844 MOVF close_door_step_count_L0, 0
$03C8 $3C00 SUBLW 0
$03C9 $1803 BTFSC STATUS, C
$03CA $2BCE GOTO L_close_door_93
;main.c,509 :: rotate2();
$03CB $21BA CALL _rotate2
;main.c,510 :: step_count--;
$03CC $03C4 DECF close_door_step_count_L0, 1
;main.c,511 :: }
$03CD $2BC7 GOTO L_close_door_92
$03CE $ L_close_door_93:
;main.c,512 :: solenoid = 1;
$03CE $1488 BSF PORTD, 1
;main.c,513 :: step_count = 28;
$03CF $301C MOVLW 28
$03D0 $00C4 MOVWF close_door_step_count_L0
;main.c,514 :: while (step_count > 0)
$03D1 $ L_close_door_94:
$03D1 $0844 MOVF close_door_step_count_L0, 0
$03D2 $3C00 SUBLW 0
$03D3 $1803 BTFSC STATUS, C
$03D4 $2BD8 GOTO L_close_door_95
;main.c,516 :: rotate2();
$03D5 $21BA CALL _rotate2
;main.c,517 :: step_count--;
$03D6 $03C4 DECF close_door_step_count_L0, 1
;main.c,518 :: }
$03D7 $2BD1 GOTO L_close_door_94
$03D8 $ L_close_door_95:
;main.c,519 :: solenoid = 0;
$03D8 $1088 BCF PORTD, 1
;main.c,520 :: offset_message(1,0x70);
$03D9 $3001 MOVLW 1
$03DA $00C9 MOVWF FARG_offset_message+0
$03DB $3070 MOVLW 112
$03DC $00CA MOVWF FARG_offset_message+1
$03DD $20EF CALL _offset_message
;main.c,521 :: Delay1s();
$03DE $2110 CALL _Delay1s
;main.c,522 :: Delay1s();
$03DF $2110 CALL _Delay1s
;main.c,523 :: Delay1s();
$03E0 $2110 CALL _Delay1s
;main.c,524 :: }
$03E1 $0008 RETURN
$03E2 $ _clear_message_buffers:
;main.c,40 :: void clear_message_buffers() // this routine will clear the memory locations
;main.c,42 :: byte_count1 = 0;
$03E2 $1303 BCF STATUS, RP1
$03E3 $1283 BCF STATUS, RP0
$03E4 $01A6 CLRF _byte_count1, 1
;main.c,43 :: while (byte_count1 < 77)
$03E5 $ L_clear_message_buffers_0:
$03E5 $3080 MOVLW 128
$03E6 $0626 XORWF _byte_count1, 0
$03E7 $00F0 MOVWF STACK_0
$03E8 $3080 MOVLW 128
$03E9 $3A4D XORLW 77
$03EA $0270 SUBWF STACK_0, 0
$03EB $1803 BTFSC STATUS, C
$03EC $2BF5 GOTO L_clear_message_buffers_1
;main.c,45 :: message_buffer[byte_count1] = 0;
$03ED $0826 MOVF _byte_count1, 0
$03EE $3FA0 ADDLW _message_buffer
$03EF $00F0 MOVWF STACK_0
$03F0 $0870 MOVF STACK_0, 0
$03F1 $0084 MOVWF FSR
$03F2 $0180 CLRF INDF, 1
;main.c,46 :: byte_count1++;
$03F3 $0AA6 INCF _byte_count1, 1
;main.c,47 :: }
$03F4 $2BE5 GOTO L_clear_message_buffers_0
$03F5 $ L_clear_message_buffers_1:
;main.c,48 :: }
$03F5 $0008 RETURN
$03F6 $ _recieve_message:
;main.c,78 :: void recieve_message(unsigned short message_length)
;main.c,80 :: byte_count1 = 0;
$03F6 $1303 BCF STATUS, RP1
$03F7 $1283 BCF STATUS, RP0
$03F8 $01A6 CLRF _byte_count1, 1
;main.c,81 :: time_count = 0;
$03F9 $01A7 CLRF _time_count
$03FA $01A8 CLRF _time_count+1
;main.c,82 :: while (byte_count1 < message_length && time_count < 1250)
$03FB $ L_recieve_message_6:
$03FB $0844 MOVF FARG_recieve_message+0, 0
$03FC $0226 SUBWF _byte_count1, 0
$03FD $1803 BTFSC STATUS, C
$03FE $2C18 GOTO L_recieve_message_7
$03FF $3004 MOVLW 4
$0400 $0228 SUBWF _time_count+1, 0
$0401 $1D03 BTFSS STATUS, Z
$0402 $2C05 GOTO L_recieve_message_150
$0403 $30E2 MOVLW 226
$0404 $0227 SUBWF _time_count, 0
$0405 $ L_recieve_message_150:
$0405 $1803 BTFSC STATUS, C
$0406 $2C18 GOTO L_recieve_message_7
$0407 $ L203_ex_L_recieve_message_7:
;main.c,84 :: if (PIR1.RCIF)
$0407 $1E8C BTFSS PIR1, 5
$0408 $2C14 GOTO L_recieve_message_10
;main.c,86 :: message_buffer[byte_count1] = Usart_Read();
$0409 $0826 MOVF _byte_count1, 0
$040A $3FA0 ADDLW _message_buffer
$040B $00C5 MOVWF FLOC_recieve_message+0
$040C $21C9 CALL _Usart_Read
$040D $0845 MOVF FLOC_recieve_message+0, 0
$040E $0084 MOVWF FSR
$040F $0870 MOVF STACK_0, 0
$0410 $0080 MOVWF INDF
;main.c,87 :: byte_count1++;
$0411 $0AA6 INCF _byte_count1, 1
;main.c,88 :: time_count = 0;
$0412 $01A7 CLRF _time_count
$0413 $01A8 CLRF _time_count+1
;main.c,89 :: }
$0414 $ L_recieve_message_10:
;main.c,90 :: time_count++;
$0414 $0AA7 INCF _time_count, 1
$0415 $1903 BTFSC STATUS, Z
$0416 $0AA8 INCF _time_count+1, 1
;main.c,91 :: }
$0417 $2BFB GOTO L_recieve_message_6
$0418 $ L_recieve_message_7:
;main.c,92 :: }
$0418 $0008 RETURN
$0419 $ _transfer_senders_number:
;main.c,94 :: void transfer_senders_number()
;main.c,97 :: byte_count1 = 0;
$0419 $1303 BCF STATUS, RP1
$041A $1283 BCF STATUS, RP0
$041B $01A6 CLRF _byte_count1, 1
;main.c,98 :: byte_count2 = 9;
$041C $3009 MOVLW 9
$041D $00B5 MOVWF _byte_count2
;main.c,99 :: while (byte_count1 < 13)
$041E $ L_transfer_senders_number_11:
$041E $3080 MOVLW 128
$041F $0626 XORWF _byte_count1, 0
$0420 $00F0 MOVWF STACK_0
$0421 $3080 MOVLW 128
$0422 $3A0D XORLW 13
$0423 $0270 SUBWF STACK_0, 0
$0424 $1803 BTFSC STATUS, C
$0425 $2C35 GOTO L_transfer_senders_number_12
;main.c,101 :: senders_number[byte_count1] = message_buffer[byte_count2];
$0426 $0826 MOVF _byte_count1, 0
$0427 $3F36 ADDLW _senders_number
$0428 $00F1 MOVWF STACK_1
$0429 $0835 MOVF _byte_count2, 0
$042A $3FA0 ADDLW _message_buffer
$042B $0084 MOVWF FSR
$042C $0800 MOVF INDF, 0
$042D $00F0 MOVWF STACK_0
$042E $0871 MOVF STACK_1, 0
$042F $0084 MOVWF FSR
$0430 $0870 MOVF STACK_0, 0
$0431 $0080 MOVWF INDF
;main.c,103 :: byte_count1++;
$0432 $0AA6 INCF _byte_count1, 1
;main.c,104 :: byte_count2++;
$0433 $0AB5 INCF _byte_count2, 1
;main.c,105 :: }
$0434 $2C1E GOTO L_transfer_senders_number_11
$0435 $ L_transfer_senders_number_12:
;main.c,106 :: }
$0435 $0008 RETURN
$0436 $ _transfer_sent_password:
;main.c,108 :: void transfer_sent_password()
;main.c,111 :: byte_count1 = 0;
$0436 $1303 BCF STATUS, RP1
$0437 $1283 BCF STATUS, RP0
$0438 $01A6 CLRF _byte_count1, 1
;main.c,112 :: byte_count2 = 49;
$0439 $3031 MOVLW 49
$043A $00B5 MOVWF _byte_count2
;main.c,113 :: while (byte_count1 < 6)
$043B $ L_transfer_sent_password_13:
$043B $3080 MOVLW 128
$043C $0626 XORWF _byte_count1, 0
$043D $00F0 MOVWF STACK_0
$043E $3080 MOVLW 128
$043F $3A06 XORLW 6
$0440 $0270 SUBWF STACK_0, 0
$0441 $1803 BTFSC STATUS, C
$0442 $2C52 GOTO L_transfer_sent_password_14
;main.c,115 :: temp_password[byte_count1] = message_buffer[byte_count2];
$0443 $0826 MOVF _byte_count1, 0
$0444 $3F2F ADDLW _temp_password
$0445 $00F1 MOVWF STACK_1
$0446 $0835 MOVF _byte_count2, 0
$0447 $3FA0 ADDLW _message_buffer
$0448 $0084 MOVWF FSR
$0449 $0800 MOVF INDF, 0
$044A $00F0 MOVWF STACK_0
$044B $0871 MOVF STACK_1, 0
$044C $0084 MOVWF FSR
$044D $0870 MOVF STACK_0, 0
$044E $0080 MOVWF INDF
;main.c,117 :: byte_count1++;
$044F $0AA6 INCF _byte_count1, 1
;main.c,118 :: byte_count2++;
$0450 $0AB5 INCF _byte_count2, 1
;main.c,119 :: }
$0451 $2C3B GOTO L_transfer_sent_password_13
$0452 $ L_transfer_sent_password_14:
;main.c,120 :: }
$0452 $0008 RETURN
$0453 $ _compare_with_open_command:
;main.c,328 :: unsigned short compare_with_open_command() //ok
;main.c,330 :: if (message_buffer[55] != '/')
$0453 $1303 BCF STATUS, RP1
$0454 $1683 BSF STATUS, RP0
$0455 $0857 MOVF _message_buffer+55, 0
$0456 $3A2F XORLW 47
$0457 $1903 BTFSC STATUS, Z
$0458 $2C5B GOTO L_compare_with_open_command_67
;main.c,332 :: return 0;
$0459 $01F0 CLRF STACK_0, 1
$045A $0008 RETURN
;main.c,333 :: }
$045B $ L_compare_with_open_command_67:
;main.c,335 :: if (message_buffer[56] != 'O')
$045B $0858 MOVF _message_buffer+56, 0
$045C $3A4F XORLW 79
$045D $1903 BTFSC STATUS, Z
$045E $2C61 GOTO L_compare_with_open_command_68
;main.c,337 :: return 0;
$045F $01F0 CLRF STACK_0, 1
$0460 $0008 RETURN
;main.c,338 :: }
$0461 $ L_compare_with_open_command_68:
;main.c,339 :: if (message_buffer[57] != 'P')
$0461 $0859 MOVF _message_buffer+57, 0
$0462 $3A50 XORLW 80
$0463 $1903 BTFSC STATUS, Z
$0464 $2C67 GOTO L_compare_with_open_command_69
;main.c,341 :: return 0;
$0465 $01F0 CLRF STACK_0, 1
$0466 $0008 RETURN
;main.c,342 :: }
$0467 $ L_compare_with_open_command_69:
;main.c,343 :: if (message_buffer[58] != 'E')
$0467 $085A MOVF _message_buffer+58, 0
$0468 $3A45 XORLW 69
$0469 $1903 BTFSC STATUS, Z
$046A $2C6D GOTO L_compare_with_open_command_70
;main.c,345 :: return 0;
$046B $01F0 CLRF STACK_0, 1
$046C $0008 RETURN
;main.c,346 :: }
$046D $ L_compare_with_open_command_70:
;main.c,347 :: if (message_buffer[59] != 'N')
$046D $085B MOVF _message_buffer+59, 0
$046E $3A4E XORLW 78
$046F $1903 BTFSC STATUS, Z
$0470 $2C73 GOTO L_compare_with_open_command_71
;main.c,349 :: return 0;
$0471 $01F0 CLRF STACK_0, 1
$0472 $0008 RETURN
;main.c,350 :: }
$0473 $ L_compare_with_open_command_71:
;main.c,351 :: if (message_buffer[60] != carriage_return)
$0473 $085C MOVF _message_buffer+60, 0
$0474 $3A0D XORLW 13
$0475 $1903 BTFSC STATUS, Z
$0476 $2C79 GOTO L_compare_with_open_command_72
;main.c,353 :: return 0;
$0477 $01F0 CLRF STACK_0, 1
$0478 $0008 RETURN
;main.c,354 :: }
$0479 $ L_compare_with_open_command_72:
;main.c,355 :: if (message_buffer[61] != line_feed)
$0479 $085D MOVF _message_buffer+61, 0
$047A $3A0A XORLW 10
$047B $1903 BTFSC STATUS, Z
$047C $2C7F GOTO L_compare_with_open_command_73
;main.c,357 :: return 0;
$047D $01F0 CLRF STACK_0, 1
$047E $0008 RETURN
;main.c,358 :: }
$047F $ L_compare_with_open_command_73:
;main.c,359 :: return 1;
$047F $3001 MOVLW 1
$0480 $00F0 MOVWF STACK_0
;main.c,360 :: }
$0481 $0008 RETURN
$0482 $ _setup_reply_message:
;main.c,122 :: void setup_reply_message()
;main.c,124 :: byte_count1 = 0;
$0482 $1303 BCF STATUS, RP1
$0483 $1283 BCF STATUS, RP0
$0484 $01A6 CLRF _byte_count1, 1
;main.c,125 :: while (byte_count1 < 8)
$0485 $ L_setup_reply_message_15:
$0485 $3080 MOVLW 128
$0486 $0626 XORWF _byte_count1, 0
$0487 $00F0 MOVWF STACK_0
$0488 $3080 MOVLW 128
$0489 $3A08 XORLW 8
$048A $0270 SUBWF STACK_0, 0
$048B $1803 BTFSC STATUS, C
$048C $2CA1 GOTO L_setup_reply_message_16
;main.c,127 :: Usart_Write(send_message_header[byte_count1]);
$048D $0826 MOVF _byte_count1, 0
$048E $3FE4 ADDLW #_send_message_header
$048F $00F0 MOVWF STACK_0
$0490 $3001 MOVLW @#_send_message_header
$0491 $1803 BTFSC STATUS, C
$0492 $3F01 ADDLW 1
$0493 $00F1 MOVWF STACK_0+1
$0494 $0870 MOVF STACK_0, 0
$0495 $00A4 MOVWF ___DoICPLoAddr
$0496 $0871 MOVF STACK_0+1, 0
$0497 $00A3 MOVWF ___DoICPHiAddr
$0498 $080A MOVF PCLATH, 0
$0499 $00A2 MOVWF ___DoICPSavePCLATH
$049A $20C6 CALL _____DoICP
$049B $00C9 MOVWF FARG_Usart_Write+0
$049C $0822 MOVF ___DoICPSavePCLATH, 0
$049D $008A MOVWF PCLATH
$049E $21D4 CALL _Usart_Write
;main.c,128 :: byte_count1++;
$049F $0AA6 INCF _byte_count1, 1
;main.c,129 :: }
$04A0 $2C85 GOTO L_setup_reply_message_15
$04A1 $ L_setup_reply_message_16:
;main.c,130 :: byte_count1 = 0;
$04A1 $01A6 CLRF _byte_count1, 1
;main.c,131 :: while (byte_count1 < 13)
$04A2 $ L_setup_reply_message_17:
$04A2 $3080 MOVLW 128
$04A3 $0626 XORWF _byte_count1, 0
$04A4 $00F0 MOVWF STACK_0
$04A5 $3080 MOVLW 128
$04A6 $3A0D XORLW 13
$04A7 $0270 SUBWF STACK_0, 0
$04A8 $1803 BTFSC STATUS, C
$04A9 $2CB2 GOTO L_setup_reply_message_18
;main.c,133 :: Usart_Write(senders_number[byte_count1]);
$04AA $0826 MOVF _byte_count1, 0
$04AB $3F36 ADDLW _senders_number
$04AC $0084 MOVWF FSR
$04AD $0800 MOVF INDF, 0
$04AE $00C9 MOVWF FARG_Usart_Write+0
$04AF $21D4 CALL _Usart_Write
;main.c,134 :: byte_count1++;
$04B0 $0AA6 INCF _byte_count1, 1
;main.c,135 :: }
$04B1 $2CA2 GOTO L_setup_reply_message_17
$04B2 $ L_setup_reply_message_18:
;main.c,136 :: Usart_Write (carriage_return);
$04B2 $300D MOVLW 13
$04B3 $00C9 MOVWF FARG_Usart_Write+0
$04B4 $21D4 CALL _Usart_Write
;main.c,137 :: while (buffer != '>') buffer = Usart_Read();
$04B5 $ L_setup_reply_message_19:
$04B5 $0825 MOVF _buffer, 0
$04B6 $3A3E XORLW 62
$04B7 $1903 BTFSC STATUS, Z
$04B8 $2CBD GOTO L_setup_reply_message_20
$04B9 $21C9 CALL _Usart_Read
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -