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

📄 mmc.lst

📁 AVR单片机 读写SD/MMC卡 带文件系统 FAT16 源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"mmc.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	mmc_write_byte
  20               	mmc_write_byte:
  21               	.LFB7:
  22               	.LM1:
  23               	/* prologue: frame size=0 */
  24               	/* prologue end (size=0) */
  25               	.LM2:
  26 0000 8FB9      		out 47-0x20,r24
  27               	.L2:
  28               	.LM3:
  29 0002 779B      		sbis 46-0x20,7
  30 0004 FECF      		rjmp .L2
  31               	/* epilogue: frame size=0 */
  32 0006 0895      		ret
  33               	/* epilogue end (size=1) */
  34               	/* function mmc_write_byte size 4 (3) */
  35               	.LFE7:
  37               	.global	mmc_read_byte
  39               	mmc_read_byte:
  40               	.LFB6:
  41               	.LM4:
  42               	/* prologue: frame size=0 */
  43               	/* prologue end (size=0) */
  44               	.LM5:
  45 0008 8FEF      		ldi r24,lo8(-1)
  46 000a 8FB9      		out 47-0x20,r24
  47               	.L6:
  48               	.LM6:
  49 000c 779B      		sbis 46-0x20,7
  50 000e FECF      		rjmp .L6
  51               	.LM7:
  52 0010 8FB1      		in r24,47-0x20
  53               	.LM8:
  54 0012 9927      		clr r25
  55               	/* epilogue: frame size=0 */
  56 0014 0895      		ret
  57               	/* epilogue end (size=1) */
  58               	/* function mmc_read_byte size 7 (6) */
  59               	.LFE6:
  61               	.global	mmc_write_command
  63               	mmc_write_command:
  64               	.LFB5:
  65               	.LM9:
  66               	/* prologue: frame size=0 */
  67               	/* prologue end (size=0) */
  68 0016 FC01      		movw r30,r24
  69               	.LM10:
  70 0018 2FEF      		ldi r18,lo8(-1)
  71               	.LM11:
  72 001a 40E0      		ldi r20,lo8(0)
  73 001c 50E0      		ldi r21,hi8(0)
  74               	.LM12:
  75 001e C39A      		sbi 56-0x20,3
  76               	.LBB2:
  77               	.LBB3:
  78               	.LM13:
  79 0020 2FB9      		out 47-0x20,r18
  80               	.L10:
  81               	.LM14:
  82 0022 779B      		sbis 46-0x20,7
  83 0024 FECF      		rjmp .L10
  84               	.LBE3:
  85               	.LBE2:
  86               	.LM15:
  87 0026 C398      		cbi 56-0x20,3
  88               	.LBB4:
  89               	.LM16:
  90 0028 90E0      		ldi r25,lo8(0)
  91               	.L21:
  92               	.LBB5:
  93               	.LM17:
  94 002a 8191      		ld r24,Z+
  95               	.LBB6:
  96               	.LM18:
  97 002c 8FB9      		out 47-0x20,r24
  98               	.L17:
  99               	.LM19:
 100 002e 779B      		sbis 46-0x20,7
 101 0030 FECF      		rjmp .L17
 102               	.LBE6:
 103               	.LBE5:
 104               	.LM20:
 105 0032 9F5F      		subi r25,lo8(-(1))
 106 0034 9630      		cpi r25,lo8(6)
 107 0036 C8F3      		brlo .L21
 108 0038 3FEF      		ldi r19,lo8(-1)
 109               	.L29:
 110               	.LBE4:
 111               	.LBB7:
 112               	.LBB8:
 113               	.LM21:
 114 003a 3FB9      		out 47-0x20,r19
 115               	.L24:
 116               	.LM22:
 117 003c 779B      		sbis 46-0x20,7
 118 003e FECF      		rjmp .L24
 119               	.LM23:
 120 0040 8FB1      		in r24,47-0x20
 121               	.LBE8:
 122               	.LBE7:
 123               	.LM24:
 124 0042 282F      		mov r18,r24
 125               	.LM25:
 126 0044 CA01      		movw r24,r20
 127 0046 4F5F      		subi r20,lo8(-(1))
 128 0048 5F4F      		sbci r21,hi8(-(1))
 129 004a 855F      		subi r24,lo8(501)
 130 004c 9140      		sbci r25,hi8(501)
 131 004e 10F4      		brsh .L23
 132               	.LM26:
 133 0050 2F3F      		cpi r18,lo8(-1)
 134 0052 99F3      		breq .L29
 135               	.L23:
 136               	.LM27:
 137 0054 822F      		mov r24,r18
 138 0056 9927      		clr r25
 139               	/* epilogue: frame size=0 */
 140 0058 0895      		ret
 141               	/* epilogue end (size=1) */
 142               	/* function mmc_write_command size 35 (34) */
 143               	.LFE5:
 145               		.data
 146               	.LC0:
 147 0000 40        		.byte	64
 148 0001 00        		.byte	0
 149 0002 00        		.byte	0
 150 0003 00        		.byte	0
 151 0004 00        		.byte	0
 152 0005 95        		.byte	-107
 153               		.text
 154               	.global	mmc_init
 156               	mmc_init:
 157               	.LFB4:
 158               	.LM28:
 159               	/* prologue: frame size=6 */
 160 005a 1F93      		push r17
 161 005c CF93      		push r28
 162 005e DF93      		push r29
 163 0060 CDB7      		in r28,__SP_L__
 164 0062 DEB7      		in r29,__SP_H__
 165 0064 2697      		sbiw r28,6
 166 0066 0FB6      		in __tmp_reg__,__SREG__
 167 0068 F894      		cli
 168 006a DEBF      		out __SP_H__,r29
 169 006c 0FBE      		out __SREG__,__tmp_reg__
 170 006e CDBF      		out __SP_L__,r28
 171               	/* prologue end (size=11) */
 172               	.LM29:
 173 0070 10E0      		ldi r17,lo8(0)
 174               	.LM30:
 175 0072 BE98      		cbi 55-0x20,6
 176               	.LM31:
 177 0074 BF9A      		sbi 55-0x20,7
 178               	.LM32:
 179 0076 BD9A      		sbi 55-0x20,5
 180               	.LM33:
 181 0078 BB9A      		sbi 55-0x20,3
 182               	.LM34:
 183 007a BC9A      		sbi 55-0x20,4
 184               	.LM35:
 185 007c C39A      		sbi 56-0x20,3
 186               	.LBB9:
 187               	.LM36:
 188 007e 812F      		mov r24,r17
 189               	.L37:
 190               	.LM37:
 191               	/* #APP */
 192 0080 0000      		nop
 193               	.LM38:
 194               	/* #NOAPP */
 195 0082 8F5F      		subi r24,lo8(-(1))
 196 0084 883C      		cpi r24,lo8(-56)
 197 0086 E0F3      		brlo .L37
 198               	.LBE9:
 199               	.LM39:
 200 0088 83E5      		ldi r24,lo8(83)
 201 008a 8DB9      		out 45-0x20,r24
 202               	.LM40:
 203 008c 1EB8      		out 46-0x20,__zero_reg__
 204               	.LBB10:
 205               	.LM41:
 206 008e 80E0      		ldi r24,lo8(0)
 207 0090 9FEF      		ldi r25,lo8(-1)
 208               	.L45:
 209               	.LBB11:
 210               	.LBB12:
 211               	.LM42:
 212 0092 9FB9      		out 47-0x20,r25
 213               	.L41:
 214               	.LM43:
 215 0094 779B      		sbis 46-0x20,7
 216 0096 FECF      		rjmp .L41
 217               	.LBE12:
 218               	.LBE11:
 219               	.LM44:
 220 0098 8F5F      		subi r24,lo8(-(1))
 221 009a 8F30      		cpi r24,lo8(15)
 222 009c D0F3      		brlo .L45
 223               	.LBE10:
 224               	.LM45:
 225 009e 86E0      		ldi r24,lo8(6)
 226 00a0 A0E0      		ldi r26,lo8(.LC0)
 227 00a2 B0E0      		ldi r27,hi8(.LC0)
 228 00a4 FE01      		movw r30,r28
 229 00a6 3196      		adiw r30,1
 230 00a8 0D90      		ld __tmp_reg__,X+
 231 00aa 0192      		st Z+,__tmp_reg__
 232 00ac 8A95      		dec r24
 233 00ae E1F7      		brne .-8
 234               	.LM46:
 235 00b0 07C0      		rjmp .L46
 236               	.L49:
 237               	.LM47:
 238 00b2 812F      		mov r24,r17
 239 00b4 1F5F      		subi r17,lo8(-(1))
 240 00b6 893C      		cpi r24,lo8(-55)
 241 00b8 18F0      		brlo .L46
 242               	.LM48:
 243 00ba 81E0      		ldi r24,lo8(1)
 244 00bc 90E0      		ldi r25,hi8(1)
 245 00be 20C0      		rjmp .L33
 246               	.L46:
 247 00c0 CE01      		movw r24,r28
 248 00c2 0196      		adiw r24,1
 249 00c4 0E94 0000 		call mmc_write_command
 250 00c8 8130      		cpi r24,lo8(1)
 251 00ca 99F7      		brne .L49
 252 00cc 10E0      		ldi r17,lo8(0)
 253               	.LM49:
 254 00ce 81E4      		ldi r24,lo8(65)
 255 00d0 8983      		std Y+1,r24
 256               	.LM50:
 257 00d2 8FEF      		ldi r24,lo8(-1)
 258 00d4 8E83      		std Y+6,r24
 259               	.LM51:
 260 00d6 07C0      		rjmp .L50
 261               	.L53:
 262               	.LM52:
 263 00d8 812F      		mov r24,r17
 264 00da 1F5F      		subi r17,lo8(-(1))
 265 00dc 8536      		cpi r24,lo8(101)
 266 00de 18F0      		brlo .L50
 267               	.LM53:
 268 00e0 82E0      		ldi r24,lo8(2)
 269 00e2 90E0      		ldi r25,hi8(2)
 270 00e4 0DC0      		rjmp .L33
 271               	.L50:
 272 00e6 CE01      		movw r24,r28
 273 00e8 0196      		adiw r24,1
 274 00ea 0E94 0000 		call mmc_write_command
 275 00ee 8823      		tst r24
 276 00f0 99F7      		brne .L53
 277               	.LM54:
 278 00f2 8DB1      		in r24,45-0x20
 279 00f4 8C7F      		andi r24,lo8(-4)
 280 00f6 8DB9      		out 45-0x20,r24
 281               	.LM55:
 282 00f8 709A      		sbi 46-0x20,0
 283               	.LM56:
 284 00fa C39A      		sbi 56-0x20,3
 285               	.LM57:
 286 00fc 80E0      		ldi r24,lo8(0)
 287 00fe 90E0      		ldi r25,hi8(0)
 288               	.L33:
 289               	/* epilogue: frame size=6 */
 290 0100 2696      		adiw r28,6
 291 0102 0FB6      		in __tmp_reg__,__SREG__
 292 0104 F894      		cli
 293 0106 DEBF      		out __SP_H__,r29
 294 0108 0FBE      		out __SREG__,__tmp_reg__
 295 010a CDBF      		out __SP_L__,r28
 296 010c DF91      		pop r29
 297 010e CF91      		pop r28
 298 0110 1F91      		pop r17
 299 0112 0895      		ret
 300               	/* epilogue end (size=10) */
 301               	/* function mmc_init size 94 (73) */
 302               	.LFE4:
 304               		.data
 305               	.LC1:
 306 0006 58        		.byte	88
 307 0007 00        		.byte	0
 308 0008 00        		.byte	0
 309 0009 00        		.byte	0
 310 000a 00        		.byte	0
 311 000b FF        		.byte	-1
 312               		.text
 313               	.global	mmc_write_sector
 315               	mmc_write_sector:
 316               	.LFB8:
 317               	.LM58:
 318               	/* prologue: frame size=6 */
 319 0114 CF92      		push r12
 320 0116 DF92      		push r13
 321 0118 EF92      		push r14
 322 011a FF92      		push r15
 323 011c 0F93      		push r16
 324 011e 1F93      		push r17
 325 0120 CF93      		push r28
 326 0122 DF93      		push r29
 327 0124 CDB7      		in r28,__SP_L__
 328 0126 DEB7      		in r29,__SP_H__
 329 0128 2697      		sbiw r28,6
 330 012a 0FB6      		in __tmp_reg__,__SREG__
 331 012c F894      		cli
 332 012e DEBF      		out __SP_H__,r29
 333 0130 0FBE      		out __SREG__,__tmp_reg__
 334 0132 CDBF      		out __SP_L__,r28
 335               	/* prologue end (size=16) */
 336 0134 6B01      		movw r12,r22
 337 0136 7C01      		movw r14,r24
 338 0138 8A01      		movw r16,r20
 339               	.LM59:
 340 013a BE01      		movw r22,r28
 341 013c 6F5F      		subi r22,lo8(-(1))
 342 013e 7F4F      		sbci r23,hi8(-(1))
 343 0140 26E0      		ldi r18,lo8(6)
 344 0142 40E0      		ldi r20,lo8(.LC1)
 345 0144 50E0      		ldi r21,hi8(.LC1)
 346 0146 DB01      		movw r26,r22
 347 0148 FA01      		movw r30,r20
 348 014a 0190      		ld __tmp_reg__,Z+
 349 014c 0D92      		st X+,__tmp_reg__
 350 014e 2A95      		dec r18
 351 0150 E1F7      		brne .-8
 352               	.LM60:
 353 0152 29E0      		ldi r18,9
 354 0154 CC0C      	1:	lsl r12
 355 0156 DD1C      		rol r13
 356 0158 EE1C      		rol r14
 357 015a FF1C      		rol r15
 358 015c 2A95      		dec r18
 359 015e D1F7      		brne 1b
 360               	.LM61:
 361 0160 2F2D      		mov r18,r15
 362 0162 3327      		clr r19
 363 0164 4427      		clr r20
 364 0166 5527      		clr r21
 365 0168 2A83      		std Y+2,r18
 366               	.LM62:
 367 016a EB82      		std Y+3,r14
 368               	.LM63:
 369 016c 80E0      		ldi r24,lo8(65280)
 370 016e 9FEF      		ldi r25,hi8(65280)
 371 0170 A0E0      		ldi r26,hlo8(65280)
 372 0172 B0E0      		ldi r27,hhi8(65280)
 373 0174 C822      		and r12,r24
 374 0176 D922      		and r13,r25
 375 0178 EA22      		and r14,r26
 376 017a FB22      		and r15,r27
 377 017c BB27      		clr r27
 378 017e AF2D      		mov r26,r15
 379 0180 9E2D      		mov r25,r14
 380 0182 8D2D      		mov r24,r13
 381 0184 8C83      		std Y+4,r24
 382               	.LM64:
 383 0186 CB01      		movw r24,r22
 384 0188 0E94 0000 		call mmc_write_command
 385               	.LM65:
 386 018c 8823      		tst r24
 387 018e 11F0      		breq .L59
 388               	.LM66:
 389 0190 9927      		clr r25
 390 0192 2DC0      		rjmp .L58
 391               	.L59:
 392               	.LBB13:
 393               	.LM67:
 394 0194 982F      		mov r25,r24
 395 0196 2FEF      		ldi r18,lo8(-1)
 396               	.L67:
 397               	.LBB14:
 398               	.LBB15:
 399               	.LM68:
 400 0198 2FB9      		out 47-0x20,r18
 401               	.L63:
 402               	.LM69:
 403 019a 779B      		sbis 46-0x20,7
 404 019c FECF      		rjmp .L63
 405               	.LM70:
 406 019e 8FB1      		in r24,47-0x20
 407               	.LBE15:
 408               	.LBE14:
 409               	.LM71:
 410 01a0 9F5F      		subi r25,lo8(-(1))
 411 01a2 9436      		cpi r25,lo8(100)
 412 01a4 C8F3      		brlo .L67
 413               	.LBE13:
 414               	.LBB16:
 415               	.LBB17:
 416               	.LM72:
 417 01a6 8EEF      		ldi r24,lo8(-2)
 418 01a8 8FB9      		out 47-0x20,r24
 419               	.L68:
 420               	.LM73:
 421 01aa 779B      		sbis 46-0x20,7
 422 01ac FECF      		rjmp .L68
 423               	.LBE17:
 424               	.LBE16:
 425               	.LBB18:
 426               	.LM74:
 427 01ae 20E0      		ldi r18,lo8(0)
 428 01b0 30E0      		ldi r19,hi8(0)
 429               	.L79:
 430               	.LBB19:
 431               	.LM75:
 432 01b2 D801      		movw r26,r16
 433 01b4 8D91      		ld r24,X+
 434 01b6 8D01      		movw r16,r26
 435               	.LBB20:
 436               	.LM76:
 437 01b8 8FB9      		out 47-0x20,r24
 438               	.L75:
 439               	.LM77:
 440 01ba 779B      		sbis 46-0x20,7
 441 01bc FECF      		rjmp .L75
 442               	.LBE20:
 443               	.LBE19:
 444               	.LM78:
 445 01be 2F5F      		subi r18,lo8(-(1))
 446 01c0 3F4F      		sbci r19,hi8(-(1))
 447 01c2 B2E0      		ldi r27,hi8(512)

⌨️ 快捷键说明

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