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

📄 main.lss

📁 458通讯
💻 LSS
📖 第 1 页 / 共 5 页
字号:
 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 + -