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

📄 fat.lst

📁 AVR单片机 读写SD/MMC卡 带文件系统 FAT16 源码
💻 LST
📖 第 1 页 / 共 3 页
字号:
   1               		.file	"fat.c"
   2               		.arch atmega32
   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
  17               	.Ltext0:
  18               	.global	fat_addr
  20               	fat_addr:
  21               	.LFB4:
  22               	.LM1:
  23               	/* prologue: frame size=0 */
  24 0000 EF92      		push r14
  25 0002 FF92      		push r15
  26 0004 0F93      		push r16
  27 0006 1F93      		push r17
  28               	/* prologue end (size=4) */
  29 0008 8C01      		movw r16,r24
  30               	.LM2:
  31 000a AC01      		movw r20,r24
  32 000c 60E0      		ldi r22,lo8(0)
  33 000e 70E0      		ldi r23,hi8(0)
  34 0010 80E0      		ldi r24,hlo8(0)
  35 0012 90E0      		ldi r25,hhi8(0)
  36 0014 0E94 0000 		call mmc_read_sector
  37               	.LM3:
  38 0018 0A53      		subi r16,lo8(-(454))
  39 001a 1E4F      		sbci r17,hi8(-(454))
  40 001c F801      		movw r30,r16
  41 001e 2191      		ld r18,Z+
  42 0020 8F01      		movw r16,r30
  43 0022 8081      		ld r24,Z
  44 0024 075C      		subi r16,lo8(-(-455))
  45 0026 1140      		sbci r17,hi8(-(-455))
  46 0028 9927      		clr r25
  47 002a F82E      		mov r15,r24
  48 002c EE24      		clr r14
  49 002e E20E      		add r14,r18
  50 0030 F11C      		adc r15,__zero_reg__
  51               	.LM4:
  52 0032 C701      		movw r24,r14
  53 0034 AA27      		clr r26
  54 0036 BB27      		clr r27
  55 0038 A801      		movw r20,r16
  56 003a BC01      		movw r22,r24
  57 003c CD01      		movw r24,r26
  58 003e 0E94 0000 		call mmc_read_sector
  59               	.LM5:
  60 0042 C701      		movw r24,r14
  61               	/* epilogue: frame size=0 */
  62 0044 1F91      		pop r17
  63 0046 0F91      		pop r16
  64 0048 FF90      		pop r15
  65 004a EF90      		pop r14
  66 004c 0895      		ret
  67               	/* epilogue end (size=5) */
  68               	/* function fat_addr size 39 (30) */
  69               	.LFE4:
  71               	.global	fat_root_dir_addr
  73               	fat_root_dir_addr:
  74               	.LFB5:
  75               	.LM6:
  76               	/* prologue: frame size=0 */
  77 004e 0F93      		push r16
  78 0050 1F93      		push r17
  79               	/* prologue end (size=2) */
  80 0052 8C01      		movw r16,r24
  81               	.LM7:
  82 0054 8091 0000 		lds r24,volume_boot_record_addr
  83 0058 9091 0000 		lds r25,(volume_boot_record_addr)+1
  84 005c AA27      		clr r26
  85 005e BB27      		clr r27
  86 0060 A801      		movw r20,r16
  87 0062 BC01      		movw r22,r24
  88 0064 CD01      		movw r24,r26
  89 0066 0E94 0000 		call mmc_read_sector
  90               	.LM8:
  91 006a F801      		movw r30,r16
  92 006c 8089      		ldd r24,Z+16
  93 006e 282F      		mov r18,r24
  94 0070 3327      		clr r19
  95 0072 8689      		ldd r24,Z+22
  96 0074 9789      		ldd r25,Z+23
  97 0076 289F      		mul r18,r24
  98 0078 A001      		movw r20,r0
  99 007a 299F      		mul r18,r25
 100 007c 500D      		add r21,r0
 101 007e 389F      		mul r19,r24
 102 0080 500D      		add r21,r0
 103 0082 1124      		clr r1
 104 0084 8685      		ldd r24,Z+14
 105 0086 9785      		ldd r25,Z+15
 106 0088 840F      		add r24,r20
 107 008a 951F      		adc r25,r21
 108               	.LM9:
 109 008c 2091 0000 		lds r18,volume_boot_record_addr
 110 0090 3091 0000 		lds r19,(volume_boot_record_addr)+1
 111               	.LM10:
 112 0094 820F      		add r24,r18
 113 0096 931F      		adc r25,r19
 114               	/* epilogue: frame size=0 */
 115 0098 1F91      		pop r17
 116 009a 0F91      		pop r16
 117 009c 0895      		ret
 118               	/* epilogue end (size=3) */
 119               	/* function fat_root_dir_addr size 40 (35) */
 120               	.LFE5:
 122               	.global	fat_load
 124               	fat_load:
 125               	.LFB7:
 126               	.LM11:
 127               	/* prologue: frame size=0 */
 128 009e AF92      		push r10
 129 00a0 BF92      		push r11
 130 00a2 CF92      		push r12
 131 00a4 DF92      		push r13
 132 00a6 EF92      		push r14
 133 00a8 FF92      		push r15
 134 00aa 0F93      		push r16
 135 00ac 1F93      		push r17
 136 00ae CF93      		push r28
 137 00b0 DF93      		push r29
 138               	/* prologue end (size=10) */
 139 00b2 EC01      		movw r28,r24
 140 00b4 5B01      		movw r10,r22
 141 00b6 6A01      		movw r12,r20
 142               	.LM12:
 143 00b8 00E0      		ldi r16,lo8(0)
 144 00ba 10E0      		ldi r17,hi8(0)
 145               	.LBB2:
 146               	.LM13:
 147 00bc 7801      		movw r14,r16
 148               	.L4:
 149               	.LM14:
 150 00be 9801      		movw r18,r16
 151 00c0 4427      		clr r20
 152 00c2 5527      		clr r21
 153 00c4 F501      		movw r30,r10
 154 00c6 8081      		ld r24,Z
 155 00c8 9181      		ldd r25,Z+1
 156 00ca A281      		ldd r26,Z+2
 157 00cc B381      		ldd r27,Z+3
 158 00ce 2817      		cp r18,r24
 159 00d0 3907      		cpc r19,r25
 160 00d2 4A07      		cpc r20,r26
 161 00d4 5B07      		cpc r21,r27
 162 00d6 41F4      		brne .L7
 163               	.LM15:
 164 00d8 CE01      		movw r24,r28
 165 00da AA27      		clr r26
 166 00dc BB27      		clr r27
 167 00de 8083      		st Z,r24
 168 00e0 9183      		std Z+1,r25
 169 00e2 A283      		std Z+2,r26
 170 00e4 B383      		std Z+3,r27
 171               	.LM16:
 172 00e6 32C0      		rjmp .L3
 173               	.L7:
 174               	.LM17:
 175 00e8 FFEF      		ldi r31,hi8(-1)
 176 00ea CF3F      		cpi r28,lo8(-1)
 177 00ec DF07      		cpc r29,r31
 178 00ee 71F1      		breq .L3
 179               	.LM18:
 180 00f0 CE01      		movw r24,r28
 181 00f2 8C0F      		add r24,r28
 182 00f4 9D1F      		adc r25,r29
 183 00f6 EC01      		movw r28,r24
 184 00f8 D170      		andi r29,hi8(511)
 185               	.LM19:
 186 00fa 9C01      		movw r18,r24
 187 00fc 232F      		mov r18,r19
 188 00fe 3327      		clr r19
 189 0100 2695      		lsr r18
 190 0102 8091 0000 		lds r24,volume_boot_record_addr
 191 0106 9091 0000 		lds r25,(volume_boot_record_addr)+1
 192 010a 280F      		add r18,r24
 193 010c 391F      		adc r19,r25
 194 010e 8091 0000 		lds r24,fat_offset
 195 0112 9091 0000 		lds r25,(fat_offset)+1
 196 0116 280F      		add r18,r24
 197 0118 391F      		adc r19,r25
 198               	.LM20:
 199 011a 2E15      		cp r18,r14
 200 011c 3F05      		cpc r19,r15
 201 011e 49F0      		breq .L9
 202               	.LM21:
 203 0120 7901      		movw r14,r18
 204               	.LM22:
 205 0122 C901      		movw r24,r18
 206 0124 AA27      		clr r26
 207 0126 BB27      		clr r27
 208 0128 A601      		movw r20,r12
 209 012a BC01      		movw r22,r24
 210 012c CD01      		movw r24,r26
 211 012e 0E94 0000 		call mmc_read_sector
 212               	.L9:
 213               	.LM23:
 214 0132 F601      		movw r30,r12
 215 0134 EC0F      		add r30,r28
 216 0136 FD1F      		adc r31,r29
 217 0138 8181      		ldd r24,Z+1
 218 013a 9927      		clr r25
 219 013c D82F      		mov r29,r24
 220 013e CC27      		clr r28
 221 0140 8081      		ld r24,Z
 222 0142 C80F      		add r28,r24
 223 0144 D11D      		adc r29,__zero_reg__
 224               	.LM24:
 225 0146 0F5F      		subi r16,lo8(-(1))
 226 0148 1F4F      		sbci r17,hi8(-(1))
 227 014a B9CF      		rjmp .L4
 228               	.L3:
 229               	.LBE2:
 230               	/* epilogue: frame size=0 */
 231 014c DF91      		pop r29
 232 014e CF91      		pop r28
 233 0150 1F91      		pop r17
 234 0152 0F91      		pop r16
 235 0154 FF90      		pop r15
 236 0156 EF90      		pop r14
 237 0158 DF90      		pop r13
 238 015a CF90      		pop r12
 239 015c BF90      		pop r11
 240 015e AF90      		pop r10
 241 0160 0895      		ret
 242               	/* epilogue end (size=11) */
 243               	/* function fat_load size 99 (78) */
 244               	.LFE7:
 246               	.global	fat_read_dir_ent
 248               	fat_read_dir_ent:
 249               	.LFB6:
 250               	.LM25:
 251               	/* prologue: frame size=4 */
 252 0162 5F92      		push r5
 253 0164 6F92      		push r6
 254 0166 7F92      		push r7
 255 0168 8F92      		push r8
 256 016a 9F92      		push r9
 257 016c AF92      		push r10
 258 016e BF92      		push r11
 259 0170 CF92      		push r12
 260 0172 DF92      		push r13
 261 0174 EF92      		push r14
 262 0176 FF92      		push r15
 263 0178 0F93      		push r16
 264 017a 1F93      		push r17
 265 017c CF93      		push r28
 266 017e DF93      		push r29
 267 0180 CDB7      		in r28,__SP_L__
 268 0182 DEB7      		in r29,__SP_H__
 269 0184 2497      		sbiw r28,4
 270 0186 0FB6      		in __tmp_reg__,__SREG__
 271 0188 F894      		cli
 272 018a DEBF      		out __SP_H__,r29
 273 018c 0FBE      		out __SREG__,__tmp_reg__
 274 018e CDBF      		out __SP_L__,r28
 275               	/* prologue end (size=23) */
 276 0190 562E      		mov r5,r22
 277 0192 3A01      		movw r6,r20
 278 0194 4901      		movw r8,r18
 279 0196 6801      		movw r12,r16
 280               	.LM26:
 281 0198 AA24      		clr r10
 282 019a BB24      		clr r11
 283               	.LM27:
 284 019c 1982      		std Y+1,__zero_reg__
 285 019e 1A82      		std Y+2,__zero_reg__
 286 01a0 1B82      		std Y+3,__zero_reg__
 287 01a2 1C82      		std Y+4,__zero_reg__
 288               	.LM28:
 289 01a4 0097      		sbiw r24,0
 290 01a6 49F4      		brne .L11
 291               	.LM29:
 292 01a8 C801      		movw r24,r16
 293 01aa 0E94 0000 		call fat_root_dir_addr
 294 01ae AA27      		clr r26
 295 01b0 BB27      		clr r27
 296 01b2 25C0      		rjmp .L34
 297               	.L33:
 298               	.LBB3:
 299               	.LBB4:
 300               	.LM30:
 301 01b4 8FEF      		ldi r24,lo8(-1)
 302 01b6 9FEF      		ldi r25,hi8(-1)
 303 01b8 74C0      		rjmp .L10
 304               	.L11:
 305               	.LBE4:
 306               	.LBE3:
 307               	.LM31:
 308 01ba A801      		movw r20,r16
 309 01bc BE01      		movw r22,r28
 310 01be 6F5F      		subi r22,lo8(-(1))
 311 01c0 7F4F      		sbci r23,hi8(-(1))
 312 01c2 0E94 0000 		call fat_load
 313               	.LM32:
 314 01c6 8981      		ldd r24,Y+1
 315 01c8 9A81      		ldd r25,Y+2
 316 01ca AB81      		ldd r26,Y+3
 317 01cc BC81      		ldd r27,Y+4
 318 01ce 0297      		sbiw r24,2
 319 01d0 A109      		sbc r26,__zero_reg__
 320 01d2 B109      		sbc r27,__zero_reg__
 321 01d4 2091 0000 		lds r18,cluster_size
 322 01d8 3327      		clr r19
 323 01da 4427      		clr r20
 324 01dc 5527      		clr r21
 325 01de BC01      		movw r22,r24
 326 01e0 CD01      		movw r24,r26
 327 01e2 0E94 0000 		call __mulsi3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -