⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.s

📁 在串口上PPP拨号上网的源程序(实现PPP协议栈)
💻 S
字号:
	.module main.c
	.area data(ram, con, rel)
_local_magic_num:
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile G:\sppp/PPP.h
	.dbsym s local_magic_num _local_magic_num A[4:4]c
_remote_magic_num:
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile G:\sppp/PPP.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile G:\sppp/PPP.h
	.dbsym s remote_magic_num _remote_magic_num A[4:4]c
	.area lit(rom, con, rel)
_fcstab:
	.word 0
	.word 4489
	.word 8978
	.word 12955
	.word 17956
	.word 22445
	.word 25910
	.word 29887
	.word 35912
	.word 40385
	.word 44890
	.word 48851
	.word 51820
	.word 56293
	.word 59774
	.word 63735
	.word 4225
	.word 264
	.word 13203
	.word 8730
	.word 22181
	.word 18220
	.word 30135
	.word 25662
	.word 40137
	.word 36160
	.word 49115
	.word 44626
	.word 56045
	.word 52068
	.word 63999
	.word 59510
	.word 8450
	.word 12427
	.word 528
	.word 5017
	.word 26406
	.word 30383
	.word 17460
	.word 21949
	.word 44362
	.word 48323
	.word 36440
	.word 40913
	.word 60270
	.word 64231
	.word 51324
	.word 55797
	.word 12675
	.word 8202
	.word 4753
	.word 792
	.word 30631
	.word 26158
	.word 21685
	.word 17724
	.word 48587
	.word 44098
	.word 40665
	.word 36688
	.word 64495
	.word 60006
	.word 55549
	.word 51572
	.word 16900
	.word 21389
	.word 24854
	.word 28831
	.word 1056
	.word 5545
	.word 10034
	.word 14011
	.word 52812
	.word 57285
	.word 60766
	.word 64727
	.word 34920
	.word 39393
	.word 43898
	.word 47859
	.word 21125
	.word 17164
	.word 29079
	.word 24606
	.word 5281
	.word 1320
	.word 14259
	.word 9786
	.word 57037
	.word 53060
	.word 64991
	.word 60502
	.word 39145
	.word 35168
	.word 48123
	.word 43634
	.word 25350
	.word 29327
	.word 16404
	.word 20893
	.word 9506
	.word 13483
	.word 1584
	.word 6073
	.word 61262
	.word 65223
	.word 52316
	.word 56789
	.word 43370
	.word 47331
	.word 35448
	.word 39921
	.word 29575
	.word 25102
	.word 20629
	.word 16668
	.word 13731
	.word 9258
	.word 5809
	.word 1848
	.word 65487
	.word 60998
	.word 56541
	.word 52564
	.word 47595
	.word 43106
	.word 39673
	.word 35696
	.word 33800
	.word 38273
	.word 42778
	.word 46739
	.word 49708
	.word 54181
	.word 57662
	.word 61623
	.word 2112
	.word 6601
	.word 11090
	.word 15067
	.word 20068
	.word 24557
	.word 28022
	.word 31999
	.word 38025
	.word 34048
	.word 47003
	.word 42514
	.word 53933
	.word 49956
	.word 61887
	.word 57398
	.word 6337
	.word 2376
	.word 15315
	.word 10842
	.word 24293
	.word 20332
	.word 32247
	.word 27774
	.word 42250
	.word 46211
	.word 34328
	.word 38801
	.word 58158
	.word 62119
	.word 49212
	.word 53685
	.word 10562
	.word 14539
	.word 2640
	.word 7129
	.word 28518
	.word 32495
	.word 19572
	.word 24061
	.word 46475
	.word 41986
	.word 38553
	.word 34576
	.word 62383
	.word 57894
	.word 53437
	.word 49460
	.word 14787
	.word 10314
	.word 6865
	.word 2904
	.word 32743
	.word 28270
	.word 23797
	.word 19836
	.word 50700
	.word 55173
	.word 58654
	.word 62615
	.word 32808
	.word 37281
	.word 41786
	.word 45747
	.word 19012
	.word 23501
	.word 26966
	.word 30943
	.word 3168
	.word 7657
	.word 12146
	.word 16123
	.word 54925
	.word 50948
	.word 62879
	.word 58390
	.word 37033
	.word 33056
	.word 46011
	.word 41522
	.word 23237
	.word 19276
	.word 31191
	.word 26718
	.word 7393
	.word 3432
	.word 16371
	.word 11898
	.word 59150
	.word 63111
	.word 50204
	.word 54677
	.word 41258
	.word 45219
	.word 33336
	.word 37809
	.word 27462
	.word 31439
	.word 18516
	.word 23005
	.word 11618
	.word 15595
	.word 3696
	.word 8185
	.word 63375
	.word 58886
	.word 54429
	.word 50452
	.word 45483
	.word 40994
	.word 37561
	.word 33584
	.word 31687
	.word 27214
	.word 22741
	.word 18780
	.word 15843
	.word 11370
	.word 7921
	.word 3960
	.dbsym s fcstab _fcstab A[512:256]ks
	.area data(ram, con, rel)
	.dbfile G:\sppp/PPP.h
_ptrBUFFER::
	.blkw 1
	.area idata
	.word _UART_BUFFER
	.area data(ram, con, rel)
	.dbfile G:\sppp/PPP.h
	.dbfile G:\sppp\main.c
	.dbsym e ptrBUFFER _ptrBUFFER pc
_MRU:
	.blkb 2
	.area idata
	.word 1200
	.area data(ram, con, rel)
	.dbfile G:\sppp\main.c
	.dbsym s MRU _MRU i
_j:
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile G:\sppp\main.c
	.dbsym s j _j i
	.area vector(rom, abs)
	.org 120
	jmp _uart_inter
	.area data(ram, con, rel)
	.dbfile G:\sppp\main.c
L2:
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile G:\sppp\main.c
	.area text(rom, con, rel)
	.dbfile G:\sppp\main.c
	.dbfunc e uart_inter _uart_inter fV
	.dbsym s i L2 c
	.even
_uart_inter::
	xcall push_lset
	.dbline -1
	.dbline 20
; #include <iom128v.h>
; #include <stdlib.h>
; #include <string.h>
; #include "PPP.h"
; #include "UART.h"
; #define xtal 7372800
; 
; void modem (void);
; void delay_1ms(void);
; void delay_ms(unsigned int n );
; 
; BYTE UART_BUFFER[PPP_BUFFER_SIZE+3];
; extern BYTE *ptrBUFFER=UART_BUFFER;
; static WORD MRU=PPP_BUFFER_SIZE;
; extern BYTE PPPStatus;
; extern UART_ptr;
; static WORD j=0;
; #pragma interrupt_handler uart_inter:31
; void uart_inter(void)
; {
	.dbline 22
; static BYTE i=0;
; UCSR1B&=~(1<<RXCIE1);
	lds R24,154
	andi R24,127
	sts 154,R24
	.dbline 23
;   i=getchar();
	xcall _getchar
	sts L2,R16
	.dbline 24
;   	if(j>(PPP_BUFFER_SIZE+3)) 
	ldi R24,1203
	ldi R25,4
	lds R2,_j
	lds R3,_j+1
	cp R24,R2
	cpc R25,R3
	brsh L3
	.dbline 25
; 	 {
	.dbline 26
; 	 j=0;
	clr R2
	clr R3
	sts _j+1,R3
	sts _j,R2
	.dbline 27
; 	 }
L3:
	.dbline 28
; 		 UART_BUFFER[j]=i;
	ldi R24,<_UART_BUFFER
	ldi R25,>_UART_BUFFER
	lds R30,_j
	lds R31,_j+1
	add R30,R24
	adc R31,R25
	lds R2,L2
	std z+0,R2
	.dbline 29
; 		 j++;
	lds R24,_j
	lds R25,_j+1
	adiw R24,1
	sts _j+1,R25
	sts _j,R24
	.dbline 30
; UCSR1B|=(1<<RXCIE1);
	lds R24,154
	ori R24,128
	sts 154,R24
	.dbline -2
	.dbline 31
; }
L1:
	xcall pop_lset
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e main _main fV
;              i -> R20,R21
	.even
_main::
	.dbline -1
	.dbline 34
; 
; void main (void)
; {
	.dbline 36
; WORD i;
; uart_init();
	xcall _uart_init
	.dbline 37
; PPPInit();
	xcall _PPPInit
	.dbline 38
; modem ();
	xcall _modem
	.dbline 39
; for(i=0;i<(PPP_BUFFER_SIZE+3);i++)
	clr R20
	clr R21
	xjmp L9
L6:
	.dbline 40
	.dbline 41
	ldi R24,<_UART_BUFFER
	ldi R25,>_UART_BUFFER
	movw R30,R20
	add R30,R24
	adc R31,R25
	clr R2
	std z+0,R2
	.dbline 42
L7:
	.dbline 39
	subi R20,255  ; offset = 1
	sbci R21,255
L9:
	.dbline 39
	cpi R20,179
	ldi R30,4
	cpc R21,R30
	brlo L6
	.dbline 43
; {
; UART_BUFFER[i]='\0';
; }
; j=0;
	clr R2
	clr R3
	sts _j+1,R3
	sts _j,R2
	.dbline 44
; LCPREQPacket(MRU);
	lds R16,_MRU
	lds R17,_MRU+1
	xcall _LCPREQPacket
	xjmp L11
L10:
	.dbline 47
; 
; while(1)
; {
	.dbline 48
; if(UART_BUFFER[UART_ptr]!='\0')
	ldi R24,<_UART_BUFFER
	ldi R25,>_UART_BUFFER
	lds R30,_UART_ptr
	lds R31,_UART_ptr+1
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	tst R2
	breq L13
	.dbline 49
; {
	.dbline 50
; ProcPPPReceive ();
	xcall _ProcPPPReceive
	.dbline 51
; }
L13:
	.dbline 52
	xcall _PPPEntry
	.dbline 53
L11:
	.dbline 46
	xjmp L10
X0:
	.dbline -2
	.dbline 54
; PPPEntry();
; }
; }
L5:
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbend
	.dbfunc e modem _modem fV
;              k -> R20
	.even
_modem::
	xcall push_gset1
	.dbline -1
	.dbline 59
; 
; 
; 
; void modem (void)
; {
	.dbline 60
;  BYTE k=1;
	ldi R20,1
	xjmp L17
L16:
	.dbline 62
;  while(k)
;  {
	.dbline 63
;   putstr("CLIENT");
	ldi R16,<L19
	ldi R17,>L19
	xcall _putstr
	.dbline 64
;   delay_ms(100);
	ldi R16,100
	ldi R17,0
	xcall _delay_ms
	.dbline 65
;   if(strstr(UART_BUFFER,"CLIENTSERVER") != NULL)
	ldi R18,<L22
	ldi R19,>L22
	ldi R16,<_UART_BUFFER
	ldi R17,>_UART_BUFFER
	xcall _strstr
	cpi R16,0
	cpc R16,R17
	breq L20
X1:
	.dbline 66
;   {
	.dbline 67
;    k=0;
	clr R20
	.dbline 68
;   }
L20:
	.dbline 69
L17:
	.dbline 61
	tst R20
	brne L16
	.dbline -2
	.dbline 70
;  } 
; }
L15:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r k 20 c
	.dbend
	.dbfunc e delay_1ms _delay_1ms fV
;              i -> R16,R17
	.even
_delay_1ms::
	xcall push_gset2
	.dbline -1
	.dbline 73
; 
; void delay_1ms(void)
; { unsigned int i;
	.dbline 74
	ldi R16,1
	ldi R17,0
	xjmp L27
L24:
	.dbline 74
L25:
	.dbline 74
	subi R16,255  ; offset = 1
	sbci R17,255
L27:
	.dbline 74
;  for(i=1;i<(unsigned int)(xtal*143-2);i++);
	ldi R20,254
	ldi R21,127
	ldi R22,215
	ldi R23,62
	cp R16,R20
	cpc R17,R21
	brlo L24
	.dbline -2
	.dbline 75
; }
L23:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e delay_ms _delay_ms fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_ms::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 77
; void delay_ms(unsigned int n )
; {
	.dbline 78
;  unsigned int i=0;
	clr R20
	clr R21
	xjmp L30
L29:
	.dbline 80
	.dbline 80
	xcall _delay_1ms
	.dbline 81
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 82
L30:
	.dbline 79
;    while(i<n)
	cp R20,R22
	cpc R21,R23
	brlo L29
	.dbline -2
	.dbline 83
;    {delay_1ms();
;     i++;
;    }
; }
L28:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.area bss(ram, con, rel)
	.dbfile G:\sppp\main.c
_UART_BUFFER::
	.blkb 1203
	.dbsym e UART_BUFFER _UART_BUFFER A[1203:1203]c
	.area data(ram, con, rel)
	.dbfile G:\sppp\main.c
L22:
	.blkb 13
	.area idata
	.byte 'C,'L,'I,'E,'N,'T,'S,'E,'R,'V,'E,'R,0
	.area data(ram, con, rel)
	.dbfile G:\sppp\main.c
L19:
	.blkb 7
	.area idata
	.byte 'C,'L,'I,'E,'N,'T,0
	.area data(ram, con, rel)
	.dbfile G:\sppp\main.c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -