📄 ax88796.lst
字号:
812 031e 0E94 0000 call ax88796Write
298:ax88796.c **** ax88796Write(RSAR1, readPagePtr);
813 .stabn 68,0,298,.LM120-ax88796BeginPacketRetreive
814 .LM120:
815 0322 6C2D mov r22,r12
816 0324 89E0 ldi r24,lo8(9)
817 0326 0E94 0000 call ax88796Write
299:ax88796.c **** ax88796Write(CR, (RD0|START));
818 .stabn 68,0,299,.LM121-ax88796BeginPacketRetreive
819 .LM121:
820 032a 6AE0 ldi r22,lo8(10)
821 032c 80E0 ldi r24,lo8(0)
822 032e 0E94 0000 call ax88796Write
300:ax88796.c **** for(i=0;i<4;i++)
823 .stabn 68,0,300,.LM122-ax88796BeginPacketRetreive
824 .LM122:
825 0332 DD24 clr r13
826 0334 EE24 clr r14
827 0336 FF24 clr r15
828 .L32:
301:ax88796.c **** pageheader[i] = ax88796Read(RDMAPORT);
829 .stabn 68,0,301,.LM123-ax88796BeginPacketRetreive
830 .LM123:
831 0338 5E01 movw r10,r28
832 033a 0894 sec
833 033c A11C adc r10,__zero_reg__
834 033e B11C adc r11,__zero_reg__
835 0340 8701 movw r16,r14
836 0342 0A0D add r16,r10
837 0344 1B1D adc r17,r11
838 0346 80E1 ldi r24,lo8(16)
839 0348 0E94 0000 call ax88796Read
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 21
840 034c F801 movw r30,r16
841 034e 8083 st Z,r24
842 .stabn 68,0,300,.LM124-ax88796BeginPacketRetreive
843 .LM124:
844 0350 D394 inc r13
845 0352 0894 sec
846 0354 E11C adc r14,__zero_reg__
847 0356 F11C adc r15,__zero_reg__
848 0358 F3E0 ldi r31,lo8(3)
849 035a FD15 cp r31,r13
850 035c 68F7 brsh .L32
302:ax88796.c ****
303:ax88796.c **** // end the DMA operation
304:ax88796.c **** ax88796Write(CR, (RD2|START));
851 .stabn 68,0,304,.LM125-ax88796BeginPacketRetreive
852 .LM125:
853 035e 62E2 ldi r22,lo8(34)
854 0360 80E0 ldi r24,lo8(0)
855 0362 0E94 0000 call ax88796Write
305:ax88796.c **** for(i = 0; i <= 20; i++)
856 .stabn 68,0,305,.LM126-ax88796BeginPacketRetreive
857 .LM126:
858 0366 DD24 clr r13
859 .L38:
306:ax88796.c **** if(ax88796Read(ISR) & RDC)
860 .stabn 68,0,306,.LM127-ax88796BeginPacketRetreive
861 .LM127:
862 0368 87E0 ldi r24,lo8(7)
863 036a 0E94 0000 call ax88796Read
864 036e 86FD sbrc r24,6
865 0370 04C0 rjmp .L34
866 .stabn 68,0,305,.LM128-ax88796BeginPacketRetreive
867 .LM128:
868 0372 D394 inc r13
869 0374 84E1 ldi r24,lo8(20)
870 0376 8D15 cp r24,r13
871 0378 B8F7 brsh .L38
872 .L34:
307:ax88796.c **** break;
308:ax88796.c **** ax88796Write(ISR, RDC);
873 .stabn 68,0,308,.LM129-ax88796BeginPacketRetreive
874 .LM129:
875 037a 60E4 ldi r22,lo8(64)
876 037c 87E0 ldi r24,lo8(7)
877 037e 0E94 0000 call ax88796Write
309:ax88796.c ****
310:ax88796.c **** rxlen = (pageheader[enetpacketLenH]<<8) + pageheader[enetpacketLenL];
878 .stabn 68,0,310,.LM130-ax88796BeginPacketRetreive
879 .LM130:
880 0382 F501 movw r30,r10
881 0384 8381 ldd r24,Z+3
882 0386 9927 clr r25
883 0388 582F mov r21,r24
884 038a 4427 clr r20
885 038c 8281 ldd r24,Z+2
886 038e 480F add r20,r24
887 0390 511D adc r21,__zero_reg__
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 22
311:ax88796.c **** nextPage = pageheader[nextblock_ptr] ;
888 .stabn 68,0,311,.LM131-ax88796BeginPacketRetreive
889 .LM131:
890 0392 2181 ldd r18,Z+1
891 0394 2093 0000 sts nextPage,r18
312:ax88796.c ****
313:ax88796.c **** currentRetreiveAddress = (readPagePtr<<8) + 4;
892 .stabn 68,0,313,.LM132-ax88796BeginPacketRetreive
893 .LM132:
894 0398 8C2D mov r24,r12
895 039a 9927 clr r25
896 039c 982F mov r25,r24
897 039e 8827 clr r24
898 03a0 0496 adiw r24,4
899 03a2 9093 0000 sts (currentRetreiveAddress)+1,r25
900 03a6 8093 0000 sts currentRetreiveAddress,r24
314:ax88796.c ****
315:ax88796.c **** // if the nextPage pointer is invalid, the packet is not ready yet - exit
316:ax88796.c **** if( (nextPage >= RXSTOP_INIT) || (nextPage < RXSTART_INIT) )
901 .stabn 68,0,316,.LM133-ax88796BeginPacketRetreive
902 .LM133:
903 03aa 2654 subi r18,lo8(-(-70))
904 03ac 2A31 cpi r18,lo8(26)
905 03ae 90F0 brlo .L39
317:ax88796.c **** {
318:ax88796.c **** rprintf("N");
906 .stabn 68,0,318,.LM134-ax88796BeginPacketRetreive
907 .LM134:
908 03b0 80E0 ldi r24,lo8(__c.1)
909 03b2 90E0 ldi r25,hi8(__c.1)
910 03b4 9F93 push r25
911 03b6 8F93 push r24
912 03b8 81E0 ldi r24,lo8(1)
913 03ba 8F93 push r24
914 03bc 0E94 0000 call rprintf1RamRom
319:ax88796.c **** rprintfu08(nextPage);
915 .stabn 68,0,319,.LM135-ax88796BeginPacketRetreive
916 .LM135:
917 03c0 8091 0000 lds r24,nextPage
918 03c4 0E94 0000 call rprintfu08
919 .L43:
320:ax88796.c **** return 0;
920 .stabn 68,0,320,.LM136-ax88796BeginPacketRetreive
921 .LM136:
922 03c8 80E0 ldi r24,lo8(0)
923 03ca 90E0 ldi r25,hi8(0)
924 03cc 0F90 pop __tmp_reg__
925 03ce 0F90 pop __tmp_reg__
926 03d0 0F90 pop __tmp_reg__
927 03d2 02C0 rjmp .L24
928 .L39:
321:ax88796.c **** }
322:ax88796.c ****
323:ax88796.c **** return rxlen-4;
929 .stabn 68,0,323,.LM137-ax88796BeginPacketRetreive
930 .LM137:
931 03d4 CA01 movw r24,r20
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 23
932 03d6 0497 sbiw r24,4
324:ax88796.c **** }
933 .stabn 68,0,324,.LM138-ax88796BeginPacketRetreive
934 .LM138:
935 .L24:
936 .LBE6:
937 /* epilogue: frame size=4 */
938 03d8 2496 adiw r28,4
939 03da 0FB6 in __tmp_reg__,__SREG__
940 03dc F894 cli
941 03de DEBF out __SP_H__,r29
942 03e0 0FBE out __SREG__,__tmp_reg__
943 03e2 CDBF out __SP_L__,r28
944 03e4 DF91 pop r29
945 03e6 CF91 pop r28
946 03e8 1F91 pop r17
947 03ea 0F91 pop r16
948 03ec FF90 pop r15
949 03ee EF90 pop r14
950 03f0 DF90 pop r13
951 03f2 CF90 pop r12
952 03f4 BF90 pop r11
953 03f6 AF90 pop r10
954 03f8 0895 ret
955 /* epilogue end (size=17) */
956 /* function ax88796BeginPacketRetreive size 200 (165) */
957 .size ax88796BeginPacketRetreive, .-ax88796BeginPacketRetreive
958 .stabs "writePagePtr:r(0,11)",64,0,250,15
959 .stabs "readPagePtr:r(0,11)",64,0,251,12
960 .stabs "bnryPagePtr:r(0,11)",64,0,252,16
961 .stabs "i:r(0,11)",64,0,253,13
962 .stabs "pageheader:(1,2)=ar(1,3)=r(1,3);0000000000000;0000000177777;;0;3;(0,11)",128,0,255,1
963 .stabs "rxlen:r(0,4)",64,0,256,20
964 .stabn 192,0,0,.LBB6-ax88796BeginPacketRetreive
965 .stabn 224,0,0,.LBE6-ax88796BeginPacketRetreive
966 .Lscope7:
967 .stabs "",36,0,0,.Lscope7-ax88796BeginPacketRetreive
968 .stabs "ax88796RetreivePacketData:F(0,20)",36,0,328,ax88796RetreivePacketData
969 .stabs "localBuffer:P(1,1)",64,0,327,16
970 .stabs "length:P(0,4)",64,0,327,14
971 .global ax88796RetreivePacketData
972 .type ax88796RetreivePacketData, @function
973 ax88796RetreivePacketData:
325:ax88796.c ****
326:ax88796.c ****
327:ax88796.c **** void ax88796RetreivePacketData(unsigned char * localBuffer, unsigned int length)
328:ax88796.c **** {
974 .stabn 68,0,328,.LM139-ax88796RetreivePacketData
975 .LM139:
976 /* prologue: frame size=0 */
977 03fa EF92 push r14
978 03fc FF92 push r15
979 03fe 0F93 push r16
980 0400 1F93 push r17
981 0402 CF93 push r28
982 0404 DF93 push r29
983 /* prologue end (size=6) */
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 24
984 0406 8C01 movw r16,r24
985 0408 7B01 movw r14,r22
329:ax88796.c **** unsigned int i;
330:ax88796.c ****
331:ax88796.c **** // initiate DMA to transfer the data
332:ax88796.c **** ax88796Write(RBCR0, (unsigned char)length);
986 .stabn 68,0,332,.LM140-ax88796RetreivePacketData
987 .LM140:
988 .LBB7:
989 040a 8AE0 ldi r24,lo8(10)
990 040c 0E94 0000 call ax88796Write
333:ax88796.c **** ax88796Write(RBCR1, (unsigned char)(length>>8));
991 .stabn 68,0,333,.LM141-ax88796RetreivePacketData
992 .LM141:
993 0410 8F2D mov r24,r15
994 0412 9927 clr r25
995 0414 682F mov r22,r24
996 0416 8BE0 ldi r24,lo8(11)
997 0418 0E94 0000 call ax88796Write
334:ax88796.c **** ax88796Write(RSAR0, (unsigned char)currentRetreiveAddress);
998 .stabn 68,0,334,.LM142-ax88796RetreivePacketData
999 .LM142:
1000 041c 6091 0000 lds r22,currentRetreiveAddress
1001 0420 88E0 ldi r24,lo8(8)
1002 0422 0E94 0000 call ax88796Write
335:ax88796.c **** ax88796Write(RSAR1, (unsigned char)(currentRetreiveAddress>>8));
1003 .stabn 68,0,335,.LM143-ax88796RetreivePacketData
1004 .LM143:
1005 0426 8091 0000 lds r24,currentRetreiveAddress
1006 042a 9091 0000 lds r25,(currentRetreiveAddress)+1
1007 042e 892F mov r24,r25
1008 0430 9927 clr r25
1009 0432 682F mov r22,r24
1010 0434 89E0 ldi r24,lo8(9)
1011 0436 0E94 0000 call ax88796Write
336:ax88796.c **** ax88796Write(CR, (RD0|START));
1012 .stabn 68,0,336,.LM144-ax88796RetreivePacketData
1013 .LM144:
1014 043a 6AE0 ldi r22,lo8(10)
1015 043c 80E0 ldi r24,lo8(0)
1016 043e 0E94 0000 call ax88796Write
337:ax88796.c **** for(i=0;i<length;i++)
1017 .stabn 68,0,337,.LM145-ax88796RetreivePacketData
1018 .LM145:
1019 0442 C0E0 ldi r28,lo8(0)
1020 0444 D0E0 ldi r29,hi8(0)
1021 0446 CE15 cp r28,r14
1022 0448 DF05 cpc r29,r15
1023 044a 50F4 brsh .L58
1024 .L49:
338:ax88796.c **** localBuffer[i] = ax88796Read(RDMAPORT);
1025 .stabn 68,0,338,.LM146-ax88796RetreivePacketData
1026 .LM146:
1027 044c 80E1 ldi r24,lo8(16)
1028 044e 0E94 0000 call ax88796Read
1029 0452 F801 movw r30,r16
1030 0454 8193 st Z+,r24
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s page 25
1031 0456 8F01 movw r16,r30
1032 .stabn 68,0,337,.LM147-ax88796RetreivePacketData
1033 .LM147:
1034 0458 2196 adiw r28,1
1035 045a CE15 cp r28,r14
1036 045c DF05 cpc r29,r15
1037 045e B0F3 brlo .L49
1038 .L58:
339:ax88796.c ****
340:ax88796.c **** // end the DMA operation
341:ax88796.c **** ax88796Write(CR, (RD2|START));
1039 .stabn 68,0,341,.LM148-ax88796RetreivePacketData
1040 .LM148:
1041 0460 62E2 ldi r22,lo8(34)
1042 0462 80E0 ldi r24,lo8(0)
1043 0464 0E94 0000 call ax88796Write
342:ax88796.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -