📄 temp.lss
字号:
4ce: 8a 81 ldd r24, Y+2 ; 0x02
4d0: 9b 81 ldd r25, Y+3 ; 0x03
4d2: 28 1b sub r18, r24
4d4: 39 0b sbc r19, r25
4d6: 8e 81 ldd r24, Y+6 ; 0x06
4d8: 9f 81 ldd r25, Y+7 ; 0x07
4da: 28 17 cp r18, r24
4dc: 39 07 cpc r19, r25
4de: 08 f4 brcc .+2 ; 0x4e2
4e0: 41 c0 rjmp .+130 ; 0x564
{
DF_wait_busy();
4e2: 0e 94 35 01 call 0x26a
DF_SELECT_1;
4e6: 80 91 23 00 lds r24, 0x0023
4ea: 8b 7f andi r24, 0xFB ; 251
4ec: 80 93 23 00 sts 0x0023, r24
if (buffer==1)
4f0: 89 81 ldd r24, Y+1 ; 0x01
4f2: 81 30 cpi r24, 0x01 ; 1
4f4: 21 f4 brne .+8 ; 0x4fe
write_SPI(BUFFER_1_WRITE);
4f6: 84 e8 ldi r24, 0x84 ; 132
4f8: 0e 94 8d 00 call 0x11a
4fc: 03 c0 rjmp .+6 ; 0x504
else
write_SPI(BUFFER_2_WRITE);
4fe: 87 e8 ldi r24, 0x87 ; 135
500: 0e 94 8d 00 call 0x11a
write_SPI(0x00);
504: 80 e0 ldi r24, 0x00 ; 0
506: 0e 94 8d 00 call 0x11a
write_SPI((unsigned char)(start_address >> 8));
50a: 8a 81 ldd r24, Y+2 ; 0x02
50c: 9b 81 ldd r25, Y+3 ; 0x03
50e: 89 2f mov r24, r25
510: 99 27 eor r25, r25
512: 0e 94 8d 00 call 0x11a
write_SPI((unsigned char)start_address);
516: 8a 81 ldd r24, Y+2 ; 0x02
518: 0e 94 8d 00 call 0x11a
for (i=0;i<length;i++)
51c: 18 86 std Y+8, r1 ; 0x08
51e: 19 86 std Y+9, r1 ; 0x09
520: 28 85 ldd r18, Y+8 ; 0x08
522: 39 85 ldd r19, Y+9 ; 0x09
524: 8e 81 ldd r24, Y+6 ; 0x06
526: 9f 81 ldd r25, Y+7 ; 0x07
528: 28 17 cp r18, r24
52a: 39 07 cpc r19, r25
52c: 08 f0 brcs .+2 ; 0x530
52e: 10 c0 rjmp .+32 ; 0x550
write_SPI(DF_buffer[i]);
530: 2c 81 ldd r18, Y+4 ; 0x04
532: 3d 81 ldd r19, Y+5 ; 0x05
534: 88 85 ldd r24, Y+8 ; 0x08
536: 99 85 ldd r25, Y+9 ; 0x09
538: f9 01 movw r30, r18
53a: e8 0f add r30, r24
53c: f9 1f adc r31, r25
53e: 80 81 ld r24, Z
540: 0e 94 8d 00 call 0x11a
544: 88 85 ldd r24, Y+8 ; 0x08
546: 99 85 ldd r25, Y+9 ; 0x09
548: 01 96 adiw r24, 0x01 ; 1
54a: 88 87 std Y+8, r24 ; 0x08
54c: 99 87 std Y+9, r25 ; 0x09
54e: e8 cf rjmp .-48 ; 0x520
DF_DESELECT_1;
550: 80 91 23 00 lds r24, 0x0023
554: 84 60 ori r24, 0x04 ; 4
556: 80 93 23 00 sts 0x0023, r24
return 1;
55a: 81 e0 ldi r24, 0x01 ; 1
55c: 90 e0 ldi r25, 0x00 ; 0
55e: 8a 87 std Y+10, r24 ; 0x0a
560: 9b 87 std Y+11, r25 ; 0x0b
562: 02 c0 rjmp .+4 ; 0x568
}
else
return 0;
564: 1a 86 std Y+10, r1 ; 0x0a
566: 1b 86 std Y+11, r1 ; 0x0b
}
568: 8a 85 ldd r24, Y+10 ; 0x0a
56a: 9b 85 ldd r25, Y+11 ; 0x0b
56c: 2b 96 adiw r28, 0x0b ; 11
56e: 0f b6 in r0, 0x3f ; 63
570: f8 94 cli
572: de bf out 0x3e, r29 ; 62
574: 0f be out 0x3f, r0 ; 63
576: cd bf out 0x3d, r28 ; 61
578: df 91 pop r29
57a: cf 91 pop r28
57c: 08 95 ret
0000057e <DF_buf_to_mm>:
//将指定缓冲区中的数据写入主存储区的指定页
void DF_buf_to_mm(unsigned char buffer,unsigned int page)
{
57e: cf 93 push r28
580: df 93 push r29
582: cd b7 in r28, 0x3d ; 61
584: de b7 in r29, 0x3e ; 62
586: 23 97 sbiw r28, 0x03 ; 3
588: 0f b6 in r0, 0x3f ; 63
58a: f8 94 cli
58c: de bf out 0x3e, r29 ; 62
58e: 0f be out 0x3f, r0 ; 63
590: cd bf out 0x3d, r28 ; 61
592: 89 83 std Y+1, r24 ; 0x01
594: 6a 83 std Y+2, r22 ; 0x02
596: 7b 83 std Y+3, r23 ; 0x03
DF_wait_busy();
598: 0e 94 35 01 call 0x26a
if (page<8192)
59c: 8a 81 ldd r24, Y+2 ; 0x02
59e: 9b 81 ldd r25, Y+3 ; 0x03
5a0: 20 e2 ldi r18, 0x20 ; 32
5a2: 80 30 cpi r24, 0x00 ; 0
5a4: 92 07 cpc r25, r18
5a6: 48 f5 brcc .+82 ; 0x5fa
{
DF_SELECT_1;
5a8: 80 91 23 00 lds r24, 0x0023
5ac: 8b 7f andi r24, 0xFB ; 251
5ae: 80 93 23 00 sts 0x0023, r24
if (buffer==1)
5b2: 89 81 ldd r24, Y+1 ; 0x01
5b4: 81 30 cpi r24, 0x01 ; 1
5b6: 21 f4 brne .+8 ; 0x5c0
write_SPI(B1_TO_MM_PAGE_PROG_WITH_ERASE);
5b8: 83 e8 ldi r24, 0x83 ; 131
5ba: 0e 94 8d 00 call 0x11a
5be: 03 c0 rjmp .+6 ; 0x5c6
else
write_SPI(B2_TO_MM_PAGE_PROG_WITH_ERASE);
5c0: 86 e8 ldi r24, 0x86 ; 134
5c2: 0e 94 8d 00 call 0x11a
write_SPI((unsigned char)(page>>5));
5c6: 8a 81 ldd r24, Y+2 ; 0x02
5c8: 9b 81 ldd r25, Y+3 ; 0x03
5ca: 96 95 lsr r25
5cc: 87 95 ror r24
5ce: 92 95 swap r25
5d0: 82 95 swap r24
5d2: 8f 70 andi r24, 0x0F ; 15
5d4: 89 27 eor r24, r25
5d6: 9f 70 andi r25, 0x0F ; 15
5d8: 89 27 eor r24, r25
5da: 0e 94 8d 00 call 0x11a
write_SPI((unsigned char)(page<<3));
5de: 8a 81 ldd r24, Y+2 ; 0x02
5e0: 88 0f add r24, r24
5e2: 88 0f add r24, r24
5e4: 88 0f add r24, r24
5e6: 0e 94 8d 00 call 0x11a
write_SPI(0x00);
5ea: 80 e0 ldi r24, 0x00 ; 0
5ec: 0e 94 8d 00 call 0x11a
DF_DESELECT_1;
5f0: 80 91 23 00 lds r24, 0x0023
5f4: 84 60 ori r24, 0x04 ; 4
5f6: 80 93 23 00 sts 0x0023, r24
}
}
5fa: 23 96 adiw r28, 0x03 ; 3
5fc: 0f b6 in r0, 0x3f ; 63
5fe: f8 94 cli
600: de bf out 0x3e, r29 ; 62
602: 0f be out 0x3f, r0 ; 63
604: cd bf out 0x3d, r28 ; 61
606: df 91 pop r29
608: cf 91 pop r28
60a: 08 95 ret
0000060c <DF_write_buf_1>:
//将temp1,temp2数据写入指定缓冲区1
void DF_write_buf_1(unsigned int start_address,uint8_t temp1,uint8_t temp2)
{
60c: cf 93 push r28
60e: df 93 push r29
610: cd b7 in r28, 0x3d ; 61
612: de b7 in r29, 0x3e ; 62
614: 24 97 sbiw r28, 0x04 ; 4
616: 0f b6 in r0, 0x3f ; 63
618: f8 94 cli
61a: de bf out 0x3e, r29 ; 62
61c: 0f be out 0x3f, r0 ; 63
61e: cd bf out 0x3d, r28 ; 61
620: 89 83 std Y+1, r24 ; 0x01
622: 9a 83 std Y+2, r25 ; 0x02
624: 6b 83 std Y+3, r22 ; 0x03
626: 4c 83 std Y+4, r20 ; 0x04
//DF_wait_busy();
DF_SELECT_1;
628: 80 91 23 00 lds r24, 0x0023
62c: 8b 7f andi r24, 0xFB ; 251
62e: 80 93 23 00 sts 0x0023, r24
Host_write_SPI(BUFFER_1_WRITE);
632: 84 e8 ldi r24, 0x84 ; 132
634: 0e 94 ad 00 call 0x15a
Host_write_SPI(0x00);
638: 80 e0 ldi r24, 0x00 ; 0
63a: 0e 94 ad 00 call 0x15a
Host_write_SPI((unsigned char)(start_address >> 8));
63e: 89 81 ldd r24, Y+1 ; 0x01
640: 9a 81 ldd r25, Y+2 ; 0x02
642: 89 2f mov r24, r25
644: 99 27 eor r25, r25
646: 0e 94 ad 00 call 0x15a
Host_write_SPI((unsigned char)start_address);
64a: 89 81 ldd r24, Y+1 ; 0x01
64c: 0e 94 ad 00 call 0x15a
Host_write_SPI(temp1);
650: 8b 81 ldd r24, Y+3 ; 0x03
652: 0e 94 ad 00 call 0x15a
Host_write_SPI(temp2);
656: 8c 81 ldd r24, Y+4 ; 0x04
658: 0e 94 ad 00 call 0x15a
DF_DESELECT_1;
65c: 80 91 23 00 lds r24, 0x0023
660: 84 60 ori r24, 0x04 ; 4
662: 80 93 23 00 sts 0x0023, r24
}
666: 24 96 adiw r28, 0x04 ; 4
668: 0f b6 in r0, 0x3f ; 63
66a: f8 94 cli
66c: de bf out 0x3e, r29 ; 62
66e: 0f be out 0x3f, r0 ; 63
670: cd bf out 0x3d, r28 ; 61
672: df 91 pop r29
674: cf 91 pop r28
676: 08 95 ret
00000678 <DF_write_buf_2>:
//将temp1,temp2数据写入指定缓冲区2
void DF_write_buf_2(unsigned int start_address,uint8_t temp1,uint8_t temp2)
{
678: cf 93 push r28
67a: df 93 push r29
67c: cd b7 in r28, 0x3d ; 61
67e: de b7 in r29, 0x3e ; 62
680: 24 97 sbiw r28, 0x04 ; 4
682: 0f b6 in r0, 0x3f ; 63
684: f8 94 cli
686: de bf out 0x3e, r29 ; 62
688: 0f be out 0x3f, r0 ; 63
68a: cd bf out 0x3d, r28 ; 61
68c: 89 83 std Y+1, r24 ; 0x01
68e: 9a 83 std Y+2, r25 ; 0x02
690: 6b 83 std Y+3, r22 ; 0x03
692: 4c 83 std Y+4, r20 ; 0x04
//DF_wait_busy();
DF_SELECT_1;
694: 80 91 23 00 lds r24, 0x0023
698: 8b 7f andi r24, 0xFB ; 251
69a: 80 93 23 00 sts 0x0023, r24
Host_write_SPI(BUFFER_2_WRITE);
69e: 87 e8 ldi r24, 0x87 ; 135
6a0: 0e 94 ad 00 call 0x15a
Host_write_SPI(0x00);
6a4: 80 e0 ldi r24, 0x00 ; 0
6a6: 0e 94 ad 00 call 0x15a
Host_write_SPI((unsigned char)(start_address >> 8));
6aa: 89 81 ldd r24, Y+1 ; 0x01
6ac: 9a 81 ldd r25, Y+2 ; 0x02
6ae: 89 2f mov r24, r25
6b0: 99 27 eor r25, r25
6b2: 0e 94 ad 00 call 0x15a
Host_write_SPI((unsigned char)start_address);
6b6: 89 81 ldd r24, Y+1 ; 0x01
6b8: 0e 94 ad 00 call 0x15a
Host_write_SPI(temp1);
6bc: 8b 81 ldd r24, Y+3 ; 0x03
6be: 0e 94 ad 00 call 0x15a
Host_write_SPI(temp2);
6c2: 8c 81 ldd r24, Y+4 ; 0x04
6c4: 0e 94 ad 00 call 0x15a
DF_DESELECT_1;
6c8: 80 91 23 00 lds r24, 0x0023
6cc: 84 60 ori r24, 0x04 ; 4
6ce: 80 93 23 00 sts 0x0023, r24
}
6d2: 24 96 adiw r28, 0x04 ; 4
6d4: 0f b6 in r0, 0x3f ; 63
6d6: f8 94 cli
6d8: de bf out 0x3e, r29 ; 62
6da: 0f be out 0x3f, r0 ; 63
6dc: cd bf out 0x3d, r28 ; 61
6de: df 91 pop r29
6e0: cf 91 pop r28
6e2: 08 95 ret
000006e4 <main>:
int main()
{
6e4: ce ef ldi r28, 0xFE ; 254
6e6: dc e0 ldi r29, 0x0C ; 12
6e8: de bf out 0x3e, r29 ; 62
6ea: cd bf out 0x3d, r28 ; 61
uint8_t DF_buffer[1024],temp=0;
6ec: fe 01 movw r30, r28
6ee: ef 5f subi r30, 0xFF ; 255
6f0: fb 4f sbci r31, 0xFB ; 251
6f2: 10 82 st Z, r1
df_init();
6f4: 0e 94 c8 00 call 0x190
//DF_write_buf_1(0,1,1);
DF_wait_busy();
6f8: 0e 94 35 01 call 0x26a
temp=DF_read_reg();
6fc: 0e 94 0d 01 call 0x21a
700: fe 01 movw r30, r28
702: ef 5f subi r30, 0xFF ; 255
704: fb 4f sbci r31, 0xFB ; 251
706: 80 83 st Z, r24
//DF_buf_to_mm(1,1000);
DF_wait_busy();
708: 0e 94 35 01 call 0x26a
DF_MM_read(1081,0,DF_buffer,1000);
70c: 28 ee ldi r18, 0xE8 ; 232
70e: 33 e0 ldi r19, 0x03 ; 3
710: ae 01 movw r20, r28
712: 4f 5f subi r20, 0xFF ; 255
714: 5f 4f sbci r21, 0xFF ; 255
716: 60 e0 ldi r22, 0x00 ; 0
718: 70 e0 ldi r23, 0x00 ; 0
71a: 89 e3 ldi r24, 0x39 ; 57
71c: 94 e0 ldi r25, 0x04 ; 4
71e: 0e 94 d2 01 call 0x3a4
while(1);
722: ff cf rjmp .-2 ; 0x722
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -