📄 main.lss
字号:
858: 33 27 eor r19, r19
85a: 82 0f add r24, r18
85c: 93 1f adc r25, r19
85e: b9 01 movw r22, r18
860: d9 d0 rcall .+434 ; 0xa14 <__divmodhi4>
EQU_sto[EUQ_num].front +
EQU_sto[EUQ_num].Max_que_size)
% EQU_sto[EUQ_num].Max_que_size;
}
862: 99 27 eor r25, r25
864: 08 95 ret
00000866 <WrQueue>:
BYTE WrQueue(BYTE *e,BYTE EUQ_num,BYTE len)
//向队列中写入元素e
{
866: ff 92 push r15
868: 0f 93 push r16
86a: 1f 93 push r17
86c: cf 93 push r28
86e: df 93 push r29
870: 8c 01 movw r16, r24
872: f6 2e mov r15, r22
BYTE i;
if((EQU_sto[EUQ_num].rear + 1) % EQU_sto[EUQ_num].Max_que_size ==
874: 86 2f mov r24, r22
876: 99 27 eor r25, r25
878: ec 01 movw r28, r24
87a: cc 0f add r28, r28
87c: dd 1f adc r29, r29
87e: cc 0f add r28, r28
880: dd 1f adc r29, r29
882: c8 0f add r28, r24
884: d9 1f adc r29, r25
886: c8 0f add r28, r24
888: d9 1f adc r29, r25
88a: c1 59 subi r28, 0x91 ; 145
88c: df 4f sbci r29, 0xFF ; 255
88e: 89 81 ldd r24, Y+1 ; 0x01
890: e8 2f mov r30, r24
892: ff 27 eor r31, r31
894: 8c 81 ldd r24, Y+4 ; 0x04
896: 28 2f mov r18, r24
898: 33 27 eor r19, r19
89a: cf 01 movw r24, r30
89c: 01 96 adiw r24, 0x01 ; 1
89e: b9 01 movw r22, r18
8a0: b9 d0 rcall .+370 ; 0xa14 <__divmodhi4>
8a2: 28 81 ld r18, Y
8a4: 33 27 eor r19, r19
8a6: 82 17 cp r24, r18
8a8: 93 07 cpc r25, r19
8aa: 19 f4 brne .+6 ; 0x8b2 <WrQueue+0x4c>
EQU_sto[EUQ_num].front)
//队列满
return ERROR;
8ac: 20 e0 ldi r18, 0x00 ; 0
8ae: 30 e0 ldi r19, 0x00 ; 0
8b0: 43 c0 rjmp .+134 ; 0x938 <WrQueue+0xd2>
*(*(EQU_sto[EUQ_num].UART_BUF + EQU_sto[EUQ_num].rear)) = len;
8b2: ee 0f add r30, r30
8b4: ff 1f adc r31, r31
8b6: 8a 81 ldd r24, Y+2 ; 0x02
8b8: 9b 81 ldd r25, Y+3 ; 0x03
8ba: e8 0f add r30, r24
8bc: f9 1f adc r31, r25
8be: 01 90 ld r0, Z+
8c0: f0 81 ld r31, Z
8c2: e0 2d mov r30, r0
8c4: 40 83 st Z, r20
//第0个节存放长度
for(i = 0;i < len; i ++)
8c6: 50 e0 ldi r21, 0x00 ; 0
8c8: 54 17 cp r21, r20
8ca: e0 f4 brcc .+56 ; 0x904 <WrQueue+0x9e>
8cc: de 01 movw r26, r28
8ce: b8 01 movw r22, r16
8d0: 20 e0 ldi r18, 0x00 ; 0
8d2: 30 e0 ldi r19, 0x00 ; 0
{
*(*(EQU_sto[EUQ_num].UART_BUF + EQU_sto[EUQ_num].rear) + i + 1) = *(e + i);
8d4: ed 01 movw r28, r26
8d6: 89 81 ldd r24, Y+1 ; 0x01
8d8: e8 2f mov r30, r24
8da: ff 27 eor r31, r31
8dc: ee 0f add r30, r30
8de: ff 1f adc r31, r31
8e0: 8a 81 ldd r24, Y+2 ; 0x02
8e2: 9b 81 ldd r25, Y+3 ; 0x03
8e4: e8 0f add r30, r24
8e6: f9 1f adc r31, r25
8e8: 01 90 ld r0, Z+
8ea: f0 81 ld r31, Z
8ec: e0 2d mov r30, r0
8ee: e2 0f add r30, r18
8f0: f3 1f adc r31, r19
8f2: eb 01 movw r28, r22
8f4: 89 91 ld r24, Y+
8f6: be 01 movw r22, r28
8f8: 81 83 std Z+1, r24 ; 0x01
8fa: 5f 5f subi r21, 0xFF ; 255
8fc: 2f 5f subi r18, 0xFF ; 255
8fe: 3f 4f sbci r19, 0xFF ; 255
900: 54 17 cp r21, r20
902: 40 f3 brcs .-48 ; 0x8d4 <WrQueue+0x6e>
//从第一个字节开始存放
}
EQU_sto[EUQ_num].rear = (EQU_sto[EUQ_num].rear + 1) % EQU_sto[EUQ_num].Max_que_size;
904: 8f 2d mov r24, r15
906: 99 27 eor r25, r25
908: fc 01 movw r30, r24
90a: ee 0f add r30, r30
90c: ff 1f adc r31, r31
90e: ee 0f add r30, r30
910: ff 1f adc r31, r31
912: e8 0f add r30, r24
914: f9 1f adc r31, r25
916: e8 0f add r30, r24
918: f9 1f adc r31, r25
91a: e1 59 subi r30, 0x91 ; 145
91c: ff 4f sbci r31, 0xFF ; 255
91e: 81 81 ldd r24, Z+1 ; 0x01
920: 48 2f mov r20, r24
922: 55 27 eor r21, r21
924: 84 81 ldd r24, Z+4 ; 0x04
926: 28 2f mov r18, r24
928: 33 27 eor r19, r19
92a: ca 01 movw r24, r20
92c: 01 96 adiw r24, 0x01 ; 1
92e: b9 01 movw r22, r18
930: 71 d0 rcall .+226 ; 0xa14 <__divmodhi4>
932: 81 83 std Z+1, r24 ; 0x01
return OK;
934: 21 e0 ldi r18, 0x01 ; 1
936: 30 e0 ldi r19, 0x00 ; 0
}
938: c9 01 movw r24, r18
93a: df 91 pop r29
93c: cf 91 pop r28
93e: 1f 91 pop r17
940: 0f 91 pop r16
942: ff 90 pop r15
944: 08 95 ret
00000946 <ReQueue>:
BYTE ReQueue(BYTE *e,BYTE EUQ_num)
//从队列中读出元素
{
946: 0f 93 push r16
948: 1f 93 push r17
94a: cf 93 push r28
94c: df 93 push r29
94e: 9c 01 movw r18, r24
BYTE i,len;
if(EQU_sto[EUQ_num].front == EQU_sto[EUQ_num].rear)return ERROR;
950: 86 2f mov r24, r22
952: 99 27 eor r25, r25
954: dc 01 movw r26, r24
956: aa 0f add r26, r26
958: bb 1f adc r27, r27
95a: aa 0f add r26, r26
95c: bb 1f adc r27, r27
95e: a8 0f add r26, r24
960: b9 1f adc r27, r25
962: a8 0f add r26, r24
964: b9 1f adc r27, r25
966: a1 59 subi r26, 0x91 ; 145
968: bf 4f sbci r27, 0xFF ; 255
96a: ec 91 ld r30, X
96c: ed 01 movw r28, r26
96e: 89 81 ldd r24, Y+1 ; 0x01
970: e8 17 cp r30, r24
972: 19 f4 brne .+6 ; 0x97a <ReQueue+0x34>
974: 20 e0 ldi r18, 0x00 ; 0
976: 30 e0 ldi r19, 0x00 ; 0
978: 44 c0 rjmp .+136 ; 0xa02 <ReQueue+0xbc>
len = **(EQU_sto[EUQ_num].UART_BUF + EQU_sto[EUQ_num].front);
97a: ff 27 eor r31, r31
97c: ee 0f add r30, r30
97e: ff 1f adc r31, r31
980: ed 01 movw r28, r26
982: 8a 81 ldd r24, Y+2 ; 0x02
984: 9b 81 ldd r25, Y+3 ; 0x03
986: e8 0f add r30, r24
988: f9 1f adc r31, r25
98a: 01 90 ld r0, Z+
98c: f0 81 ld r31, Z
98e: e0 2d mov r30, r0
990: 50 81 ld r21, Z
for(i = 0;i < len;i++)
992: 40 e0 ldi r20, 0x00 ; 0
994: 45 17 cp r20, r21
996: d8 f4 brcc .+54 ; 0x9ce <ReQueue+0x88>
998: 89 01 movw r16, r18
99a: 20 e0 ldi r18, 0x00 ; 0
99c: 30 e0 ldi r19, 0x00 ; 0
*(e + i)= *(*(EQU_sto[EUQ_num].UART_BUF + EQU_sto[EUQ_num].front) + i + 1);
99e: 8c 91 ld r24, X
9a0: e8 2f mov r30, r24
9a2: ff 27 eor r31, r31
9a4: ee 0f add r30, r30
9a6: ff 1f adc r31, r31
9a8: ed 01 movw r28, r26
9aa: 8a 81 ldd r24, Y+2 ; 0x02
9ac: 9b 81 ldd r25, Y+3 ; 0x03
9ae: e8 0f add r30, r24
9b0: f9 1f adc r31, r25
9b2: 01 90 ld r0, Z+
9b4: f0 81 ld r31, Z
9b6: e0 2d mov r30, r0
9b8: e2 0f add r30, r18
9ba: f3 1f adc r31, r19
9bc: 81 81 ldd r24, Z+1 ; 0x01
9be: f8 01 movw r30, r16
9c0: 81 93 st Z+, r24
9c2: 8f 01 movw r16, r30
9c4: 4f 5f subi r20, 0xFF ; 255
9c6: 2f 5f subi r18, 0xFF ; 255
9c8: 3f 4f sbci r19, 0xFF ; 255
9ca: 45 17 cp r20, r21
9cc: 40 f3 brcs .-48 ; 0x99e <ReQueue+0x58>
// Uart_buf[front] = 0;
EQU_sto[EUQ_num].front = (EQU_sto[EUQ_num].front + 1) % EQU_sto[EUQ_num].Max_que_size;
9ce: 86 2f mov r24, r22
9d0: 99 27 eor r25, r25
9d2: fc 01 movw r30, r24
9d4: ee 0f add r30, r30
9d6: ff 1f adc r31, r31
9d8: ee 0f add r30, r30
9da: ff 1f adc r31, r31
9dc: e8 0f add r30, r24
9de: f9 1f adc r31, r25
9e0: e8 0f add r30, r24
9e2: f9 1f adc r31, r25
9e4: e1 59 subi r30, 0x91 ; 145
9e6: ff 4f sbci r31, 0xFF ; 255
9e8: 80 81 ld r24, Z
9ea: 48 2f mov r20, r24
9ec: 55 27 eor r21, r21
9ee: 84 81 ldd r24, Z+4 ; 0x04
9f0: 28 2f mov r18, r24
9f2: 33 27 eor r19, r19
9f4: ca 01 movw r24, r20
9f6: 01 96 adiw r24, 0x01 ; 1
9f8: b9 01 movw r22, r18
9fa: 0c d0 rcall .+24 ; 0xa14 <__divmodhi4>
9fc: 80 83 st Z, r24
return OK;
9fe: 21 e0 ldi r18, 0x01 ; 1
a00: 30 e0 ldi r19, 0x00 ; 0
}
a02: c9 01 movw r24, r18
a04: df 91 pop r29
a06: cf 91 pop r28
a08: 1f 91 pop r17
a0a: 0f 91 pop r16
a0c: 08 95 ret
00000a0e <message_storage>:
// 报文存储
//=================================================================================
void message_storage(BYTE *Message,BYTE EQU_num,BYTE len)
{
WrQueue(Message,EQU_num,len);
a0e: 2b df rcall .-426 ; 0x866 <WrQueue>
a10: 08 95 ret
00000a12 <message_read>:
}
void message_read(BYTE *Message,BYTE EQU_num)
{
a12: 08 95 ret
00000a14 <__divmodhi4>:
a14: 97 fb bst r25, 7
a16: 09 2e mov r0, r25
a18: 07 26 eor r0, r23
a1a: 0a d0 rcall .+20 ; 0xa30 <__divmodhi4_neg1>
a1c: 77 fd sbrc r23, 7
a1e: 04 d0 rcall .+8 ; 0xa28 <__divmodhi4_neg2>
a20: 0c d0 rcall .+24 ; 0xa3a <__udivmodhi4>
a22: 06 d0 rcall .+12 ; 0xa30 <__divmodhi4_neg1>
a24: 00 20 and r0, r0
a26: 1a f4 brpl .+6 ; 0xa2e <__divmodhi4_exit>
00000a28 <__divmodhi4_neg2>:
a28: 70 95 com r23
a2a: 61 95 neg r22
a2c: 7f 4f sbci r23, 0xFF ; 255
00000a2e <__divmodhi4_exit>:
a2e: 08 95 ret
00000a30 <__divmodhi4_neg1>:
a30: f6 f7 brtc .-4 ; 0xa2e <__divmodhi4_exit>
a32: 90 95 com r25
a34: 81 95 neg r24
a36: 9f 4f sbci r25, 0xFF ; 255
a38: 08 95 ret
00000a3a <__udivmodhi4>:
a3a: aa 1b sub r26, r26
a3c: bb 1b sub r27, r27
a3e: 51 e1 ldi r21, 0x11 ; 17
a40: 07 c0 rjmp .+14 ; 0xa50 <__udivmodhi4_ep>
00000a42 <__udivmodhi4_loop>:
a42: aa 1f adc r26, r26
a44: bb 1f adc r27, r27
a46: a6 17 cp r26, r22
a48: b7 07 cpc r27, r23
a4a: 10 f0 brcs .+4 ; 0xa50 <__udivmodhi4_ep>
a4c: a6 1b sub r26, r22
a4e: b7 0b sbc r27, r23
00000a50 <__udivmodhi4_ep>:
a50: 88 1f adc r24, r24
a52: 99 1f adc r25, r25
a54: 5a 95 dec r21
a56: a9 f7 brne .-22 ; 0xa42 <__udivmodhi4_loop>
a58: 80 95 com r24
a5a: 90 95 com r25
a5c: bc 01 movw r22, r24
a5e: cd 01 movw r24, r26
a60: 08 95 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -