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

📄 sd_test.asm

📁 mmc/sd卡的实现源码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;//  ASM code generated by mikroVirtualMachine for PIC - V. 3.0.0.0
;  Date/Time: 2.6.2005 15:28:47
;  Info: http://www.mikroelektronika.co.yu


;// ADDRESS	OPCODE	ASM
; ----------------------------------------------
$0000	$EFF9	F003	GOTO	SD_test_main
$0008	$	spilib_s_b_spi_read:
$0008	$0102	MOVLB	2
$000A	$5173	MOVF	spilib_s_b_spi_read_param_input, W, 1
$000C	$6EC9	MOVWF	SSPBUF, 0
$000E	$	spilib_s_b_L_24:
$000E	$0E00	MOVLW	0
$0010	$B0C7	BTFSC	SSPSTAT, 0, 0
$0012	$0E01	MOVLW	1
$0014	$6E01	MOVWF	STACK_1, 0
$0016	$0E00	MOVLW	0
$0018	$5C01	SUBWF	STACK_1, W, 0
$001A	$E103	BNZ	spilib_s_b_L_26
$001C	$	spilib_s_b_L_25:
$001C	$0EFF	MOVLW	255
$001E	$6E02	MOVWF	STACK_2, 0
$0020	$D001	BRA	spilib_s_b_L_27
$0022	$	spilib_s_b_L_26:
$0022	$6A02	CLRF	STACK_2, 0
$0024	$	spilib_s_b_L_27:
$0024	$0EFF	MOVLW	255
$0026	$5C02	SUBWF	STACK_2, W, 0
$0028	$E102	BNZ	spilib_s_b_L_29
$002A	$	spilib_s_b_L_28:
$002A	$0000	nop
$002C	$D7F0	BRA	spilib_s_b_L_24
$002E	$	spilib_s_b_L_29:
$002E	$50C9	MOVF	SSPBUF, W, 0
$0030	$6F72	MOVWF	spilib_s_b_spi_read_local_result, 1
$0032	$0012	RETURN
$0034	$	sdlib_sd_spi:
$0034	$0102	MOVLB	2
$0036	$5171	MOVF	sdlib_sd_spi_param_data_out, W, 1
$0038	$6F73	MOVWF	spilib_s_b_spi_read_param_input, 1
$003A	$EC04	F000	CALL	spilib_s_b_spi_read
$003E	$5172	MOVF	spilib_s_b_spi_read_local_result, W, 1
$0040	$6F70	MOVWF	sdlib_sd_spi_local_result, 1
$0042	$0012	RETURN
$0044	$	usartlib_u_a_usart_write:
$0044	$	usartlib_u_a_L_6:
$0044	$0E00	MOVLW	0
$0046	$B2AC	BTFSC	TXSTA, 1, 0
$0048	$0E01	MOVLW	1
$004A	$6E01	MOVWF	STACK_1, 0
$004C	$0E00	MOVLW	0
$004E	$5C01	SUBWF	STACK_1, W, 0
$0050	$E103	BNZ	usartlib_u_a_L_8
$0052	$	usartlib_u_a_L_7:
$0052	$0EFF	MOVLW	255
$0054	$6E02	MOVWF	STACK_2, 0
$0056	$D001	BRA	usartlib_u_a_L_9
$0058	$	usartlib_u_a_L_8:
$0058	$6A02	CLRF	STACK_2, 0
$005A	$	usartlib_u_a_L_9:
$005A	$0EFF	MOVLW	255
$005C	$5C02	SUBWF	STACK_2, W, 0
$005E	$E102	BNZ	usartlib_u_a_L_11
$0060	$	usartlib_u_a_L_10:
$0060	$0000	nop
$0062	$D7F0	BRA	usartlib_u_a_L_6
$0064	$	usartlib_u_a_L_11:
$0064	$0102	MOVLB	2
$0066	$5166	MOVF	usartlib_u_a_usart_write_param_data, W, 1
$0068	$6EAD	MOVWF	TXREG, 0
$006A	$0012	RETURN
$006C	$	spilib_s_b_spi_init_advanced:
$006C	$0ED7	MOVLW	215
$006E	$6E94	MOVWF	TRISC, 0
$0070	$6AC6	CLRF	SSPCON1, 0
$0072	$50C6	MOVF	SSPCON1, W, 0
$0074	$0102	MOVLB	2
$0076	$1166	IORWF	spilib_s_b_spi_init_advanced_param_master, W, 1
$0078	$6EC6	MOVWF	SSPCON1, 0
$007A	$50C6	MOVF	SSPCON1, W, 0
$007C	$1168	IORWF	spilib_s_b_spi_init_advanced_param_clock_idle, W, 1
$007E	$6EC6	MOVWF	SSPCON1, 0
$0080	$50C7	MOVF	SSPSTAT, W, 0
$0082	$1167	IORWF	spilib_s_b_spi_init_advanced_param_data_sample, W, 1
$0084	$6EC7	MOVWF	SSPSTAT, 0
$0086	$0E00	MOVLW	0
$0088	$5D68	SUBWF	spilib_s_b_spi_init_advanced_param_clock_idle, W, 1
$008A	$E003	BZ	spilib_s_b_L_1
$008C	$	spilib_s_b_L_0:
$008C	$0EFF	MOVLW	255
$008E	$6E01	MOVWF	STACK_1, 0
$0090	$D001	BRA	spilib_s_b_L_3
$0092	$	spilib_s_b_L_1:
$0092	$6A01	CLRF	STACK_1, 0
$0094	$	spilib_s_b_L_3:
$0094	$0EFF	MOVLW	255
$0096	$5C01	SUBWF	STACK_1, W, 0
$0098	$E10C	BNZ	spilib_s_b_L_5
$009A	$	spilib_s_b_L_4:
$009A	$0E00	MOVLW	0
$009C	$5D69	SUBWF	spilib_s_b_spi_init_advanced_param_low_to_high, W, 1
$009E	$E103	BNZ	spilib_s_b_L_7
$00A0	$	spilib_s_b_L_6:
$00A0	$0EFF	MOVLW	255
$00A2	$6E01	MOVWF	STACK_1, 0
$00A4	$D001	BRA	spilib_s_b_L_9
$00A6	$	spilib_s_b_L_7:
$00A6	$6A01	CLRF	STACK_1, 0
$00A8	$	spilib_s_b_L_9:
$00A8	$0EFF	MOVLW	255
$00AA	$5C01	SUBWF	STACK_1, W, 0
$00AC	$E101	BNZ	spilib_s_b_L_11
$00AE	$	spilib_s_b_L_10:
$00AE	$8CC7	BSF	SSPSTAT, 6, 0
$00B0	$	spilib_s_b_L_11:
$00B0	$	spilib_s_b_L_8:
$00B0	$D00B	BRA	spilib_s_b_L_2
$00B2	$	spilib_s_b_L_5:
$00B2	$0E01	MOVLW	1
$00B4	$5D69	SUBWF	spilib_s_b_spi_init_advanced_param_low_to_high, W, 1
$00B6	$E103	BNZ	spilib_s_b_L_13
$00B8	$	spilib_s_b_L_12:
$00B8	$0EFF	MOVLW	255
$00BA	$6E01	MOVWF	STACK_1, 0
$00BC	$D001	BRA	spilib_s_b_L_15
$00BE	$	spilib_s_b_L_13:
$00BE	$6A01	CLRF	STACK_1, 0
$00C0	$	spilib_s_b_L_15:
$00C0	$0EFF	MOVLW	255
$00C2	$5C01	SUBWF	STACK_1, W, 0
$00C4	$E101	BNZ	spilib_s_b_L_17
$00C6	$	spilib_s_b_L_16:
$00C6	$8CC7	BSF	SSPSTAT, 6, 0
$00C8	$	spilib_s_b_L_17:
$00C8	$	spilib_s_b_L_14:
$00C8	$	spilib_s_b_L_2:
$00C8	$8AC6	BSF	SSPCON1, 5, 0
$00CA	$0012	RETURN
$00CC	$	sdlib_sd_send_command:
$00CC	$501C	MOVF	sdlib_main_global_portaddress_1, W, 0
$00CE	$6EE9	MOVWF	FSR0L, 0
$00D0	$501D	MOVF	sdlib_main_global_portaddress_2, W, 0
$00D2	$6EEA	MOVWF	FSR0H, 0
$00D4	$50EF	MOVF	INDF0, W, 0
$00D6	$101E	IORWF	sdlib_main_global_mask1, W, 0
$00D8	$6EEF	MOVWF	INDF0, 0
$00DA	$0EFF	MOVLW	255
$00DC	$0102	MOVLB	2
$00DE	$6F71	MOVWF	sdlib_sd_spi_param_data_out, 1
$00E0	$EC1A	F000	CALL	sdlib_sd_spi
$00E4	$501C	MOVF	sdlib_main_global_portaddress_1, W, 0
$00E6	$6EE9	MOVWF	FSR0L, 0
$00E8	$501D	MOVF	sdlib_main_global_portaddress_2, W, 0
$00EA	$6EEA	MOVWF	FSR0H, 0
$00EC	$50EF	MOVF	INDF0, W, 0
$00EE	$141F	ANDWF	sdlib_main_global_mask0, W, 0
$00F0	$6EEF	MOVWF	INDF0, 0
$00F2	$0E40	MOVLW	0x40
$00F4	$256A	ADDWF	sdlib_sd_send_command_param_partial_cmm, W, 1
$00F6	$6F71	MOVWF	sdlib_sd_spi_param_data_out, 1
$00F8	$EC1A	F000	CALL	sdlib_sd_spi
$00FC	$516E	MOVF	sdlib_sd_send_command_param_address_4, W, 1
$00FE	$6F71	MOVWF	sdlib_sd_spi_param_data_out, 1
$0100	$EC1A	F000	CALL	sdlib_sd_spi
$0104	$516D	MOVF	sdlib_sd_send_command_param_address_3, W, 1
$0106	$6F71	MOVWF	sdlib_sd_spi_param_data_out, 1
$0108	$EC1A	F000	CALL	sdlib_sd_spi
$010C	$516C	MOVF	sdlib_sd_send_command_param_address_2, W, 1
$010E	$6F71	MOVWF	sdlib_sd_spi_param_data_out, 1
$0110	$EC1A	F000	CALL	sdlib_sd_spi
$0114	$516B	MOVF	sdlib_sd_send_command_param_address_1, W, 1
$0116	$6F71	MOVWF	sdlib_sd_spi_param_data_out, 1
$0118	$EC1A	F000	CALL	sdlib_sd_spi
$011C	$516F	MOVF	sdlib_sd_send_command_param_crc, W, 1
$011E	$6F71	MOVWF	sdlib_sd_spi_param_data_out, 1
$0120	$EC1A	F000	CALL	sdlib_sd_spi
$0124	$0EFF	MOVLW	255
$0126	$6F71	MOVWF	sdlib_sd_spi_param_data_out, 1
$0128	$EC1A	F000	CALL	sdlib_sd_spi
$012C	$5170	MOVF	sdlib_sd_spi_local_result, W, 1
$012E	$6F67	MOVWF	sdlib_sd_send_command_local_res, 1
$0130	$6B68	CLRF	sdlib_sd_send_command_local_timeout_1, 1
$0132	$6B69	CLRF	sdlib_sd_send_command_local_timeout_2, 1
$0134	$	sdlib_L_0:
$0134	$0E00	MOVLW	0
$0136	$5D67	SUBWF	sdlib_sd_send_command_local_res, W, 1
$0138	$E003	BZ	sdlib_L_2
$013A	$	sdlib_L_1:
$013A	$0EFF	MOVLW	255
$013C	$6E01	MOVWF	STACK_1, 0
$013E	$D001	BRA	sdlib_L_3
$0140	$	sdlib_L_2:
$0140	$6A01	CLRF	STACK_1, 0
$0142	$	sdlib_L_3:
$0142	$0E01	MOVLW	1
$0144	$5D67	SUBWF	sdlib_sd_send_command_local_res, W, 1
$0146	$E003	BZ	sdlib_L_5
$0148	$	sdlib_L_4:
$0148	$0EFF	MOVLW	255
$014A	$6E02	MOVWF	STACK_2, 0
$014C	$D001	BRA	sdlib_L_6
$014E	$	sdlib_L_5:
$014E	$6A02	CLRF	STACK_2, 0
$0150	$	sdlib_L_6:
$0150	$5001	MOVF	STACK_1, W, 0
$0152	$1402	ANDWF	STACK_2, W, 0
$0154	$6E00	MOVWF	STACK_0, 0
$0156	$0E20	MOVLW	32
$0158	$6E04	MOVWF	STACK_4, 0
$015A	$0E4E	MOVLW	78
$015C	$5D69	SUBWF	sdlib_sd_send_command_local_timeout_2, W, 1
$015E	$E102	BNZ	sdlib_L_9
$0160	$5004	MOVF	STACK_4, W, 0
$0162	$5D68	SUBWF	sdlib_sd_send_command_local_timeout_1, W, 1
$0164	$	sdlib_L_9:
$0164	$E203	BC	sdlib_L_8
$0166	$	sdlib_L_7:
$0166	$0EFF	MOVLW	255
$0168	$6E03	MOVWF	STACK_3, 0
$016A	$D001	BRA	sdlib_L_10
$016C	$	sdlib_L_8:
$016C	$6A03	CLRF	STACK_3, 0
$016E	$	sdlib_L_10:
$016E	$5003	MOVF	STACK_3, W, 0
$0170	$1600	ANDWF	STACK_0, F, 0
$0172	$0EFF	MOVLW	255
$0174	$5C00	SUBWF	STACK_0, W, 0
$0176	$E10A	BNZ	sdlib_L_12
$0178	$	sdlib_L_11:
$0178	$0EFF	MOVLW	255
$017A	$6F71	MOVWF	sdlib_sd_spi_param_data_out, 1
$017C	$EC1A	F000	CALL	sdlib_sd_spi
$0180	$5170	MOVF	sdlib_sd_spi_local_result, W, 1
$0182	$6F67	MOVWF	sdlib_sd_send_command_local_res, 1
$0184	$2B68	INCF	sdlib_sd_send_command_local_timeout_1, F, 1
$0186	$B4D8	BTFSC	STATUS, Z, 0
$0188	$2B69	INCF	sdlib_sd_send_command_local_timeout_2, F, 1
$018A	$D7D4	BRA	sdlib_L_0
$018C	$	sdlib_L_12:
$018C	$5167	MOVF	sdlib_sd_send_command_local_res, W, 1
$018E	$6F66	MOVWF	sdlib_sd_send_command_local_result, 1
$0190	$0012	RETURN
$0192	$	delays_delay_1us:
$0192	$0000	nop
$0194	$0000	nop
$0196	$0012	RETURN
$0198	$	delays_delay_5500us:
$0198	$0E0F	MOVLW	15
$019A	$6E00	MOVWF	STACK_0, 0
$019C	$0EFF	MOVLW	255
$019E	$6E01	MOVWF	STACK_1, 0
$01A0	$	delays_L_8:
$01A0	$2E00	DECFSZ	STACK_0, F, 0
$01A2	$D001	BRA	delays_L_9
$01A4	$D003	BRA	delays_L_10
$01A6	$	delays_L_9:
$01A6	$2E01	DECFSZ	STACK_1,F, 0
$01A8	$D7FE	BRA	delays_L_9
$01AA	$D7FA	BRA	delays_L_8
$01AC	$	delays_L_10:
$01AC	$0E3E	MOVLW	62
$01AE	$6E00	MOVWF	STACK_0, 0
$01B0	$	delays_L_11:
$01B0	$2E00	DECFSZ	STACK_0, F, 0
$01B2	$D7FE	BRA	delays_L_11
$01B4	$0000	NOP
$01B6	$0012	RETURN
$01B8	$	delays_delay_50us:
$01B8	$0E21	MOVLW	33
$01BA	$6E00	MOVWF	STACK_0, 0
$01BC	$	delays_L_2:
$01BC	$2E00	DECFSZ	STACK_0, F, 0
$01BE	$D7FE	BRA	delays_L_2
$01C0	$0012	RETURN
$01C2	$	SD_test_printhex:
$01C2	$0EF0	MOVLW	240
$01C4	$0102	MOVLB	2
$01C6	$155A	ANDWF	sd_test_printhex_param_ix, W, 1
$01C8	$6F58	MOVWF	sd_test_printhex_local_hix, 1
$01CA	$5158	MOVF	sd_test_printhex_local_hix, W, 1
$01CC	$6E00	MOVWF	STACK_0, 0
$01CE	$0E04	MOVLW	4
$01D0	$6E01	MOVWF	STACK_1, 0
$01D2	$	SD_test_L_0:
$01D2	$0E00	MOVLW	0
$01D4	$5C01	SUBWF	STACK_1, W, 0
$01D6	$E004	BZ	SD_test_L_1
$01D8	$3200	RRCF	STACK_0, F, 0
$01DA	$9E00	BCF	STACK_0, 7, 0
$01DC	$2E01	DECFSZ	STACK_1, F, 0
$01DE	$D7F9	BRA	SD_test_L_0
$01E0	$	SD_test_L_1:
$01E0	$5000	MOVF	STACK_0, W, 0
$01E2	$6F58	MOVWF	sd_test_printhex_local_hix, 1
$01E4	$0E30	MOVLW	$30
$01E6	$2558	ADDWF	sd_test_printhex_local_hix, W, 1
$01E8	$6F58	MOVWF	sd_test_printhex_local_hix, 1
$01EA	$0E39	MOVLW	57
$01EC	$6E02	MOVWF	STACK_2, 0
$01EE	$5158	MOVF	sd_test_printhex_local_hix, W, 1
$01F0	$5C02	SUBWF	STACK_2, W, 0
$01F2	$E203	BC	SD_test_L_3
$01F4	$	SD_test_L_2:
$01F4	$0EFF	MOVLW	255
$01F6	$6E01	MOVWF	STACK_1, 0
$01F8	$D001	BRA	SD_test_L_5
$01FA	$	SD_test_L_3:
$01FA	$6A01	CLRF	STACK_1, 0
$01FC	$	SD_test_L_5:
$01FC	$0EFF	MOVLW	255
$01FE	$5C01	SUBWF	STACK_1, W, 0
$0200	$E103	BNZ	SD_test_L_7
$0202	$	SD_test_L_6:
$0202	$0E07	MOVLW	7
$0204	$2558	ADDWF	sd_test_printhex_local_hix, W, 1
$0206	$6F58	MOVWF	sd_test_printhex_local_hix, 1
$0208	$	SD_test_L_7:
$0208	$	SD_test_L_4:
$0208	$0E0F	MOVLW	15
$020A	$155A	ANDWF	sd_test_printhex_param_ix, W, 1
$020C	$6F59	MOVWF	sd_test_printhex_local_lox, 1
$020E	$0E30	MOVLW	$30
$0210	$2759	ADDWF	sd_test_printhex_local_lox, F, 1
$0212	$0E39	MOVLW	57
$0214	$6E02	MOVWF	STACK_2, 0
$0216	$5159	MOVF	sd_test_printhex_local_lox, W, 1
$0218	$5C02	SUBWF	STACK_2, W, 0
$021A	$E203	BC	SD_test_L_9
$021C	$	SD_test_L_8:
$021C	$0EFF	MOVLW	255
$021E	$6E01	MOVWF	STACK_1, 0
$0220	$D001	BRA	SD_test_L_11
$0222	$	SD_test_L_9:
$0222	$6A01	CLRF	STACK_1, 0
$0224	$	SD_test_L_11:
$0224	$0EFF	MOVLW	255
$0226	$5C01	SUBWF	STACK_1, W, 0
$0228	$E103	BNZ	SD_test_L_13
$022A	$	SD_test_L_12:
$022A	$0E07	MOVLW	7
$022C	$2559	ADDWF	sd_test_printhex_local_lox, W, 1
$022E	$6F59	MOVWF	sd_test_printhex_local_lox, 1
$0230	$	SD_test_L_13:
$0230	$	SD_test_L_10:
$0230	$5158	MOVF	sd_test_printhex_local_hix, W, 1
$0232	$6F66	MOVWF	usartlib_u_a_usart_write_param_data, 1
$0234	$EC22	F000	CALL	usartlib_u_a_usart_write
$0238	$5159	MOVF	sd_test_printhex_local_lox, W, 1
$023A	$6F66	MOVWF	usartlib_u_a_usart_write_param_data, 1
$023C	$EC22	F000	CALL	usartlib_u_a_usart_write
$0240	$0012	RETURN
$0242	$	SD_test_usart_out:
$0242	$0102	MOVLB	2
$0244	$6B58	CLRF	sd_test_usart_out_local_im, 1
$0246	$515A	MOVF	sd_test_usart_out_param_text_1, W, 1
$0248	$6EE9	MOVWF	FSR0L, 0
$024A	$515B	MOVF	sd_test_usart_out_param_text_2, W, 1
$024C	$6EEA	MOVWF	FSR0H, 0
$024E	$50EF	MOVF	INDF0, W, 0
$0250	$6F59	MOVWF	sd_test_usart_out_local_jm, 1
$0252	$	SD_test_L_14:
$0252	$0E00	MOVLW	0
$0254	$5D59	SUBWF	sd_test_usart_out_local_jm, W, 1
$0256	$E003	BZ	SD_test_L_16
$0258	$	SD_test_L_15:
$0258	$0EFF	MOVLW	255
$025A	$6E01	MOVWF	STACK_1, 0
$025C	$D001	BRA	SD_test_L_17
$025E	$	SD_test_L_16:
$025E	$6A01	CLRF	STACK_1, 0
$0260	$	SD_test_L_17:
$0260	$0EFF	MOVLW	255
$0262	$5C01	SUBWF	STACK_1, W, 0
$0264	$E110	BNZ	SD_test_L_19
$0266	$	SD_test_L_18:
$0266	$5159	MOVF	sd_test_usart_out_local_jm, W, 1
$0268	$6F66	MOVWF	usartlib_u_a_usart_write_param_data, 1

⌨️ 快捷键说明

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