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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? picnic.asm.icd

?? PIC單片機實現的一種網絡單片機
?? 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數據請求
        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恢復處理
        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收信緩沖區溢出
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		;轉到RS232收信處理

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

        MOVLW   0x07
        MOVWF   PORTC
        CALL    assert_rd
        MOVF    mdata,W
        MOVWF   curr				;取得當前的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的話,則沒有新數據
        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協議
        MOVLW   ARP_PROTO
        SUBWF   eth_type+1,W
        BTFSC   STATUS,Z
        GOTO    do_arp				;處理ARP協議
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:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情av在线| 波多野结衣欧美| 99久久久精品| 日韩视频永久免费| 樱花草国产18久久久久| 国产曰批免费观看久久久| 色就色 综合激情| 亚洲精品一区二区在线观看| 亚洲一区在线看| 成人性生交大合| 国产亚洲人成网站| 免费在线观看不卡| 欧美性欧美巨大黑白大战| 国产精品免费丝袜| 国产91丝袜在线观看| 欧美www视频| 老司机免费视频一区二区三区| 91成人看片片| 亚洲乱码国产乱码精品精98午夜| 国产不卡一区视频| 国产午夜精品一区二区三区四区| 蓝色福利精品导航| 日韩一级黄色片| 日本成人在线网站| 日韩午夜在线观看视频| 日韩国产精品久久久| 欧美精品久久一区二区三区| 一区二区三区在线观看动漫| 在线免费精品视频| 亚洲免费毛片网站| 在线精品国精品国产尤物884a| 自拍偷自拍亚洲精品播放| www.欧美日韩国产在线| 中文字幕欧美三区| 97se狠狠狠综合亚洲狠狠| 国产精品国产三级国产三级人妇| 成人禁用看黄a在线| 亚洲视频一区二区免费在线观看| 91亚洲精华国产精华精华液| 亚洲精品少妇30p| 欧美特级限制片免费在线观看| 一区二区三区精品视频在线| 欧日韩精品视频| 午夜电影网一区| 欧美成人r级一区二区三区| 国产在线视频不卡二| 久久精品在线观看| 99在线精品视频| 亚洲午夜国产一区99re久久| 欧美一区二区三区公司| 国产精品综合av一区二区国产馆| 国产欧美视频一区二区| 91日韩在线专区| 日韩av网站在线观看| 国产亚洲精品bt天堂精选| 99久久精品久久久久久清纯| 午夜激情一区二区三区| 久久一夜天堂av一区二区三区| 北岛玲一区二区三区四区| 五月天中文字幕一区二区| 久久香蕉国产线看观看99| 91视频.com| 久久草av在线| 亚洲免费观看高清完整 | 亚洲成av人片观看| 精品国产凹凸成av人网站| 99久久99久久久精品齐齐| 日韩av在线发布| 中文字幕一区二区三区色视频| 欧美色偷偷大香| 国产一区二区三区免费观看| 亚洲裸体xxx| 久久久久免费观看| 欧美日韩中文国产| 懂色一区二区三区免费观看| 日韩av在线免费观看不卡| 国产精品国产三级国产普通话三级 | 91网站最新网址| 精品一区二区三区在线播放 | 精品系列免费在线观看| 怡红院av一区二区三区| 国产调教视频一区| 欧美一区二区大片| 在线精品视频免费播放| 高清成人在线观看| 韩日av一区二区| 亚洲成va人在线观看| 国产精品高潮呻吟| 久久久久亚洲综合| 欧美成人精品3d动漫h| 欧美网站大全在线观看| 97久久精品人人爽人人爽蜜臀| 精品一区二区av| 天天影视色香欲综合网老头| 亚洲精品中文字幕乱码三区| 欧美国产在线观看| 国产视频911| 久久久久久**毛片大全| 日韩欧美国产精品| 日韩免费观看高清完整版 | 欧美日韩视频一区二区| 色老综合老女人久久久| av在线不卡网| 99精品欧美一区二区三区小说 | proumb性欧美在线观看| 福利一区在线观看| 国产91精品一区二区麻豆网站| 国产乱码一区二区三区| 激情小说欧美图片| 国产在线精品不卡| 国产精品99久久久久久久女警| 国内久久精品视频| 国产盗摄一区二区| 成人h动漫精品| av中文字幕一区| 色爱区综合激月婷婷| 色综合久久中文字幕| 欧美视频一区二区| 91精品国产综合久久国产大片| 日韩一区二区在线看| 精品久久久久99| 欧美国产日韩亚洲一区| 亚洲欧洲国产专区| 一区二区成人在线观看| 视频一区视频二区中文| 精品一区二区在线视频| 国产精品69久久久久水密桃| 91麻豆产精品久久久久久| 色偷偷一区二区三区| 欧美日本一区二区三区四区| 欧美一区二区三区免费| 日本一区二区三区国色天香| 亚洲视频在线观看一区| 亚洲成人av一区二区三区| 久久99国产精品尤物| 成人免费高清在线| 欧美日韩国产高清一区二区三区| 欧美一级黄色片| 国产精品久久福利| 亚洲午夜在线电影| 激情综合色综合久久综合| 成人国产电影网| 制服.丝袜.亚洲.另类.中文| wwwwxxxxx欧美| 亚洲网友自拍偷拍| 国产一区美女在线| 日本韩国精品在线| 26uuu色噜噜精品一区二区| 国产精品福利一区| 日韩二区三区在线观看| 成人动漫一区二区在线| 91麻豆精品国产| 中文字幕乱码一区二区免费| 婷婷开心久久网| 国产.欧美.日韩| 日韩一区二区不卡| 亚洲欧美另类在线| 黄网站免费久久| 欧美日韩精品是欧美日韩精品| 久久精品一区二区三区av| 亚洲一区二区三区四区中文字幕| 国产成人av影院| 日韩一级视频免费观看在线| 国产精品久久久久久久久果冻传媒| 亚洲va韩国va欧美va| 99久久er热在这里只有精品15 | 欧美日韩一区二区三区高清| 国产偷国产偷亚洲高清人白洁| 天堂av在线一区| 91官网在线免费观看| 久久人人超碰精品| 麻豆精品一区二区av白丝在线| 在线视频一区二区免费| 国产精品白丝在线| 成人网在线免费视频| 久久在线免费观看| 久久99最新地址| 91精品欧美一区二区三区综合在| 亚洲欧美日韩久久| 91尤物视频在线观看| 国产精品灌醉下药二区| 国产成人日日夜夜| 精品成人私密视频| 激情综合亚洲精品| 91精品国产欧美一区二区成人| 亚洲综合色自拍一区| 91国偷自产一区二区三区观看| 国产精品国产自产拍高清av王其| 国产高清在线精品| 久久久久久久综合狠狠综合| 国产一区二区三区不卡在线观看| 日韩美女视频在线| 麻豆精品在线观看| 日韩欧美你懂的| 久久国产剧场电影| 久久精品一区四区| 成人精品小蝌蚪| 国产精品久久久久精k8| 91网站在线观看视频| 夜夜嗨av一区二区三区网页|