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

📄 usb.lst

📁 基於MCU c51/8051 讀寫SD/MMC card 再以USB 傳回電腦的範例程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"USB.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
  17               	.Ltext0:
  18               	.global	Remain_Descriptor_Flag
  20               	Remain_Descriptor_Flag:
  21               	.LFB7:
  22               	.LM1:
  23               	/* prologue: frame size=0 */
  24               	/* prologue end (size=0) */
  25 0000 8091 0000 		lds r24,USB_Send_Descriptor_Flag
  26               	.LM2:
  27 0004 9927      		clr r25
  28               	/* epilogue: frame size=0 */
  29 0006 0895      		ret
  30               	/* epilogue end (size=1) */
  31               	/* function Remain_Descriptor_Flag size 4 (3) */
  32               	.LFE7:
  34               	.global	Clear_Remain_Descriptor_Flag
  36               	Clear_Remain_Descriptor_Flag:
  37               	.LFB8:
  38               	.LM3:
  39               	/* prologue: frame size=0 */
  40               	/* prologue end (size=0) */
  41               	.LM4:
  42 0008 1092 0000 		sts USB_Send_Descriptor_Flag,__zero_reg__
  43               	/* epilogue: frame size=0 */
  44 000c 0895      		ret
  45               	/* epilogue end (size=1) */
  46               	/* function Clear_Remain_Descriptor_Flag size 3 (2) */
  47               	.LFE8:
  49               	.global	Set_Interface
  51               	Set_Interface:
  52               	.LFB13:
  53               	.LM5:
  54               	/* prologue: frame size=0 */
  55               	/* prologue end (size=0) */
  56               	.LVL0:
  57               	.LM6:
  58 000e 80E0      		ldi r24,lo8(0)
  59 0010 90E0      		ldi r25,hi8(0)
  60               	.LVL1:
  61               	/* epilogue: frame size=0 */
  62 0012 0895      		ret
  63               	/* epilogue end (size=1) */
  64               	/* function Set_Interface size 3 (2) */
  65               	.LFE13:
  67               	.global	Reserved
  69               	Reserved:
  70               	.LFB14:
  71               	.LM7:
  72               	/* prologue: frame size=0 */
  73               	/* prologue end (size=0) */
  74               	.LVL2:
  75               	.LM8:
  76 0014 80E0      		ldi r24,lo8(0)
  77 0016 90E0      		ldi r25,hi8(0)
  78               	.LVL3:
  79               	/* epilogue: frame size=0 */
  80 0018 0895      		ret
  81               	/* epilogue end (size=1) */
  82               	/* function Reserved size 3 (2) */
  83               	.LFE14:
  85               	.global	Get_Interface
  87               	Get_Interface:
  88               	.LFB12:
  89               	.LM9:
  90               	/* prologue: frame size=0 */
  91               	/* prologue end (size=0) */
  92               	.LVL4:
  93 001a FC01      		movw r30,r24
  94               	.LM10:
  95 001c 8081      		ld r24,Z
  96               	.LVL5:
  97 001e 8138      		cpi r24,lo8(-127)
  98 0020 01F4      		brne .L10
  99               	.LM11:
 100 0022 2581      		ldd r18,Z+5
 101 0024 8481      		ldd r24,Z+4
 102 0026 282B      		or r18,r24
 103 0028 8281      		ldd r24,Z+2
 104 002a 9381      		ldd r25,Z+3
 105 002c 892B      		or r24,r25
 106 002e 9781      		ldd r25,Z+7
 107 0030 892B      		or r24,r25
 108 0032 282B      		or r18,r24
 109 0034 01F4      		brne .L10
 110               	.LM12:
 111 0036 8681      		ldd r24,Z+6
 112 0038 8130      		cpi r24,lo8(1)
 113 003a 01F4      		brne .L10
 114               	.LM13:
 115 003c 1082      		st Z,__zero_reg__
 116               	.LM14:
 117 003e 41E0      		ldi r20,lo8(1)
 118 0040 BF01      		movw r22,r30
 119 0042 0E94 0000 		call D12_Write_Endpoint
 120               	.LVL6:
 121 0046 81E0      		ldi r24,lo8(1)
 122 0048 90E0      		ldi r25,hi8(1)
 123 004a 0895      		ret
 124               	.LVL7:
 125               	.L10:
 126               	.LM15:
 127 004c 80E0      		ldi r24,lo8(0)
 128 004e 90E0      		ldi r25,hi8(0)
 129               	.LM16:
 130 0050 0895      		ret
 131               	/* epilogue: frame size=0 */
 132               	/* epilogue: noreturn */
 133               	/* epilogue end (size=0) */
 134               	/* function Get_Interface size 29 (29) */
 135               	.LFE12:
 137               	.global	Get_Configuration
 139               	Get_Configuration:
 140               	.LFB10:
 141               	.LM17:
 142               	/* prologue: frame size=0 */
 143               	/* prologue end (size=0) */
 144               	.LVL8:
 145 0052 FC01      		movw r30,r24
 146               	.LM18:
 147 0054 8081      		ld r24,Z
 148               	.LVL9:
 149 0056 8038      		cpi r24,lo8(-128)
 150 0058 01F4      		brne .L17
 151               	.LM19:
 152 005a 2581      		ldd r18,Z+5
 153 005c 8481      		ldd r24,Z+4
 154 005e 282B      		or r18,r24
 155 0060 8281      		ldd r24,Z+2
 156 0062 9381      		ldd r25,Z+3
 157 0064 892B      		or r24,r25
 158 0066 9781      		ldd r25,Z+7
 159 0068 892B      		or r24,r25
 160 006a 282B      		or r18,r24
 161 006c 01F4      		brne .L17
 162               	.LM20:
 163 006e 9681      		ldd r25,Z+6
 164 0070 9130      		cpi r25,lo8(1)
 165 0072 01F4      		brne .L17
 166               	.LM21:
 167 0074 1082      		st Z,__zero_reg__
 168 0076 8091 0000 		lds r24,USB_Config
 169 007a 8111      		cpse r24,__zero_reg__
 170 007c 9083      		st Z,r25
 171               	.L21:
 172               	.LM22:
 173 007e 41E0      		ldi r20,lo8(1)
 174 0080 BF01      		movw r22,r30
 175 0082 81E0      		ldi r24,lo8(1)
 176 0084 0E94 0000 		call D12_Write_Endpoint
 177               	.LVL10:
 178 0088 81E0      		ldi r24,lo8(1)
 179 008a 90E0      		ldi r25,hi8(1)
 180 008c 0895      		ret
 181               	.LVL11:
 182               	.L17:
 183               	.LM23:
 184 008e 80E0      		ldi r24,lo8(0)
 185 0090 90E0      		ldi r25,hi8(0)
 186               	.LM24:
 187 0092 0895      		ret
 188               	/* epilogue: frame size=0 */
 189               	/* epilogue: noreturn */
 190               	/* epilogue end (size=0) */
 191               	/* function Get_Configuration size 35 (35) */
 192               	.LFE10:
 194               	.global	Send_Descriptor
 196               	Send_Descriptor:
 197               	.LFB6:
 198               	.LM25:
 199               	/* prologue: frame size=0 */
 200               	/* prologue end (size=0) */
 201               	.LM26:
 202 0094 4091 0000 		lds r20,send_remain
 203 0098 5091 0000 		lds r21,(send_remain)+1
 204 009c 1092 0000 		sts USB_Send_Descriptor_Flag,__zero_reg__
 205 00a0 4031      		cpi r20,16
 206 00a2 5105      		cpc r21,__zero_reg__
 207 00a4 04F0      		brlt .L25
 208               	.LM27:
 209 00a6 81E0      		ldi r24,lo8(1)
 210 00a8 8093 0000 		sts USB_Send_Descriptor_Flag,r24
 211               	.L25:
 212               	.LM28:
 213 00ac 4131      		cpi r20,17
 214 00ae 5105      		cpc r21,__zero_reg__
 215 00b0 04F0      		brlt .L26
 216 00b2 40E1      		ldi r20,lo8(16)
 217 00b4 50E0      		ldi r21,hi8(16)
 218               	.L26:
 219 00b6 6091 0000 		lds r22,send_ptr
 220 00ba 7091 0000 		lds r23,(send_ptr)+1
 221 00be 81E0      		ldi r24,lo8(1)
 222 00c0 0E94 0000 		call D12_Write_Endpoint
 223               	.LM29:
 224 00c4 8091 0000 		lds r24,send_remain
 225 00c8 9091 0000 		lds r25,(send_remain)+1
 226 00cc 4097      		sbiw r24,16
 227 00ce 9093 0000 		sts (send_remain)+1,r25
 228 00d2 8093 0000 		sts send_remain,r24
 229               	.LM30:
 230 00d6 8091 0000 		lds r24,send_ptr
 231 00da 9091 0000 		lds r25,(send_ptr)+1
 232 00de 4096      		adiw r24,16
 233 00e0 9093 0000 		sts (send_ptr)+1,r25
 234 00e4 8093 0000 		sts send_ptr,r24
 235               	/* epilogue: frame size=0 */
 236 00e8 0895      		ret
 237               	/* epilogue end (size=1) */
 238               	/* function Send_Descriptor size 43 (42) */
 239               	.LFE6:
 241               	.global	Get_Descriptor
 243               	Get_Descriptor:
 244               	.LFB9:
 245               	.LM31:
 246               	/* prologue: frame size=0 */
 247               	/* prologue end (size=0) */
 248               	.LVL12:
 249 00ea FC01      		movw r30,r24
 250               	.LM32:
 251 00ec 8081      		ld r24,Z
 252               	.LVL13:
 253 00ee 8038      		cpi r24,lo8(-128)
 254 00f0 01F0      		breq .+2
 255 00f2 00C0      		rjmp .L29
 256               	.LM33:
 257 00f4 8381      		ldd r24,Z+3
 258 00f6 8230      		cpi r24,lo8(2)
 259 00f8 01F0      		breq .L32
 260 00fa 8330      		cpi r24,lo8(3)
 261 00fc 01F0      		breq .L33
 262 00fe 8130      		cpi r24,lo8(1)
 263 0100 01F0      		breq .+2
 264 0102 00C0      		rjmp .L29
 265               	.LM34:
 266 0104 80E0      		ldi r24,lo8(ThisDevDesc)
 267 0106 90E0      		ldi r25,hi8(ThisDevDesc)
 268 0108 9093 0000 		sts (send_ptr)+1,r25
 269 010c 8093 0000 		sts send_ptr,r24
 270               	.LM35:
 271 0110 82E1      		ldi r24,lo8(18)
 272 0112 90E0      		ldi r25,hi8(18)
 273 0114 00C0      		rjmp .L43
 274               	.L32:
 275               	.LM36:
 276 0116 80E0      		ldi r24,lo8(ThisDevDesc+18)
 277 0118 90E0      		ldi r25,hi8(ThisDevDesc+18)
 278 011a 9093 0000 		sts (send_ptr)+1,r25
 279 011e 8093 0000 		sts send_ptr,r24
 280               	.LM37:
 281 0122 80E2      		ldi r24,lo8(32)
 282 0124 90E0      		ldi r25,hi8(32)
 283 0126 00C0      		rjmp .L43
 284               	.L33:
 285               	.LM38:
 286 0128 8281      		ldd r24,Z+2
 287 012a 8823      		tst r24
 288 012c 01F4      		brne .L35
 289               	.LM39:
 290 012e 80E0      		ldi r24,lo8(LANGUAGE_ID)
 291 0130 90E0      		ldi r25,hi8(LANGUAGE_ID)
 292 0132 9093 0000 		sts (send_ptr)+1,r25
 293 0136 8093 0000 		sts send_ptr,r24
 294               	.LM40:
 295 013a 8091 0000 		lds r24,LANGUAGE_ID
 296 013e 00C0      		rjmp .L44
 297               	.L35:
 298               	.LM41:
 299 0140 8230      		cpi r24,lo8(2)
 300 0142 01F4      		brne .L34
 301               	.LM42:
 302 0144 80E0      		ldi r24,lo8(sign_name)
 303 0146 90E0      		ldi r25,hi8(sign_name)
 304 0148 9093 0000 		sts (send_ptr)+1,r25
 305 014c 8093 0000 		sts send_ptr,r24
 306               	.LM43:
 307 0150 8091 0000 		lds r24,sign_name
 308               	.L44:
 309 0154 9927      		clr r25
 310               	.L43:
 311 0156 9093 0000 		sts (send_remain)+1,r25
 312 015a 8093 0000 		sts send_remain,r24
 313               	.L34:
 314               	.LM44:
 315 015e 8781      		ldd r24,Z+7
 316 0160 8823      		tst r24
 317 0162 01F4      		brne .L38
 318 0164 8681      		ldd r24,Z+6
 319 0166 282F      		mov r18,r24
 320 0168 3327      		clr r19
 321 016a 8091 0000 		lds r24,send_remain
 322 016e 9091 0000 		lds r25,(send_remain)+1
 323 0172 2817      		cp r18,r24
 324 0174 3907      		cpc r19,r25
 325 0176 04F4      		brge .L38
 326               	.LM45:
 327 0178 3093 0000 		sts (send_remain)+1,r19
 328 017c 2093 0000 		sts send_remain,r18
 329               	.L38:
 330               	.LM46:
 331 0180 0E94 0000 		call Send_Descriptor
 332               	.LVL14:
 333 0184 81E0      		ldi r24,lo8(1)
 334 0186 90E0      		ldi r25,hi8(1)
 335 0188 0895      		ret
 336               	.LVL15:
 337               	.L29:
 338               	.LM47:
 339 018a 80E0      		ldi r24,lo8(0)
 340 018c 90E0      		ldi r25,hi8(0)
 341               	.LM48:
 342 018e 0895      		ret
 343               	/* epilogue: frame size=0 */
 344               	/* epilogue: noreturn */
 345               	/* epilogue end (size=0) */
 346               	/* function Get_Descriptor size 83 (83) */
 347               	.LFE9:
 349               	.global	Set_Configuration
 351               	Set_Configuration:
 352               	.LFB11:
 353               	.LM49:
 354               	/* prologue: frame size=0 */
 355 0190 1F93      		push r17
 356 0192 CF93      		push r28
 357 0194 DF93      		push r29
 358               	/* prologue end (size=3) */
 359               	.LVL16:
 360 0196 EC01      		movw r28,r24
 361               	.LM50:
 362 0198 9881      		ld r25,Y
 363 019a 8B81      		ldd r24,Y+3
 364               	.LVL17:
 365 019c 982B      		or r25,r24
 366 019e 8E81      		ldd r24,Y+6
 367 01a0 982B      		or r25,r24
 368 01a2 8D81      		ldd r24,Y+5
 369 01a4 2C81      		ldd r18,Y+4
 370 01a6 822B      		or r24,r18
 371 01a8 2F81      		ldd r18,Y+7
 372 01aa 822B      		or r24,r18
 373 01ac 982B      		or r25,r24
 374 01ae 01F4      		brne .L46
 375               	.LM51:
 376 01b0 9A81      		ldd r25,Y+2
 377 01b2 892F      		mov r24,r25
 378 01b4 8E7F      		andi r24,lo8(-2)
 379 01b6 01F4      		brne .L46
 380               	.LM52:
 381 01b8 892F      		mov r24,r25
 382 01ba 8170      		andi r24,lo8(1)
 383 01bc 8093 0000 		sts USB_Config,r24
 384               	.LM53:
 385 01c0 0E94 0000 		call D12_Set_Endpoint_Enable
 386               	.LM54:
 387 01c4 6091 0000 		lds r22,USB_Config
 388 01c8 11E0      		ldi r17,lo8(1)
 389 01ca 6127      		eor r22,r17
 390 01cc 84E0      		ldi r24,lo8(4)
 391 01ce 0E94 0000 		call D12_Set_Endpoint_Status
 392               	.LM55:
 393 01d2 6091 0000 		lds r22,USB_Config
 394 01d6 6127      		eor r22,r17
 395 01d8 85E0      		ldi r24,lo8(5)
 396 01da 0E94 0000 		call D12_Set_Endpoint_Status
 397               	.LM56:
 398 01de 40E0      		ldi r20,lo8(0)
 399 01e0 BE01      		movw r22,r28
 400 01e2 81E0      		ldi r24,lo8(1)
 401 01e4 0E94 0000 		call D12_Write_Endpoint
 402 01e8 81E0      		ldi r24,lo8(1)
 403 01ea 90E0      		ldi r25,hi8(1)
 404 01ec 00C0      		rjmp .L49
 405               	.L46:
 406               	.LM57:
 407 01ee 80E0      		ldi r24,lo8(0)
 408 01f0 90E0      		ldi r25,hi8(0)
 409               	.L49:
 410               	/* epilogue: frame size=0 */
 411 01f2 DF91      		pop r29
 412 01f4 CF91      		pop r28
 413 01f6 1F91      		pop r17
 414 01f8 0895      		ret
 415               	/* epilogue end (size=4) */
 416               	/* function Set_Configuration size 55 (48) */
 417               	.LFE11:
 419               	.global	Set_Feature
 421               	Set_Feature:
 422               	.LFB4:

⌨️ 快捷键说明

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