📄 uart.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 + -