📄 sd_test.asm
字号:
$0272 $0E01 MOVLW 1
$0274 $6F6E MOVWF spilib_s_b_spi_init_advanced_param_low_to_high, 1
$0276 $EC37 F000 CALL spilib_s_b_spi_init_advanced
$027A $501C MOVF sdlib_main_global_portaddress_1, W, 0
$027C $6EE9 MOVWF FSR0L, 0
$027E $501D MOVF sdlib_main_global_portaddress_2, W, 0
$0280 $6EEA MOVWF FSR0H, 0
$0282 $50EF MOVF INDF0, W, 0
$0284 $101E IORWF sdlib_main_global_mask1, W, 0
$0286 $6EEF MOVWF INDF0, 0
$0288 $6B5E CLRF sdlib_sd_init_local_i, 1
$028A $ sdlib_L_15:
$028A $0E09 MOVLW 9
$028C $6E01 MOVWF STACK_1, 0
$028E $515E MOVF sdlib_sd_init_local_i, W, 1
$0290 $5C01 SUBWF STACK_1, W, 0
$0292 $E306 BNC sdlib_L_17
$0294 $ sdlib_L_16:
$0294 $0EFF MOVLW 255
$0296 $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$0298 $EC1B F000 CALL sdlib_sd_spi
$029C $2B5E INCF sdlib_sd_init_local_i, F, 1
$029E $D7F5 BRA sdlib_L_15
$02A0 $ sdlib_L_17:
$02A0 $501C MOVF sdlib_main_global_portaddress_1, W, 0
$02A2 $6EE9 MOVWF FSR0L, 0
$02A4 $501D MOVF sdlib_main_global_portaddress_2, W, 0
$02A6 $6EEA MOVWF FSR0H, 0
$02A8 $50EF MOVF INDF0, W, 0
$02AA $141F ANDWF sdlib_main_global_mask0, W, 0
$02AC $6EEF MOVWF INDF0, 0
$02AE $6B6F CLRF sdlib_sd_send_command_param_partial_cmm, 1
$02B0 $6B70 CLRF sdlib_sd_send_command_param_address_1, 1
$02B2 $6B71 CLRF sdlib_sd_send_command_param_address_2, 1
$02B4 $6B72 CLRF sdlib_sd_send_command_param_address_3, 1
$02B6 $6B73 CLRF sdlib_sd_send_command_param_address_4, 1
$02B8 $0E95 MOVLW 149
$02BA $6F74 MOVWF sdlib_sd_send_command_param_crc, 1
$02BC $EC67 F000 CALL sdlib_sd_send_command
$02C0 $0E01 MOVLW 1
$02C2 $5D6B SUBWF sdlib_sd_send_command_local_result, W, 1
$02C4 $E003 BZ sdlib_L_19
$02C6 $ sdlib_L_18:
$02C6 $0EFF MOVLW 255
$02C8 $6E01 MOVWF STACK_1, 0
$02CA $D001 BRA sdlib_L_21
$02CC $ sdlib_L_19:
$02CC $6A01 CLRF STACK_1, 0
$02CE $ sdlib_L_21:
$02CE $0EFF MOVLW 255
$02D0 $5C01 SUBWF STACK_1, W, 0
$02D2 $E103 BNZ sdlib_L_23
$02D4 $ sdlib_L_22:
$02D4 $0E01 MOVLW 1
$02D6 $6F5D MOVWF sdlib_sd_init_local_result, 1
$02D8 $0012 return
$02DA $ sdlib_L_23:
$02DA $ sdlib_L_20:
$02DA $ sdlib_L_24:
$02DA $0E01 MOVLW 1
$02DC $6F6F MOVWF sdlib_sd_send_command_param_partial_cmm, 1
$02DE $6B70 CLRF sdlib_sd_send_command_param_address_1, 1
$02E0 $6B71 CLRF sdlib_sd_send_command_param_address_2, 1
$02E2 $6B72 CLRF sdlib_sd_send_command_param_address_3, 1
$02E4 $6B73 CLRF sdlib_sd_send_command_param_address_4, 1
$02E6 $0EFF MOVLW 255
$02E8 $6F74 MOVWF sdlib_sd_send_command_param_crc, 1
$02EA $EC67 F000 CALL sdlib_sd_send_command
$02EE $0E00 MOVLW 0
$02F0 $5D6B SUBWF sdlib_sd_send_command_local_result, W, 1
$02F2 $E003 BZ sdlib_L_26
$02F4 $ sdlib_L_25:
$02F4 $0EFF MOVLW 255
$02F6 $6E01 MOVWF STACK_1, 0
$02F8 $D001 BRA sdlib_L_27
$02FA $ sdlib_L_26:
$02FA $6A01 CLRF STACK_1, 0
$02FC $ sdlib_L_27:
$02FC $0EFF MOVLW 255
$02FE $5C01 SUBWF STACK_1, W, 0
$0300 $E102 BNZ sdlib_L_29
$0302 $ sdlib_L_28:
$0302 $0000 nop
$0304 $D7EA BRA sdlib_L_24
$0306 $ sdlib_L_29:
$0306 $6B5D CLRF sdlib_sd_init_local_result, 1
$0308 $0012 RETURN
$030A $ sdlib_sd_write_sector:
$030A $0102 MOVLB 2
$030C $5165 MOVF sdlib_sd_write_sector_param_sector_1, W, 1
$030E $6F60 MOVWF sdlib_sd_write_sector_local_byte_start_1, 1
$0310 $5166 MOVF sdlib_sd_write_sector_param_sector_2, W, 1
$0312 $6F61 MOVWF sdlib_sd_write_sector_local_byte_start_2, 1
$0314 $5167 MOVF sdlib_sd_write_sector_param_sector_3, W, 1
$0316 $6F62 MOVWF sdlib_sd_write_sector_local_byte_start_3, 1
$0318 $5168 MOVF sdlib_sd_write_sector_param_sector_4, W, 1
$031A $6F63 MOVWF sdlib_sd_write_sector_local_byte_start_4, 1
$031C $0E09 MOVLW 9
$031E $6E00 MOVWF STACK_0, 0
$0320 $ sdlib_L_48:
$0320 $0E00 MOVLW 0
$0322 $5C00 SUBWF STACK_0, W, 0
$0324 $E007 BZ sdlib_L_49
$0326 $3760 RLCF sdlib_sd_write_sector_local_byte_start_1, F, 1
$0328 $3761 RLCF sdlib_sd_write_sector_local_byte_start_2, F, 1
$032A $3762 RLCF sdlib_sd_write_sector_local_byte_start_3, F, 1
$032C $3763 RLCF sdlib_sd_write_sector_local_byte_start_4, F, 1
$032E $9160 BCF sdlib_sd_write_sector_local_byte_start_1, 0, 1
$0330 $2E00 DECFSZ STACK_0, F, 0
$0332 $D7F6 BRA sdlib_L_48
$0334 $ sdlib_L_49:
$0334 $0E18 MOVLW 24
$0336 $6F6F MOVWF sdlib_sd_send_command_param_partial_cmm, 1
$0338 $5160 MOVF sdlib_sd_write_sector_local_byte_start_1, W, 1
$033A $6F70 MOVWF sdlib_sd_send_command_param_address_1, 1
$033C $5161 MOVF sdlib_sd_write_sector_local_byte_start_2, W, 1
$033E $6F71 MOVWF sdlib_sd_send_command_param_address_2, 1
$0340 $5162 MOVF sdlib_sd_write_sector_local_byte_start_3, W, 1
$0342 $6F72 MOVWF sdlib_sd_send_command_param_address_3, 1
$0344 $5163 MOVF sdlib_sd_write_sector_local_byte_start_4, W, 1
$0346 $6F73 MOVWF sdlib_sd_send_command_param_address_4, 1
$0348 $0EFF MOVLW 255
$034A $6F74 MOVWF sdlib_sd_send_command_param_crc, 1
$034C $EC67 F000 CALL sdlib_sd_send_command
$0350 $516B MOVF sdlib_sd_send_command_local_result, W, 1
$0352 $6F5D MOVWF sdlib_sd_write_sector_local_result, 1
$0354 $0E00 MOVLW 0
$0356 $5D5D SUBWF sdlib_sd_write_sector_local_result, W, 1
$0358 $E003 BZ sdlib_L_51
$035A $ sdlib_L_50:
$035A $0EFF MOVLW 255
$035C $6E01 MOVWF STACK_1, 0
$035E $D001 BRA sdlib_L_53
$0360 $ sdlib_L_51:
$0360 $6A01 CLRF STACK_1, 0
$0362 $ sdlib_L_53:
$0362 $0EFF MOVLW 255
$0364 $5C01 SUBWF STACK_1, W, 0
$0366 $E103 BNZ sdlib_L_55
$0368 $ sdlib_L_54:
$0368 $0E01 MOVLW 1
$036A $6F5D MOVWF sdlib_sd_write_sector_local_result, 1
$036C $0012 return
$036E $ sdlib_L_55:
$036E $ sdlib_L_52:
$036E $0EFF MOVLW 255
$0370 $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$0372 $EC1B F000 CALL sdlib_sd_spi
$0376 $0EFF MOVLW 255
$0378 $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$037A $EC1B F000 CALL sdlib_sd_spi
$037E $0EFE MOVLW 254
$0380 $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$0382 $EC1B F000 CALL sdlib_sd_spi
$0386 $6B5E CLRF sdlib_sd_write_sector_local_i_1, 1
$0388 $6B5F CLRF sdlib_sd_write_sector_local_i_2, 1
$038A $ sdlib_L_56:
$038A $0EFF MOVLW 255
$038C $6E02 MOVWF STACK_2, 0
$038E $0E01 MOVLW 1
$0390 $6E03 MOVWF STACK_3, 0
$0392 $80D8 BSF STATUS, C, 0
$0394 $BF5F BTFSC sdlib_sd_write_sector_local_i_2, 7, 1
$0396 $D005 BRA sdlib_L_59
$0398 $515F MOVF sdlib_sd_write_sector_local_i_2, W, 1
$039A $5C03 SUBWF STACK_3, W, 0
$039C $E102 BNZ sdlib_L_59
$039E $515E MOVF sdlib_sd_write_sector_local_i_1, W, 1
$03A0 $5C02 SUBWF STACK_2, W, 0
$03A2 $ sdlib_L_59:
$03A2 $E312 BNC sdlib_L_58
$03A4 $ sdlib_L_57:
$03A4 $5169 MOVF sdlib_sd_write_sector_param_data_1, W, 1
$03A6 $6EE9 MOVWF FSR0L, 0
$03A8 $516A MOVF sdlib_sd_write_sector_param_data_2, W, 1
$03AA $6EEA MOVWF FSR0H, 0
$03AC $515E MOVF sdlib_sd_write_sector_local_i_1, W, 1
$03AE $26E9 ADDWF FSR0L, F, 0
$03B0 $515F MOVF sdlib_sd_write_sector_local_i_2, W, 1
$03B2 $22EA ADDWFC FSR0H, F, 0
$03B4 $50EF MOVF INDF0, W, 0
$03B6 $6F64 MOVWF sdlib_sd_write_sector_local_tmp, 1
$03B8 $5164 MOVF sdlib_sd_write_sector_local_tmp, W, 1
$03BA $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$03BC $EC1B F000 CALL sdlib_sd_spi
$03C0 $2B5E INCF sdlib_sd_write_sector_local_i_1, F, 1
$03C2 $B4D8 BTFSC STATUS, Z, 0
$03C4 $2B5F INCF sdlib_sd_write_sector_local_i_2, F, 1
$03C6 $D7E1 BRA sdlib_L_56
$03C8 $ sdlib_L_58:
$03C8 $0EFF MOVLW 255
$03CA $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$03CC $EC1B F000 CALL sdlib_sd_spi
$03D0 $0EFF MOVLW 255
$03D2 $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$03D4 $EC1B F000 CALL sdlib_sd_spi
$03D8 $0EFF MOVLW 255
$03DA $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$03DC $EC1B F000 CALL sdlib_sd_spi
$03E0 $5175 MOVF sdlib_sd_spi_local_result, W, 1
$03E2 $6F5E MOVWF sdlib_sd_write_sector_local_i_1, 1
$03E4 $6B5F CLRF sdlib_sd_write_sector_local_i_2, 1
$03E6 $0E1F MOVLW 31
$03E8 $155E ANDWF sdlib_sd_write_sector_local_i_1, W, 1
$03EA $6E00 MOVWF STACK_0, 0
$03EC $6A01 CLRF STACK_1, 0
$03EE $5000 MOVF STACK_0, W, 0
$03F0 $6F5E MOVWF sdlib_sd_write_sector_local_i_1, 1
$03F2 $5001 MOVF STACK_1, W, 0
$03F4 $6F5F MOVWF sdlib_sd_write_sector_local_i_2, 1
$03F6 $0E05 MOVLW 5
$03F8 $6E02 MOVWF STACK_2, 0
$03FA $94D8 BCF STATUS, Z, 0
$03FC $BF5F BTFSC sdlib_sd_write_sector_local_i_2, 7, 1
$03FE $D005 BRA sdlib_L_64
$0400 $0E00 MOVLW 0
$0402 $5D5F SUBWF sdlib_sd_write_sector_local_i_2, W, 1
$0404 $E102 BNZ sdlib_L_64
$0406 $5002 MOVF STACK_2, W, 0
$0408 $5D5E SUBWF sdlib_sd_write_sector_local_i_1, W, 1
$040A $ sdlib_L_64:
$040A $E003 BZ sdlib_L_62
$040C $ sdlib_L_61:
$040C $0EFF MOVLW 255
$040E $6E01 MOVWF STACK_1, 0
$0410 $D001 BRA sdlib_L_65
$0412 $ sdlib_L_62:
$0412 $6A01 CLRF STACK_1, 0
$0414 $ sdlib_L_65:
$0414 $0EFF MOVLW 255
$0416 $5C01 SUBWF STACK_1, W, 0
$0418 $E103 BNZ sdlib_L_67
$041A $ sdlib_L_66:
$041A $0E02 MOVLW 2
$041C $6F5D MOVWF sdlib_sd_write_sector_local_result, 1
$041E $0012 return
$0420 $ sdlib_L_67:
$0420 $ sdlib_L_63:
$0420 $ sdlib_L_68:
$0420 $0EFF MOVLW 255
$0422 $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$0424 $EC1B F000 CALL sdlib_sd_spi
$0428 $0EFF MOVLW 255
$042A $5D75 SUBWF sdlib_sd_spi_local_result, W, 1
$042C $E003 BZ sdlib_L_70
$042E $ sdlib_L_69:
$042E $0EFF MOVLW 255
$0430 $6E01 MOVWF STACK_1, 0
$0432 $D001 BRA sdlib_L_71
$0434 $ sdlib_L_70:
$0434 $6A01 CLRF STACK_1, 0
$0436 $ sdlib_L_71:
$0436 $0EFF MOVLW 255
$0438 $5C01 SUBWF STACK_1, W, 0
$043A $E102 BNZ sdlib_L_73
$043C $ sdlib_L_72:
$043C $0000 nop
$043E $D7F0 BRA sdlib_L_68
$0440 $ sdlib_L_73:
$0440 $6B5D CLRF sdlib_sd_write_sector_local_result, 1
$0442 $0012 RETURN
$0444 $ sdlib_sd_read_cid:
$0444 $0102 MOVLB 2
$0446 $6B5E CLRF sdlib_sd_read_cid_local_i, 1
$0448 $ sdlib_L_74:
$0448 $0E0F MOVLW 15
$044A $6E01 MOVWF STACK_1, 0
$044C $515E MOVF sdlib_sd_read_cid_local_i, W, 1
$044E $5C01 SUBWF STACK_1, W, 0
$0450 $E30C BNC sdlib_L_76
$0452 $ sdlib_L_75:
$0452 $515F MOVF sdlib_sd_read_cid_param_data_for_registers_1, W, 1
$0454 $6EE9 MOVWF FSR0L, 0
$0456 $5160 MOVF sdlib_sd_read_cid_param_data_for_registers_2, W, 1
$0458 $6EEA MOVWF FSR0H, 0
$045A $515E MOVF sdlib_sd_read_cid_local_i, W, 1
$045C $26E9 ADDWF FSR0L, F, 0
$045E $E301 BNC sdlib_L_77
$0460 $2AEA INCF FSR0H, F, 0
$0462 $ sdlib_L_77:
$0462 $0E00 MOVLW 0
$0464 $6EEF MOVWF INDF0, 0
$0466 $2B5E INCF sdlib_sd_read_cid_local_i, F, 1
$0468 $D7EF BRA sdlib_L_74
$046A $ sdlib_L_76:
$046A $0E0A MOVLW 10
$046C $6F6F MOVWF sdlib_sd_send_command_param_partial_cmm, 1
$046E $6B70 CLRF sdlib_sd_send_command_param_address_1, 1
$0470 $6B71 CLRF sdlib_sd_send_command_param_address_2, 1
$0472 $6B72 CLRF sdlib_sd_send_command_param_address_3, 1
$0474 $6B73 CLRF sdlib_sd_send_command_param_address_4, 1
$0476 $0EFF MOVLW 255
$0478 $6F74 MOVWF sdlib_sd_send_command_param_crc, 1
$047A $EC67 F000 CALL sdlib_sd_send_command
$047E $0E00 MOVLW 0
$0480 $5D6B SUBWF sdlib_sd_send_command_local_result, W, 1
$0482 $E003 BZ sdlib_L_79
$0484 $ sdlib_L_78:
$0484 $0EFF MOVLW 255
$0486 $6E01 MOVWF STACK_1, 0
$0488 $D001 BRA sdlib_L_81
$048A $ sdlib_L_79:
$048A $6A01 CLRF STACK_1, 0
$048C $ sdlib_L_81:
$048C $0EFF MOVLW 255
$048E $5C01 SUBWF STACK_1, W, 0
$0490 $E103 BNZ sdlib_L_83
$0492 $ sdlib_L_82:
$0492 $0E01 MOVLW 1
$0494 $6F5D MOVWF sdlib_sd_read_cid_local_result, 1
$0496 $0012 return
$0498 $ sdlib_L_83:
$0498 $ sdlib_L_80:
$0498 $6B5E CLRF sdlib_sd_read_cid_local_i, 1
$049A $ sdlib_L_84:
$049A $0E0F MOVLW 15
$049C $6E01 MOVWF STACK_1, 0
$049E $515E MOVF sdlib_sd_read_cid_local_i, W, 1
$04A0 $5C01 SUBWF STACK_1, W, 0
$04A2 $E310 BNC sdlib_L_86
$04A4 $ sdlib_L_85:
$04A4 $0EFF MOVLW 255
$04A6 $6F76 MOVWF sdlib_sd_spi_param_data_out, 1
$04A8 $EC1B F000 CALL sdlib_sd_spi
$04AC $515F MOVF sdlib_sd_read_cid_param_data_for_registers_1, W, 1
$04AE $6EE9 MOVWF FSR0L, 0
$04B0 $5160 MOVF sdlib_sd_read_cid_param_data_for_registers_2, W, 1
$04B2 $6EEA MOVWF FSR0H, 0
$04B4 $515E MOVF sdlib_sd_read_cid_local_i, W, 1
$04B6 $26E9 ADDWF FSR0L, F, 0
$04B8 $E301 BNC sdlib_L_87
$04BA $2AEA INCF FSR0H, F, 0
$04BC $ sdlib_L_87:
$04BC $5175 MOVF sdlib_sd_spi_local_result, W, 1
$04BE $6EEF MOVWF INDF0, 0
$04C0 $2B5E INCF sdlib_sd_read_cid_local_i, F, 1
$04C2 $D7EB BRA sdlib_L_84
$04C4 $ sdlib_L_86:
$04C4 $6B5D CLRF sdlib_sd_read_cid_local_result, 1
$04C6 $0012 RETURN
$04C8 $ SD_test_printhex:
$04C8 $0102 MOVLB 2
$04CA $0EF0 MOVLW 240
$04CC $155F ANDWF sd_test_printhex_param_ix, W, 1
$04CE $6F5D MOVWF sd_test_printhex_local_hix, 1
$04D0 $515D MOVF sd_test_printhex_local_hix, W, 1
$04D2 $6E00 MOVWF STACK_0, 0
$04D4 $0E04 MOVLW 4
$04D6 $6E01 MOVWF STACK_1, 0
$04D8 $ SD_test_L_0:
$04D8 $0E00 MOVLW 0
$04DA $5C01 SUBWF STACK_1, W, 0
$04DC $E004 BZ SD_test_L_1
$04DE $3200 RRCF STACK_0, F, 0
$04E0 $9E00 BCF STACK_0, 7, 0
$04E2 $2E01 DECFSZ STACK_1, F, 0
$04E4 $D7F9 BRA SD_test_L_0
$04E6 $ SD_test_L_1:
$04E6 $5000 MOVF STACK_0, W, 0
$04E8 $6F5D MOVWF sd_test_printhex_local_hix, 1
$04EA $0E30 MOVLW $30
$04EC $255D ADDWF sd_test_printhex_local_hix, W, 1
$04EE $6F5D MOVWF sd_test_printhex_local_hix, 1
$04F0 $0E39 MOVLW 57
$04F2 $6E02 MOVWF STACK_2, 0
$04F4 $515D MOVF sd_test_printhex_local_hix, W, 1
$04F6 $5C02 SUBWF STACK_2, W, 0
$04F8 $E203 BC SD_test_L_3
$04FA $ SD_test_L_2:
$04FA $0EFF MOVLW 255
$04FC $6E01 MOVWF STACK_1, 0
$04FE $D001 BRA SD_test_L_5
$0500 $ SD_test_L_3:
$0500 $6A01 CLRF STACK_1, 0
$0502 $ SD_test_L_5:
$0502 $0EFF MOVLW 255
$0504 $5C01 SUBWF STACK_1, W, 0
$0506 $E103 BNZ SD_test_L_7
$0508 $ SD_test_L_6:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -