亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? picnic.asm.icd

?? PIC單片機實現(xiàn)的一種網(wǎng)絡(luò)單片機
?? ICD
?? 第 1 頁 / 共 5 頁
字號:
;
;  Disassembly by PICDIS V0.3
;  www.picemulator.com
;
;  PICNIC.HEX
;
	__CONFIG _CP_OFF & _WDT_OFF & _HS_OSC & _BODEN_ON & _PWRTE_ON

        LIST   P=PIC16F877
        INCLUDE "P16F877.INC"
        INCLUDE "defs.inc"
;
        ORG     0x0000
;
Begin:
        MOVLW   HIGH Start
        MOVWF   PCLATH
        GOTO    Start & 0x7ff
;
        ORG     0x0004
;
interrupt:
        MOVWF   w_save
        SWAPF   STATUS,W
        CLRF    STATUS
        MOVWF   status_save
        MOVF    PCLATH,W
        MOVWF   pclath_save
        CLRF    PCLATH
        BCF     STATUS,IRP
        MOVF    FSR,W
        MOVWF   fsr_save

;-----------------------------------------------------------------------------------
;		◆RB0中斷處理
        BTFSS   INTCON,INTE
        GOTO    int_next2
        BTFSS   INTCON,INTF
        GOTO    int_next2
        BCF     INTCON,INTF
        BSF     STATUS,RP0
        BSF     STATUS,RP1
        BSF     on_flow,7			; 232數(shù)據(jù)請求
        BCF     STATUS,RP1
        BCF     STATUS,RP0

;-----------------------------------------------------------------------------------
;		◆定時器中斷處理(10ms)
int_next2:
        BTFSC   PIR1,TMR1IF
        GOTO    int_tmr1
        GOTO    int_next1
int_tmr1:
        BCF     PIR1,TMR1IF
        BSF     STATUS,RP0
        MOVF    dhcp_done & 0x7F,W
        ANDLW   0x7F
        BTFSS   STATUS,Z
        DECF    dhcp_done & 0x7F,F
        BCF     STATUS,RP0
int_tmr2:
        BSF     STATUS,RP0
        MOVLW   0x01
        ADDWF   timer & 0x7F,F
        BTFSC   STATUS,C
        GOTO    dec_tm
dec_tm9:
        CLRF    STATUS

;-----------------------------------------------------------------------------------
;		◆USART中斷處理
int_next1:
        BTFSS   INTCON,PEIE
        GOTO    int2
        BTFSS   PIR1,RCIF			; RS232C受信?
        GOTO    int2
        BSF     STATUS,RP0
        MOVLW   fifo_bottom - fifo_top
        SUBWF   fifo_cn & 0x7F,W		; buffer overflow ?
        BTFSC   STATUS,C
        GOTO    rec_over

        MOVF    fifo_buff & 0x7F,W
        MOVWF   FSR
        BCF     STATUS,RP0
        MOVF    RCREG,W
        MOVWF   INDF
        BSF     STATUS,RP0
        INCF    fifo_buff & 0x7F,F
        MOVLW   fifo_bottom
        SUBWF   fifo_buff & 0x7F,W
        BTFSS   STATUS,C
        GOTO    int1_1
        MOVLW   fifo_top
        MOVWF   fifo_buff & 0x7F
int1_1:
        INCF    fifo_cn & 0x7F,F
        MOVLW   (fifo_bottom - fifo_top)/2
        SUBWF   fifo_cn & 0x7F,W
        BTFSS   STATUS,C
        GOTO    int2
        BSF     STATUS,RP1
        BTFSS   on_flow,0
        GOTO    int2
        CLRF    STATUS
        BSF     PORTB,1
;	bsf	PORTB,7				; for debug
int2:
        CLRF    STATUS
;-----------------------------------------------------------------------
; 	Context恢復(fù)處理
        MOVF    fsr_save,W
        MOVWF   FSR
        MOVF    pclath_save,W
        MOVWF   PCLATH
        SWAPF   status_save,W
        MOVWF   STATUS
        SWAPF   w_save,F
        SWAPF   w_save,W
        RETFIE
;-----------------------------------------------------------------------------------
;		RS232C收信緩沖區(qū)溢出
rec_over:
        BCF     STATUS,RP0
        MOVF    RCREG,W
        BCF     STATUS,RP0
        GOTO    int2
;-----------------------------------------------------------------------------------
;		Socket的超時檢查
dec_tm:
        BSF     STATUS,IRP
        MOVLW   SOCKETS
        MOVWF   timer_cn & 0x7F
        MOVLW   skb+1
        MOVWF   FSR
dec_tm0:
        MOVF    INDF,W
        ANDLW   0xF0
        BTFSC   STATUS,Z
        GOTO    dec_tm1
        MOVLW   0x10
        SUBWF   INDF,F
        MOVF    INDF,W
        ANDLW   0xF0
        BTFSS   STATUS,Z
        GOTO    dec_tm1
        DECF    FSR,F
        CLRF    INDF
        INCF    FSR,F
dec_tm1:
        MOVLW   0x10
        ADDWF   FSR,F
        DECFSZ  timer_cn & 0x7F,F
        GOTO    dec_tm0
        BCF     STATUS,IRP
        GOTO    dec_tm9

;-----------------------------------------------------------------------------------
;		取得16進制的文字
;
getascii:
        ANDLW   0x0F
        ADDWF   PCL,F
        DT      "0123456789ABCDEF"

;-----------------------------------------------------------------------------------
;		決定seq_no的初始化值
next_seq_no:
        BSF     STATUS,RP0
        MOVLW   0x01
        ADDWF   seq_no+2,F
        BTFSC   STATUS,C
        ADDWF   seq_no+3,F
        BCF     STATUS,RP0
        RETURN

;-----------------------------------------------------------------------------------
;		遞增TCP的seq_no
inc_seq_no:
        BSF     STATUS,IRP
        MOVLW   0x03
        ADDWF   FSR,F
        MOVLW   0x01
        ADDWF   INDF,F
        DECF    FSR,F
        BTFSC   STATUS,C
        ADDWF   INDF,F
        DECF    FSR,F
        BTFSC   STATUS,C
        ADDWF   INDF,F
        DECF    FSR,F
        BTFSC   STATUS,C
        ADDWF   INDF,F
        BCF     STATUS,IRP
        RETURN

;-----------------------------------------------------------------------------------
;		計算TCP的seq_no加ip_length
;
add_seq_no
        BSF     STATUS,IRP
        MOVLW   0x03
        ADDWF   FSR,F

        MOVF    ip_length+1,W
        ADDWF   INDF,F
        DECF    FSR,F
        MOVLW   0x01
        BTFSC   STATUS,C
        ADDWF   INDF,F
        DECF    FSR,F
        BTFSC   STATUS,C
        ADDWF   INDF,F
        DECF    FSR,F
        BTFSC   STATUS,C
        ADDWF   INDF,F

        MOVLW   0x02
        ADDWF   FSR,F
        MOVF    ip_length,W
        ADDWF   INDF,F
        DECF    FSR,F
        MOVLW   0x01
        BTFSC   STATUS,C
        ADDWF   INDF,F
        DECF    FSR,F
        BTFSC   STATUS,C
        ADDWF   INDF,F
        BCF     STATUS,IRP
        RETURN

;-----------------------------------------------------------------------------------
;		遞增TCP的ack_no
;
inc_ack_no:
        MOVLW   0x01
        ADDWF   tcp_seq_no+3,F
        BTFSC   STATUS,C
        ADDWF   tcp_seq_no+2,F
        BTFSC   STATUS,C
        ADDWF   tcp_seq_no+1,F
        BTFSC   STATUS,C
        ADDWF   tcp_seq_no,F
        GOTO    copy_ack_no

;-----------------------------------------------------------------------------------
;		計算TCP的ack_no加上ip_length的值
;
add_ack_no
        MOVLW   0x28					; 20+20
        SUBWF   ip_length+1,F
        MOVLW   0x01
        BTFSS   STATUS,C
        SUBWF   ip_length,F

        MOVF    ip_length+1,W
        ADDWF   tcp_seq_no+3,F
        MOVLW   0x01
        BTFSC   STATUS,C
        ADDWF   tcp_seq_no+2,F
        BTFSC   STATUS,C
        ADDWF   tcp_seq_no+1,F
        BTFSC   STATUS,C
        ADDWF   tcp_seq_no,F

        MOVF    ip_length,W
        ADDWF   tcp_seq_no+2,F
        MOVLW   0x01
        BTFSC   STATUS,C
        ADDWF   tcp_seq_no+1,F
        BTFSC   STATUS,C
        ADDWF   tcp_seq_no,F
copy_ack_no:
        MOVF    com_fsr,W
        MOVWF   FSR
        MOVLW   .12
        ADDWF   FSR,F
        BSF     STATUS,IRP
        MOVF    tcp_seq_no,W
        MOVWF   INDF
        INCF    FSR,F
        MOVF    tcp_seq_no+1,W
        MOVWF   INDF
        INCF    FSR,F
        MOVF    tcp_seq_no+2,W
        MOVWF   INDF
        INCF    FSR,F
        MOVF    tcp_seq_no+3,W
        MOVWF   INDF
        BCF     STATUS,IRP
        RETURN

;-----------------------------------------------------------------------------------
;		清除checksum值
;
clear_sum:
        CLRF    sum
        CLRF    sum+1
        CLRF    bytes
        RETURN


;-----------------------------------------------------------------------------------
;		Error Recovery Routing
;-----------------------------------------------------------------------------------
overflow2
overflow:
        CLRF    STATUS
        CLRF    PORTC
        MOVLW   0x21				; RTL8019AS STOP
        CALL    assert_wr0
        MOVLW   HIGH wait_ms
        MOVWF   PCLATH
        MOVLW   0x02
        MOVWF   wait_cn
        CALL    wait_ms & 0x7ff			; 10ms wait
        CLRF    PCLATH

        MOVLW   0x0A
        MOVWF   PORTC
        CLRW
        CALL    assert_wr0

        MOVLW   0x0B
        MOVWF   PORTC
        CLRW
        CALL    assert_wr0

        CALL    initialize			; 初始化RTL8019

        MOVLW   0x0C
        MOVWF   PORTC				; RCR
        MOVLW   b'00000100'
        CALL    assert_wr0			; MONITOR解除

        MOVLW   0x0D
        MOVWF   PORTC				; TCR
        CLRW					; L/B解除
        CALL    assert_wr0

        GOTO    main0				; 返回通常的處理

;-----------------------------------------------------------------------------------
;		Main Routing
;-----------------------------------------------------------------------------------
main:
        CLRF    PORTC
        MOVLW   0x22
        CALL    assert_wr0			;返回PAGE0

        MOVLW   0x0C
        MOVWF   PORTC
        MOVLW   b'00000100'
        CALL    assert_wr0
        MOVLW   0x0D
        MOVWF   PORTC				;TCR
        CLRW					;L/B解除
        CALL    assert_wr0

        MOVLW   HIGH wait_ms
        MOVWF   PCLATH
        MOVLW   .100
        MOVWF   wait_cn
        CALL    wait_ms & 0x7ff			; 100ms Wait
        CLRF    PCLATH

        MOVLW   this_ip
        MOVWF   FSR
        MOVF    INDF,W
        INCF    FSR,F
        IORWF   INDF,W
        INCF    FSR,F
        IORWF   INDF,W
        INCF    FSR,F
        IORWF   INDF,W
        BTFSS   STATUS,Z
        GOTO    main0				;自己的IP地址是0.0.0.0 ?
do_dhcp:
        CLRF    STATUS
        MOVLW   HIGH dhcp
        MOVWF   PCLATH
        CALL    dhcp & 0x7ff
        MOVLW   HIGH $
        MOVWF   PCLATH
;-----------------------------------------------------------------------------------
;		Main Loop
;-----------------------------------------------------------------------------------
main0:
        BSF     STATUS,RP0
        MOVLW   0x00
        SUBWF   fifo_cn & 0x7F,W
        BTFSS   STATUS,Z			;RS232C受信?
        GOTO    receive232c
        MOVLW   0x80
        SUBWF   dhcp_done & 0x7F,W
        BTFSC   STATUS,Z			;DHCP Timeout?
        GOTO    do_dhcp
        BCF     STATUS,RP0

        CLRF    PCLATH
        MOVLW   0x07
        MOVWF   PORTC
        CALL    assert_rd			;RCR Lead

        BTFSC   mdata,4
        GOTO    overflow
        BTFSC   mdata,3
        GOTO    overflow
        BTFSC   mdata,2
        GOTO    overflow
        GOTO    get_packet			;有收到Packet
main99:
        GOTO    main0

receive232c:
        BCF     STATUS,RP0
        MOVLW   HIGH serial_tx
        MOVWF   PCLATH
        GOTO    serial_tx & 0x7ff		;轉(zhuǎn)到RS232收信處理

;-----------------------------------------------------------------------------------
;		Packet收信處理
;-----------------------------------------------------------------------------------
get_packet:
;	PAGE 1
        CLRF    PORTC
        MOVLW   b'01100010'
        CALL    assert_wr0			;設(shè)置為Page1

        MOVLW   0x07
        MOVWF   PORTC
        CALL    assert_rd
        MOVF    mdata,W
        MOVWF   curr				;取得當(dāng)前的Page
;	PAGE 0
        CLRF    PORTC
        MOVLW   b'00100010'
        CALL    assert_wr0			;返回Page0

        MOVLW   0x03
        MOVWF   PORTC
        CALL    assert_rd			;讀入BNDY

        INCF    mdata,F				;BNDY++
        MOVLW   PAGE_STOP
        SUBWF   mdata,W
        BTFSS   STATUS,C
        GOTO    packet1				;計算overlap
        MOVLW   PAGE_START
        MOVWF   mdata
packet1:
        MOVF    curr,W
        SUBWF   mdata,W
        BTFSC   STATUS,Z			;如果(BNDY+1)==CURR的話,則沒有新數(shù)據(jù)
        GOTO    main0				;中斷


;-----------------------------------------------------------------------------------
; 讀取RTL8019 Status 和 Ethernet Header
        CLRF    remote_adr
        MOVF    mdata,W
        MOVWF   remote_adr+1
        MOVLW   NE_SIZE+PACKET_SIZE
        MOVWF   remote_len
        CLRF    remote_len+1
        CALL    remote_read

        MOVLW   NE_SIZE+PACKET_SIZE
        MOVWF   gcn1				; Loop Counter
        BCF     STATUS,IRP
        MOVLW   ne_header
        MOVWF   FSR				;讀取ne_header的地址
        MOVLW   0x10
        MOVWF   PORTC
get_packet0:
        BCF     PORTE,RE0			;RD
        BTFSS   PORTC,RC5			;RDY, ~Wait
        GOTO    $-1
        MOVF    PORTD,W
        BSF     PORTE,RE0
        MOVWF   INDF				;"indirect = data Buffer
        INCF    FSR,F				;FSR++
        DECFSZ  gcn1,F
        GOTO    get_packet0
;
;	Ethernet Header的處理判斷
        BSF     STATUS,RP0
        BTFSS   ne_stat,0
        GOTO    main9
        MOVLW   COM_PROTO
        SUBWF   eth_type & 0x7F,W
        BTFSS   STATUS,Z			; 跳過type的高8bit以外
        GOTO    main9
        MOVLW   IP_PROTO
        SUBWF   eth_type+1,W
        BTFSC   STATUS,Z
        GOTO    do_ip				;處理IP協(xié)議
        MOVLW   ARP_PROTO
        SUBWF   eth_type+1,W
        BTFSC   STATUS,Z
        GOTO    do_arp				;處理ARP協(xié)議
main9:						;其他
        BCF     STATUS,IRP
        BCF     STATUS,RP1
        BSF     STATUS,RP0
        MOVLW   PAGE_START
        SUBWF   ne_next & 0x7F,W
        BTFSS   STATUS,C
        GOTO    overflow2			;Error Check and Recover
        MOVLW   PAGE_STOP
        SUBWF   ne_next & 0x7F,W
        BTFSC   STATUS,C
        GOTO    overflow			;Error Check and Recover

        DECF    ne_next & 0x7F,F		;計算下一個邊界
        MOVLW   PAGE_START
        SUBWF   ne_next & 0x7F,W
        BTFSC   STATUS,C
        GOTO    packet11
        MOVLW   PAGE_STOP-1
        MOVWF   ne_next & 0x7F

packet11:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜视频福利| 亚洲国产一区二区视频| 国产在线精品不卡| 久久综合久久久久88| 国产主播一区二区三区| 国产午夜精品久久久久久免费视 | 国产精品嫩草影院com| 国产成人av电影在线| 国产精品免费丝袜| 色一情一伦一子一伦一区| 亚洲综合丝袜美腿| 欧美一区二区三区在| 国产精品夜夜嗨| 综合久久久久久| 欧美性视频一区二区三区| 日本在线不卡视频一二三区| xfplay精品久久| av激情成人网| 日产国产高清一区二区三区| 久久综合久久综合亚洲| caoporn国产精品| 亚洲一区二区三区爽爽爽爽爽| 宅男在线国产精品| 成人综合婷婷国产精品久久免费| 亚洲美女一区二区三区| 日韩一区二区三区电影| 粉嫩嫩av羞羞动漫久久久| 亚洲一区日韩精品中文字幕| 欧美第一区第二区| a4yy欧美一区二区三区| 三级成人在线视频| 国产精品色一区二区三区| 欧美日韩精品欧美日韩精品一| 精品在线一区二区三区| 亚洲最快最全在线视频| 久久蜜桃香蕉精品一区二区三区| 91久久一区二区| 国产一区二区不卡| 亚洲午夜羞羞片| 中文字幕av资源一区| 欧美高清性hdvideosex| 成人黄色软件下载| 美国一区二区三区在线播放| 亚洲免费在线播放| 国产欧美精品一区aⅴ影院 | 日韩免费观看2025年上映的电影| 99精品偷自拍| 国产呦萝稀缺另类资源| 亚洲成人动漫在线免费观看| 国产精品久久久久9999吃药| 精品粉嫩aⅴ一区二区三区四区| 欧美在线啊v一区| 国产老肥熟一区二区三区| 五月激情综合网| 亚洲免费三区一区二区| 中文字幕av免费专区久久| 在线不卡中文字幕播放| 色就色 综合激情| 国产·精品毛片| 久久国产人妖系列| 性感美女久久精品| 亚洲免费在线看| 国产精品久久久爽爽爽麻豆色哟哟| 精品裸体舞一区二区三区| 欧美日韩国产精选| 欧美艳星brazzers| 色噜噜狠狠成人中文综合| 成人综合婷婷国产精品久久 | 岛国精品一区二区| 国内精品国产成人| 紧缚奴在线一区二区三区| 石原莉奈在线亚洲三区| 婷婷综合五月天| 亚洲二区在线视频| 亚洲午夜免费电影| 亚洲曰韩产成在线| 亚洲国产精品久久艾草纯爱| 一区二区在线观看免费| 亚洲激情图片一区| 亚洲一级二级在线| 性做久久久久久久免费看| 亚洲国产aⅴ天堂久久| 亚洲成a人v欧美综合天堂下载| 亚洲一级电影视频| 图片区小说区国产精品视频| 亚洲国产成人av网| 午夜私人影院久久久久| 免费成人你懂的| 老司机精品视频线观看86| 九色综合国产一区二区三区| 国产精品自拍网站| 成人综合在线观看| 91福利国产精品| 欧美日韩黄色影视| 日韩一区二区三区三四区视频在线观看 | 日韩三级.com| 久久只精品国产| 中文字幕佐山爱一区二区免费| 亚洲欧美另类久久久精品| 亚洲宅男天堂在线观看无病毒| 亚洲一级二级在线| 久久国产免费看| 国产成人一级电影| 在线一区二区三区四区五区 | 久久se精品一区二区| 国产盗摄视频一区二区三区| 91蜜桃网址入口| 欧美精品777| 玉米视频成人免费看| 午夜精品aaa| 国精产品一区一区三区mba桃花 | 成人丝袜18视频在线观看| 一本大道综合伊人精品热热| 欧美精品精品一区| 久久综合精品国产一区二区三区 | 欧美三级午夜理伦三级中视频| 欧美日韩国产在线播放网站| 精品日韩欧美在线| 亚洲视频在线观看三级| 麻豆精品一区二区三区| thepron国产精品| 91精品国产入口在线| 国产精品美女久久久久久久久 | 久久精品国产亚洲aⅴ| www.成人在线| 日韩欧美综合在线| 亚洲美女屁股眼交3| 精品无码三级在线观看视频| 色先锋久久av资源部| 精品国产精品网麻豆系列| 亚洲伦在线观看| 国产不卡免费视频| 69堂国产成人免费视频| 中文字幕亚洲在| 国内精品久久久久影院薰衣草| 欧美日韩国产三级| 国产精品国产三级国产a| 激情综合网激情| 欧美日韩不卡一区二区| 成人免费一区二区三区在线观看| 久久精品久久久精品美女| 91电影在线观看| 国产精品久久久久久久久免费樱桃| 麻豆久久久久久| 精品视频在线免费| 亚洲视频香蕉人妖| 国产福利一区二区| 精品国产三级电影在线观看| 五月婷婷欧美视频| 日本韩国精品在线| 亚洲天天做日日做天天谢日日欢| 国产精品99久| 久久你懂得1024| 久久爱www久久做| 欧美一区二区成人6969| 日韩国产欧美在线视频| 欧美色图免费看| 一区二区三区四区精品在线视频| 99这里只有久久精品视频| 国产亚洲综合在线| 精品亚洲porn| 精品国产成人系列| 久久不见久久见免费视频7| 日韩一区二区三区av| 丝袜美腿成人在线| 欧美一区二区视频免费观看| 天使萌一区二区三区免费观看| 欧美日韩免费不卡视频一区二区三区| 亚洲欧美电影院| 欧美吞精做爰啪啪高潮| 亚洲第一会所有码转帖| 在线电影院国产精品| 天堂资源在线中文精品| 欧美一区二区人人喊爽| 久久电影网站中文字幕 | 精品国产网站在线观看| 精品一区二区三区欧美| 久久久久九九视频| 国产91精品免费| 日韩毛片精品高清免费| 91精彩视频在线| 日韩制服丝袜av| 精品国产不卡一区二区三区| 国产露脸91国语对白| 国产精品久久久久aaaa| 欧美日本一区二区在线观看| 日本在线不卡视频| 精品处破学生在线二十三| 国产盗摄视频一区二区三区| 国产网红主播福利一区二区| 六月丁香婷婷久久| 国产亚洲欧美在线| 96av麻豆蜜桃一区二区| 一区二区三区在线不卡| 欧美一区二区三区在线电影 | 国产欧美日本一区视频| 色综合天天综合给合国产| 丝袜美腿一区二区三区| 国产亚洲欧洲997久久综合| 一本久道中文字幕精品亚洲嫩|