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

📄 uart.asm

📁 富士通芯片 32位MCU各项机能应用实例的C语言例程
💻 ASM
字号:
//					FR Family SOFTUNE cpcom V65L04
	.program	"uart"
	.library	"lib911.lib"
	._LANGUAGE	C_FR20, N, U, F
	._FILE	"D:\kongou\MAE\soft\sample_soft\200803_Sample\MB91635\MF_UART_91635\uart.c", 0
	._FILE	"..\IOH_MB91635_V01L02\mb91635.h", 1
	._FILE	"..\IOH_MB91635_V01L02\_fr.h", 2
	._BTYPE	0x80000001, 1
	._BTYPE	0x80000002, 1
	._BTYPE	0x80000003, 2
	._BTYPE	0x80000004, 2
	._BTYPE	0x80000005, 4
	._BTYPE	0x80000006, 4
	._BTYPE	0x80000007, 4
	._BTYPE	0x80000008, 4
	._BTYPE	0x80000009, 1
	._BTYPE	0x8000000a, 2
	._BTYPE	0x8000000b, 4
	._BTYPE	0x8000000c, 8
	._BTYPE	0x8000000d, 8
	._BTYPE	0x8000000e, 1
	._BTYPE	0x8000000f, 0
	._BTYPE	0x80000010, 8
	._BTYPE	0x80000011, 8
	.global	_IO_PDR0
	.global	_IO_PDR1
	.global	_IO_PDR2
	.global	_IO_PDR3
	.global	_IO_PDR4
	.global	_IO_PDR5
	.global	_IO_PDR6
	.global	_IO_PDR7
	.global	_IO_PDR8
	.global	_IO_PDR9
	.global	_IO_PDRA
	.global	_IO_PDRB
	.global	_IO_PDRC
	.global	_IO_PDRG
	.global	_IO_PDRH
	.global	_IO_PDRI
	.global	_IO_PDRK
	.global	_IO_WDTCR0
	.global	_IO_WDTCPR0
	.global	_IO_EIRR0
	.global	_IO_ENIR0
	.global	_IO_ELVR0
	.global	_IO_DICR
	.global	_IO_TMRLRA0
	.global	_IO_TMR0
	.global	_IO_TMCSR0
	.global	_IO_TMRLRA1
	.global	_IO_TMR1
	.global	_IO_TMCSR1
	.global	_IO_TMRLRA2
	.global	_IO_TMR2
	.global	_IO_TMCSR2
	.global	_IO_UART0
	.global	_IO_UART1
	.global	_IO_UART2
	.global	_IO_UART3
	.global	_IO_UART4
	.global	_IO_UART5
	.global	_IO_UART6
	.global	_IO_UART7
	.global	_IO_UART0_I2C0
	.global	_IO_RDRM0123
	.global	_IO_RDRM4567
	.global	_IO_SSEL0123
	.global	_IO_SSEL4567
	.global	_IO_UART8
	.global	_IO_UART9
	.global	_IO_UART10
	.global	_IO_UART11
	.global	_IO_EIRR1
	.global	_IO_ENIR1
	.global	_IO_ELVR1
	.global	_IO_EIRR2
	.global	_IO_ENIR2
	.global	_IO_ELVR2
	.global	_IO_EIRR3
	.global	_IO_ENIR3
	.global	_IO_ELVR3
	.global	_IO_AD0
	.global	_IO_BT0
	.global	_IO_BT1
	.global	_IO_BT2
	.global	_IO_BT3
	.global	_IO_BTSEL0123
	.global	_IO_DAC
	.global	_IO_AD1
	.global	_IO_ADCHE
	.global	_IO_IRPR
	.global	_IO_UD0
	.global	_IO_UD1
	.global	_IO_UD2
	.global	_IO_UD3
	.global	_IO_CPCLR0
	.global	_IO_TCDT0
	.global	_IO_TCCSH0
	.global	_IO_TCCSL0
	.global	_IO_IPCP0
	.global	_IO_IPCP1
	.global	_IO_IPCP2
	.global	_IO_IPCP3
	.global	_IO_ICS01
	.global	_IO_ICS23
	.global	_IO_IPCP4
	.global	_IO_IPCP5
	.global	_IO_IPCP6
	.global	_IO_IPCP7
	.global	_IO_ICS45
	.global	_IO_ICS67
	.global	_IO_OCCP0
	.global	_IO_OCCP1
	.global	_IO_OCCP2
	.global	_IO_OCCP3
	.global	_IO_OCS01
	.global	_IO_OCS23
	.global	_IO_OCCP4
	.global	_IO_OCCP5
	.global	_IO_OCCP6
	.global	_IO_OCCP7
	.global	_IO_OCS45
	.global	_IO_OCS67
	.global	_IO_FRTSEL
	.global	_IO_CPCLR1
	.global	_IO_TCDT1
	.global	_IO_TCCSH1
	.global	_IO_TCCSL1
	.global	_IO_FCTLR
	.global	_IO_FSTR
	.global	_IO_WREN
	.global	_IO_WRAR00
	.global	_IO_WRDR00
	.global	_IO_WRAR01
	.global	_IO_WRDR01
	.global	_IO_WRAR02
	.global	_IO_WRDR02
	.global	_IO_WRAR03
	.global	_IO_WRDR03
	.global	_IO_WRAR04
	.global	_IO_WRDR04
	.global	_IO_WRAR05
	.global	_IO_WRDR05
	.global	_IO_WRAR06
	.global	_IO_WRDR06
	.global	_IO_WRAR07
	.global	_IO_WRDR07
	.global	_IO_WRAR08
	.global	_IO_WRDR08
	.global	_IO_WRAR09
	.global	_IO_WRDR09
	.global	_IO_WRAR10
	.global	_IO_WRDR10
	.global	_IO_WRAR11
	.global	_IO_WRDR11
	.global	_IO_WRAR12
	.global	_IO_WRDR12
	.global	_IO_WRAR13
	.global	_IO_WRDR13
	.global	_IO_WRAR14
	.global	_IO_WRDR14
	.global	_IO_WRAR15
	.global	_IO_WRDR15
	.global	_IO_PORT1
	.global	_IO_ICR
	.global	_IO_CLK
	.global	_IO_IORR
	.global	_IO_PORT2
	.global	_IO_PORT3
	.global	_IO_ICSEL
	.global	_IO_CLKG
	.global	_IO_WTC
	.global	_IO_EBUS
	.global	_IO_DMAC
	.global	_IO_DNMIR
	.global	_IO_DILVR
	.global	_IO_DMACR
	.global	_IO_BT4
	.global	_IO_BT5
	.global	_IO_BT6
	.global	_IO_BT7
	.global	_IO_BTSEL4567
	.global	_IO_BT8
	.global	_IO_BT9
	.global	_IO_BTA
	.global	_IO_BTB
	.global	_IO_BTSEL89AB
	.global	_IO_BTC
	.global	_IO_BTD
	.global	_IO_BTE
	.global	_IO_BTF
	.global	_IO_BTSELCDEF
	.global	_IO_BTSSSR
	.section	DATA, DATA, align=4
	.global	_receive_data
	.align	1
_receive_data:
	.res.b	16
	.section	INIT, DATA, align=4
	.global	_rxnum
	.align	1
_rxnum:
	.byte	0
	.global	_num
_num:
	.byte	0
	.section	CODE, CODE, align=2
	.global	_Asynch_UART8
	._SYMBOL	"Asynch_UART8", F, 0x8000000f, E, "_Asynch_UART8", F
	._FPARAM	S, 0, F
	._FPARAM	E
	._CONFIG	S, F, 1
	._LINE	0, 20
_Asynch_UART8:
L_20:
	ST	RP,@-SP
	ENTER	#4
	ST	R8,@-SP
;-------end_of_no_optimize_block
	._FUNCTION	"fp", "fp", 16
	._CONFIG	S, B
L_21:				// Pred: L_20
	._LINE	0, 22
	LDI:32	#_IO_PORT2+4,R0
	LDI	#1,R1
	STB	R1,@R0	; _IO_PORT2
	._LINE	0, 23
	LDI:32	#_IO_PORT3+14,R0
	LDI	#10,R1
	STB	R1,@R0	; _IO_PORT3
	._LINE	0, 25
	LDI:32	#_IO_ICR+23,R0
	LDI	#16,R1
	STB	R1,@R0
	._LINE	0, 28
	LDI:20	#_IO_UART8,R8
	BOR	#0x80,@R8
	._LINE	0, 30
	LDI	#0,R0
	MOV	R0,R13
	DMOVB	R13,@_IO_UART8+1	; _IO_UART8
	._LINE	0, 31
	LDI:20	#_IO_UART8+1,R12
	BAND	#0xF7,@R12
	._LINE	0, 32
	BAND	#0xFB,@R12
	._LINE	0, 33
	BOR	#0x1,@R12
	._LINE	0, 36
	LDI	#1562,R13
	DMOVH	R13,@_IO_UART8+6	; _IO_UART8
	._LINE	0, 39
	MOV	R0,R13
	DMOVB	R13,@_IO_UART8+12	; _IO_UART8
	._LINE	0, 40
	LDI	#3,R13
	DMOVB	R13,@_IO_UART8+13	; _IO_UART8
	._LINE	0, 41
	LDI:20	#_IO_UART8+13,R12
	BOR	#0x4,@R12
	._LINE	0, 44
	MOV	R1,R13
	DMOVB	R13,@_IO_UART8+14	; _IO_UART8
	._LINE	0, 45
	MOV	R0,R13
	DMOVB	R13,@_IO_UART8+15	; _IO_UART8
	._LINE	0, 48
	BOR	#0x10,@R8
	._LINE	0, 49
	BAND	#0xF7,@R8
	._LINE	0, 50
	BAND	#0xFB,@R8
	._LINE	0, 51
	BOR	#0x2,@R8
	._LINE	0, 54
	DMOVB	R13,@_IO_UART8+3	; _IO_UART8
	._LINE	0, 55
	LDI:20	#_IO_UART8+3,R12
	BOR	#0x10,@R12
	._LINE	0, 57
	CALL32	_make_tx_data,R12
	._LINE	0, 59
	BOR	#0x1,@R8
L_22:				// Pred: L_21
	._LINE	0, 59
	._CONFIG	E
	._LINE	0, 60
	LD	@SP+,R8
	LEAVE
	LD	@SP+,RP
	RET
	._CONFIG	E
	.global	_make_tx_data
	._SYMBOL	"make_tx_data", F, 0x8000000f, E, "_make_tx_data", F
	._FPARAM	S, 0, F
	._FPARAM	E
	._CONFIG	S, F, 1
	._LINE	0, 65
_make_tx_data:
L_40:
	ST	RP,@-SP
	ENTER	#4
;-------end_of_no_optimize_block
	._FUNCTION	"fp", "fp", 16
	._CONFIG	S, B
L_41:				// Pred: L_40
	._LINE	0, 67
	LDI:32	#_num,R0
	LDUB	@R0,R1	; _num
	LDI	#16,R12
	CMP	R12,R1
	BGE32	L_46,R12
L_42:				// Pred: L_41
	._LINE	0, 67
L_43:				// Pred: L_58 L_42
	._LINE	0, 67
	._LINE	0, 68
	LDUB	@R0,R13	; _num
	DMOVH	R13,@_IO_UART8+4	; _IO_UART8
	._LINE	0, 69
	LDUB	@R0,R1	; _num
	ADDN	#1,R1
	STB	R1,@R0	; _num
	._LINE	0, 70
L_44:				// Pred: L_43
	._LINE	0, 67
	LDUB	@R0,R1	; _num
	LDI	#16,R12
	CMP	R12,R1
	BGE32	L_46,R12
L_58:				// Pred: L_44
	._LINE	0, 70
	BRA32	L_43,R12
L_46:				// Pred: L_44 L_41
	._LINE	0, 70
	._CONFIG	E
	._LINE	0, 71
	LEAVE
	LD	@SP+,RP
	RET
	._CONFIG	E
	.global	_UART8_rx_int
	._SYMBOL	"UART8_rx_int", F, 0x8000000f, E, "_UART8_rx_int", I
	._FPARAM	S, 0, F
	._FPARAM	E
	._CONFIG	S, F, 1
	._LINE	0, 76
_UART8_rx_int:
L_48:
	STM	(R0,R1,R2,R12,R13)
	ST	RP,@-SP
	ENTER	#4
;-------end_of_no_optimize_block
	._FUNCTION	"fp", "fp", 16
	._CONFIG	S, B
L_49:				// Pred: L_48
	._LINE	0, 78
	LDI:20	#_IO_UART8+2,R12
	BTSTL	#0x4,@R12
	BEQ32	L_57,R12
L_50:				// Pred: L_49
	._LINE	0, 78
	._LINE	0, 79
L_51:				// Pred: L_50
	._LINE	0, 79
	LDI:32	#_rxnum,R0
	LDUB	@R0,R1	; _rxnum
	LDI	#16,R12
	CMP	R12,R1
	BGE32	L_57,R12
L_52:				// Pred: L_51
	._LINE	0, 79
	LDI:32	#_receive_data,R2
L_53:				// Pred: L_59 L_52
	._LINE	0, 79
	._LINE	0, 80
	LDUB	@R0,R12	; _rxnum
	DMOVH	@_IO_UART8+4,R13	; _IO_UART8
	MOV	R13,R1
	MOV	R2,R13
	STB	R1,@(R13,R12)	; _receive_data
	._LINE	0, 81
	LDUB	@R0,R1	; _rxnum
	ADDN	#1,R1
	STB	R1,@R0	; _rxnum
	._LINE	0, 82
L_54:				// Pred: L_53
	._LINE	0, 79
	LDUB	@R0,R1	; _rxnum
	LDI	#16,R12
	CMP	R12,R1
	BGE32	L_57,R12
L_59:				// Pred: L_54
	BRA32	L_53,R12
L_57:				// Pred: L_54 L_51 L_49
	._LINE	0, 83
	._CONFIG	E
	._LINE	0, 84
	LEAVE
	LD	@SP+,RP
	LDM	(R0,R1,R2,R12,R13)
	RETI
	._CONFIG	E
	._SYMBOL	"rxnum", V, 0x80000002, E, "_rxnum"
	._SYMBOL	"num", V, 0x80000002, E, "_num"
	._SYMBOL	"receive_data", V, 0x80000002, E, "_receive_data"
	._ARRAY	1, 1, 15, 0
	.end	

⌨️ 快捷键说明

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