📄 libfunc.lst
字号:
1 .file "LibFunc.c"
2 .arch atmega128
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
84 .global _Z9CopyNbytePvS_j
86 _Z9CopyNbytePvS_j:
1:LibFunc.c **** /*
2:LibFunc.c **** ;**************************************************************************************************
3:LibFunc.c **** ;* Copyright (c) 2006 by JiaoJinXing.
4:LibFunc.c **** ;* All rights reserved.
5:LibFunc.c **** ;*
6:LibFunc.c **** ;*---- 文件信息 -----------------------------------------------------------------------------------
7:LibFunc.c **** ;* 文 件 名 : libfunc.c
8:LibFunc.c **** ;* 创 建 人 : 焦进星
9:LibFunc.c **** ;* 描 述 : 库函数文件
10:LibFunc.c **** ;*
11:LibFunc.c **** ;*---- 历史版本信息 -------------------------------------------------------------------------------
12:LibFunc.c **** ;* 日 期 : 2008年 12 月 15 日
13:LibFunc.c **** ;* 创 建 人 : 焦进星
14:LibFunc.c **** ;* 描 述 : 建立版本 V1.0.0
15:LibFunc.c **** ;*
16:LibFunc.c **** ;*---- 联系方式 -----------------------------------------------------------------------------------
17:LibFunc.c **** ;* Email : wyoujtg@163.com
18:LibFunc.c **** ;* Web : http://wyoujtg.blog.163.com
19:LibFunc.c **** ;**************************************************************************************************
20:LibFunc.c **** ;*/
21:LibFunc.c ****
22:LibFunc.c **** #include "minifs.h"
23:LibFunc.c ****
24:LibFunc.c **** /*
25:LibFunc.c **** ;**************************************************************************************************
26:LibFunc.c **** ;* 函数名称 : CopyNbyte
27:LibFunc.c **** ;* 描 述 : 拷贝N字节
28:LibFunc.c **** ;* 输 入 : dest: 目的地, src: 源地址, nbyte: 字节数
29:LibFunc.c **** ;*
30:LibFunc.c **** ;* 输 出 : 无
31:LibFunc.c **** ;**************************************************************************************************
32:LibFunc.c **** ;*/
33:LibFunc.c **** void CopyNbyte(void *Dest, void *Src, uint16 nbyte)
34:LibFunc.c **** {
88 .LM1:
89 /* prologue: frame size=0 */
90 /* prologue end (size=0) */
91 .LBB2:
92 .LBB3:
35:LibFunc.c **** uint16 i;
36:LibFunc.c **** uint8 *dest = (uint8 *)Dest;
94 .LM2:
95 0000 DC01 movw r26,r24
37:LibFunc.c **** uint8 *src = (uint8 *)Src;
97 .LM3:
98 0002 FB01 movw r30,r22
99 .L8:
38:LibFunc.c ****
39:LibFunc.c **** for (i = 0; i < nbyte; i++)
101 .LM4:
102 0004 4115 cp r20,__zero_reg__
103 0006 5105 cpc r21,__zero_reg__
104 0008 29F0 breq .L7
40:LibFunc.c **** {
41:LibFunc.c **** *dest++ = *src++;
106 .LM5:
107 000a 8191 ld r24,Z+
108 000c 8D93 st X+,r24
110 .LM6:
111 000e 4150 subi r20,lo8(-(-1))
112 0010 5040 sbci r21,hi8(-(-1))
113 0012 F8CF rjmp .L8
114 .L7:
115 0014 0895 ret
116 .LBE3:
117 .LBE2:
118 /* epilogue: frame size=0 */
119 /* epilogue: noreturn */
120 /* epilogue end (size=0) */
121 /* function void CopyNbyte(void*, void*, uint16) size 11 (11) */
132 .global _Z7IsEqualPvS_j
134 _Z7IsEqualPvS_j:
42:LibFunc.c **** }
43:LibFunc.c **** }
44:LibFunc.c ****
45:LibFunc.c **** /*
46:LibFunc.c **** ;**************************************************************************************************
47:LibFunc.c **** ;* 函数名称 : IsEqual
48:LibFunc.c **** ;* 描 述 : 判断是否相等
49:LibFunc.c **** ;* 输 入 : a: a内容地址, b: b内容地址, nbyte: 字节数
50:LibFunc.c **** ;*
51:LibFunc.c **** ;* 输 出 : TRUE OR FALSE
52:LibFunc.c **** ;**************************************************************************************************
53:LibFunc.c **** ;*/
54:LibFunc.c **** uint8 IsEqual(void *A, void *B, uint16 nbyte)
55:LibFunc.c **** {
136 .LM7:
137 /* prologue: frame size=0 */
138 /* prologue end (size=0) */
139 .LBB4:
140 .LBB5:
56:LibFunc.c **** uint16 i;
57:LibFunc.c **** uint8 *a = (uint8 *)A;
142 .LM8:
143 0016 DC01 movw r26,r24
58:LibFunc.c **** uint8 *b = (uint8 *)B;
145 .LM9:
146 0018 FB01 movw r30,r22
59:LibFunc.c ****
60:LibFunc.c **** for (i = 0; i < nbyte; i++)
148 .LM10:
149 001a 20E0 ldi r18,lo8(0)
150 001c 30E0 ldi r19,hi8(0)
151 .L17:
153 .LM11:
154 001e 2417 cp r18,r20
155 0020 3507 cpc r19,r21
156 0022 50F4 brsh .L16
61:LibFunc.c **** {
62:LibFunc.c **** if (*a++ != *b++)
158 .LM12:
159 0024 9191 ld r25,Z+
160 0026 8D91 ld r24,X+
161 0028 8917 cp r24,r25
162 002a 19F0 breq .L12
63:LibFunc.c **** {
64:LibFunc.c **** return FALSE;
164 .LM13:
165 002c 80E0 ldi r24,lo8(0)
166 002e 90E0 ldi r25,hi8(0)
167 0030 0895 ret
168 .L12:
170 .LM14:
171 0032 2F5F subi r18,lo8(-(1))
172 0034 3F4F sbci r19,hi8(-(1))
173 0036 F3CF rjmp .L17
174 .L16:
65:LibFunc.c **** }
66:LibFunc.c **** }
67:LibFunc.c **** return TRUE;
176 .LM15:
177 0038 81E0 ldi r24,lo8(1)
178 003a 90E0 ldi r25,hi8(1)
179 .LBE5:
180 .LBE4:
68:LibFunc.c **** }
182 .LM16:
183 003c 0895 ret
184 /* epilogue: frame size=0 */
185 003e 0895 ret
186 /* epilogue end (size=1) */
187 /* function uint8 IsEqual(void*, void*, uint16) size 21 (20) */
197 .global _Z10ClearNbytePvj
199 _Z10ClearNbytePvj:
69:LibFunc.c ****
70:LibFunc.c **** /*
71:LibFunc.c **** ;**************************************************************************************************
72:LibFunc.c **** ;* 函数名称 : ClearNbyte
73:LibFunc.c **** ;* 描 述 : 清除N字节
74:LibFunc.c **** ;* 输 入 : src: 源地址, nbyte: 字节数
75:LibFunc.c **** ;*
76:LibFunc.c **** ;* 输 出 : 无
77:LibFunc.c **** ;**************************************************************************************************
78:LibFunc.c **** ;*/
79:LibFunc.c **** void ClearNbyte(void *Src, uint16 nbyte)
80:LibFunc.c **** {
201 .LM17:
202 /* prologue: frame size=0 */
203 /* prologue end (size=0) */
204 .LBB6:
205 .LBB7:
81:LibFunc.c **** uint16 i;
82:LibFunc.c **** uint8 *src = (uint8 *)Src;
207 .LM18:
208 0040 FC01 movw r30,r24
209 .L25:
83:LibFunc.c ****
84:LibFunc.c **** for (i = 0; i < nbyte; i++)
211 .LM19:
212 0042 6115 cp r22,__zero_reg__
213 0044 7105 cpc r23,__zero_reg__
214 0046 21F0 breq .L24
85:LibFunc.c **** {
86:LibFunc.c **** *src++ = 0x00;
216 .LM20:
217 0048 1192 st Z+,__zero_reg__
219 .LM21:
220 004a 6150 subi r22,lo8(-(-1))
221 004c 7040 sbci r23,hi8(-(-1))
222 004e F9CF rjmp .L25
223 .L24:
224 0050 0895 ret
225 .LBE7:
226 .LBE6:
227 /* epilogue: frame size=0 */
228 /* epilogue: noreturn */
229 /* epilogue end (size=0) */
230 /* function void ClearNbyte(void*, uint16) size 9 (9) */
236 .text
238 Letext:
239 /* File "LibFunc.c": code 41 = 0x0029 ( 40), prologues 0, epilogues 1 */
DEFINED SYMBOLS
*ABS*:00000000 LibFunc.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\Users\ADMINI~1\AppData\Local\Temp/cconaaaa.s:86 .text:00000000 _Z9CopyNbytePvS_j
C:\Users\ADMINI~1\AppData\Local\Temp/cconaaaa.s:134 .text:00000016 _Z7IsEqualPvS_j
C:\Users\ADMINI~1\AppData\Local\Temp/cconaaaa.s:199 .text:00000040 _Z10ClearNbytePvj
C:\Users\ADMINI~1\AppData\Local\Temp/cconaaaa.s:238 .text:00000052 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -