📄 demo.asm
字号:
.FILE "D:\EMC_DATASHEET\ESL_V3.2.2\TUTORIAL\C\EAM_C_PLAY2MIDI_EXAMPLE\demo.c"
__USE_HW_MULTIPLY_INSTRUCTION .equ 1
__USE_HW_DIVIDE_INSTRUCTION .equ 1
__ECC_M2MODE .equ 0
.include "ecc_macros.asm"
.stabs "ecc_compiled.",0x3c,0,0,0
.stabs "D:\\EMC_DataSheet\\eSL_V3.2.2\\tutorial\\C\\eAM_C_play2midi_example\\",0x64,0,3,@Ltext0
.stabs "D:\\EMC_DATASHEET\\ESL_V3.2.2\\TUTORIAL\\C\\EAM_C_PLAY2MIDI_EXAMPLE\\demo.c",0x64,0,3,@Ltext0
.CODE
@Ltext0:
.stabs "int:t1=r1;-32768;32767;",128,0,0,0
.stabs "char:t2=r2;-32768;32767;",128,0,0,0
.stabs "double:t3=r1;4;0;",128,0,0,0
.stabs "float:t4=r1;2;0;",128,0,0,0
.stabs "long double:t5=r1;4;0;",128,0,0,0
.stabs "long int:t6=r1;-2147483648;2147483647;",128,0,0,0
.stabs "long long int:t7=r1;-2147483648;2147483647;",128,0,0,0
.stabs "short:t8=r1;-32768;32767;",128,0,0,0
.stabs "signed char:t9=r1;-32768;32767;",128,0,0,0
.stabs "unsigned char:t10=r1;0;65535;",128,0,0,0
.stabs "unsigned long:t11=r1;0;4294967295;",128,0,0,0
.stabs "unsigned long long:t12=r1;0;4294967295;",128,0,0,0
.stabs "unsigned short:t13=r1;0;65535;",128,0,0,0
.stabs "unsigned int:t14=r1;0;65535;",128,0,0,0
.stabs "void:t15=15",128,0,0,0
.GLOBAL _Timer0INT
.CODE @_Timer0INT, INTERRUPT=8
.stabs "Timer0INT:F15",36,0,9,_Timer0INT
.CODE @_Timer0INT, INTERRUPT=8
.C_FUNC_DEF "Timer0INT", "D:/EMC_DATASHEET/ESL_V3.2.2/TUTORIAL/C/EAM_C_PLAY2MIDI_EXAMPLE/interruptvector.h", 9
_Timer0INT:
;_Timer0INT is a normal interrupt function
__pushInterruptSavedRegs
__pushLR
__reset_SFR_SR
;function body
push r3
r3 = IO[_SFR_SP]
r3 = r3 + #2
.stabn 0xc0,0,0,@L2
@L2:
.stabs "D:\\EMC_DATASHEET\\ESL_V3.2.2\\TUTORIAL\\C\\EAM_C_PLAY2MIDI_EXAMPLE\\interruptvector.h",0x84,0,0,@L3
@L3:
.stabn 0x44,0,12,@L4
@L4:
.stabn 0x44,0,13,@L5
@L5:
call _c_s1_interrupt_routine
;after function call, clean up arguments
;end of function call
.stabn 0xe0,0,0,@L6
@L6:
.stabn 0x44,0,14,@L7
@L7:
@L1:
;function epilogue
pop r3
__popLR
__popInterruptSavedRegs
reti
.GLOBAL _Timer1INT
.stabs "Timer1INT:F15",36,0,16,_Timer1INT
.CODE @_Timer1INT, INTERRUPT=10
.C_FUNC_DEF "Timer1INT", "D:/EMC_DATASHEET/ESL_V3.2.2/TUTORIAL/C/EAM_C_PLAY2MIDI_EXAMPLE/interruptvector.h", 16
_Timer1INT:
;_Timer1INT is a normal interrupt function
__pushInterruptSavedRegs
__pushLR
__reset_SFR_SR
;function body
push r3
r3 = IO[_SFR_SP]
r3 = r3 + #2
.stabn 0xc0,0,0,@L9
@L9:
.stabn 0x44,0,19,@L10
@L10:
.stabn 0x44,0,20,@L11
@L11:
call _c_ms2_interrupt_routine
;after function call, clean up arguments
;end of function call
.stabn 0xe0,0,0,@L12
@L12:
.stabn 0x44,0,21,@L13
@L13:
@L8:
;function epilogue
pop r3
__popLR
__popInterruptSavedRegs
reti
.GLOBAL _RTC3INT
.stabs "RTC3INT:F15",36,0,63,_RTC3INT
.CODE @_RTC3INT, INTERRUPT=28
.C_FUNC_DEF "RTC3INT", "D:/EMC_DATASHEET/ESL_V3.2.2/TUTORIAL/C/EAM_C_PLAY2MIDI_EXAMPLE/interruptvector.h", 63
_RTC3INT:
;_RTC3INT is a normal interrupt function
__pushInterruptSavedRegs
__pushLR
__reset_SFR_SR
;function body
push r3
r3 = IO[_SFR_SP]
r3 = r3 + #2
.stabn 0xc0,0,0,@L15
@L15:
.stabn 0x44,0,66,@L16
@L16:
.stabn 0x44,0,67,@L17
@L17:
call _c_mtempo_setting
;after function call, clean up arguments
;end of function call
.stabn 0xe0,0,0,@L18
@L18:
.stabn 0x44,0,68,@L19
@L19:
@L14:
;function epilogue
pop r3
__popLR
__popInterruptSavedRegs
reti
.GLOBAL _main
.CODE @_main
.stabs "main:F1",36,0,20,_main
.CODE @_main
.C_FUNC_DEF "main", "D:\EMC_DATASHEET\ESL_V3.2.2\TUTORIAL\C\EAM_C_PLAY2MIDI_EXAMPLE\demo.c", 20
_main:
;function body
push r3
r3 = IO[_SFR_SP]
r3 = r3 + #2
sp = sp - #6
.stabs "keyFlag:14",128,0,0,-2
.stabs ":t16=ar1;0;3;17=14",128,0,0,0
.stabs "readkeyRAM:16",128,0,0,-6
.stabn 0xc0,0,0,@L41
@L41:
.stabs "D:\\EMC_DATASHEET\\ESL_V3.2.2\\TUTORIAL\\C\\EAM_C_PLAY2MIDI_EXAMPLE\\demo.c",0x84,0,0,@L42
@L42:
.stabn 0x44,0,21,@L43
@L43:
.stabn 0x44,0,23,@L44
@L44:
r1 = r3 - #6
r2 = #(@L21)
r7 = [r2++]
[r1++] = r7
r7 = [r2++]
[r1++] = r7
r7 = [r2++]
[r1++] = r7
r7 = [r2++]
[r1++] = r7
.stabn 0x44,0,24,@L45
@L45:
r1 = r3 - #2
[r1] = #0
.stabn 0x44,0,29,@L46
@L46:
;start of _setIO
r1 = #0xffff
IO[35] = r1
;end of _setIO
.stabn 0x44,0,30,@L47
@L47:
;start of _setIO
r1 = #0xffff
IO[36] = r1
;end of _setIO
.stabn 0x44,0,31,@L48
@L48:
;start of _setIO
r1 = #21845
IO[37] = r1
;end of _setIO
.stabn 0x44,0,32,@L49
@L49:
;start of _setIO
r1 = #21845
IO[38] = r1
;end of _setIO
.stabn 0x44,0,37,@L50
@L50:
call _c_audio_ini
;after function call, clean up arguments
;end of function call
.stabn 0x44,0,38,@L51
@L51:
call _c_mpwmon
;after function call, clean up arguments
;end of function call
jmp @L23
@L22:
.stabn 0xc0,0,1,@L52
@L52:
.stabn 0x44,0,43,@L53
@L53:
.stabn 0x44,0,44,@L54
@L54:
r1 = #255
push r1
r1 = r3 - #6
push r1
call _c_ReadKey
;after function call, clean up arguments
sp = sp + #2
;end of function call
r1 = r0
[r3 - #2] = r1
.stabn 0x44,0,45,@L55
@L55:
r1 = [r3 - #2]
r1 = r1 AND #8192
r2 = #8192
cmp r1, r2
if NE jmp @L25
.stabn 0xc0,0,2,@L56
@L56:
.stabn 0x44,0,46,@L57
@L57:
.stabn 0x44,0,47,@L58
@L58:
r1 = r3 - #7
r2 = [r3 - #2]
[r1] = r2 AND #7
r1 = [r3 - #7]
r2 = #7
cmp r1, r2
if GT jmp @L26
r2 = #(@L38)
r1 = r1 + r2
r1 = P[r1]
jmp r1
.CODE @_main
@L38:
.DW @L30
.DW @L31
.DW @L26
.DW @L26
.DW @L26
.DW @L26
.DW @L26
.DW @L37
.stabn 0xc0,0,3,@L59
@L59:
.stabn 0x44,0,48,@L60
@L60:
@L30:
.stabn 0x44,0,50,@L61
@L61:
call _c_mstop
;after function call, clean up arguments
;end of function call
.stabn 0x44,0,51,@L62
@L62:
r1 = #100
push r1
call _c_playhead
;after function call, clean up arguments
sp = sp + #1
;end of function call
.stabn 0x44,0,52,@L63
@L63:
r1 = #44
push r1
call _c_mvol
;after function call, clean up arguments
sp = sp + #1
;end of function call
.stabn 0x44,0,53,@L64
@L64:
r7 = #(0xFFFF & (515303 >> 16))
push r7
r7 = #(0xFFFF & 515303)
push r7
call _c_mplay
;after function call, clean up arguments
sp = sp + #2
;end of function call
.stabn 0x44,0,54,@L65
@L65:
jmp @L26
@L31:
.stabn 0x44,0,56,@L66
@L66:
call _c_mstop
;after function call, clean up arguments
;end of function call
.stabn 0x44,0,57,@L67
@L67:
r1 = #100
push r1
call _c_playhead
;after function call, clean up arguments
sp = sp + #1
;end of function call
.stabn 0x44,0,58,@L68
@L68:
r1 = #44
push r1
call _c_mvol
;after function call, clean up arguments
sp = sp + #1
;end of function call
.stabn 0x44,0,59,@L69
@L69:
r7 = #(0xFFFF & (500933 >> 16))
push r7
r7 = #(0xFFFF & 500933)
push r7
call _c_mplay
;after function call, clean up arguments
sp = sp + #2
;end of function call
.stabn 0x44,0,60,@L70
@L70:
jmp @L26
.stabn 0x44,0,62,@L71
@L71:
.stabn 0x44,0,64,@L72
@L72:
.stabn 0x44,0,66,@L73
@L73:
.stabn 0x44,0,69,@L74
@L74:
.stabn 0x44,0,72,@L75
@L75:
@L37:
.stabn 0x44,0,74,@L76
@L76:
call _c_mstop
;after function call, clean up arguments
;end of function call
.stabn 0x44,0,76,@L77
@L77:
.stabn 0x44,0,79,@L78
@L78:
.stabn 0xe0,0,3,@L79
@L79:
.stabn 0x44,0,80,@L80
@L80:
.stabn 0xe0,0,2,@L81
@L81:
.stabn 0x44,0,81,@L82
@L82:
jmp @L26
@L25:
.stabn 0x44,0,82,@L83
@L83:
call _c_mcheck
;after function call, clean up arguments
;end of function call
r1 = r0
r1 = r1 OR r1
if EQ jmp @L39
.stabn 0x44,0,83,@L84
@L84:
jmp @L23
@L39:
.stabn 0x44,0,85,@L85
@L85:
call _ICSleepMode
;after function call, clean up arguments
;end of function call
@L26:
.stabn 0xe0,0,1,@L86
@L86:
.stabn 0x44,0,86,@L87
@L87:
@L23:
.stabn 0x44,0,42,@L88
@L88:
jmp @L22
.stabn 0x44,0,87,@L89
@L89:
r0 = r0 XOR r0
.stabn 0xe0,0,0,@L90
@L90:
.stabn 0x44,0,88,@L91
@L91:
@L20:
;function epilogue
sp = sp + #6
pop r3
ret
.GLOBAL _ICSleepMode
.stabs "ICSleepMode:F15",36,0,91,_ICSleepMode
.CODE @_ICSleepMode
.C_FUNC_DEF "ICSleepMode", "D:\EMC_DATASHEET\ESL_V3.2.2\TUTORIAL\C\EAM_C_PLAY2MIDI_EXAMPLE\demo.c", 91
_ICSleepMode:
;function body
push r3
r3 = IO[_SFR_SP]
r3 = r3 + #2
.stabn 0xc0,0,0,@L93
@L93:
.stabn 0x44,0,92,@L94
@L94:
.stabn 0x44,0,93,@L95
@L95:
call _c_mstop
;after function call, clean up arguments
;end of function call
.stabn 0x44,0,94,@L96
@L96:
r1 = #100
push r1
call _c_playtail
;after function call, clean up arguments
sp = sp + #1
;end of function call
.stabn 0x44,0,95,@L97
@L97:
;start of _setIO
r1 = r1 XOR r1
IO[6] = r1
;end of _setIO
.stabn 0x44,0,96,@L98
@L98:
;start of _setIO
r1 = r1 XOR r1
IO[7] = r1
;end of _setIO
.stabn 0x44,0,97,@L99
@L99:
;start of _setIO
r1 = r1 XOR r1
IO[32] = r1
;end of _setIO
.stabn 0x44,0,98,@L100
@L100:
;start of _setIO
r1 = r1 XOR r1
IO[8] = r1
;end of _setIO
.stabn 0x44,0,99,@L101
@L101:
call _SLEEPMODE
;after function call, clean up arguments
;end of function call
.stabn 0xe0,0,0,@L102
@L102:
.stabn 0x44,0,101,@L103
@L103:
@L92:
;function epilogue
pop r3
ret
.stabs "cnstBitOffset:t14",128,0,0,0
.stabs "cnstADDR:t14",128,0,0,0
.stabs "ADDR:t14",128,0,0,0
.stabs "WORD:t14",128,0,0,0
.CODE
.stabs "", 100, 0, 0,@Letext
@Letext:
.EXTERN _c_ReadKey
.EXTERN _c_mtempo_setting
.EXTERN _c_mvol
.EXTERN _c_mstop
.EXTERN _c_mcheck
.EXTERN _c_mplay
.EXTERN _c_ms2_interrupt_routine
.EXTERN _c_s1_interrupt_routine
.EXTERN _c_playtail
.EXTERN _c_playhead
.EXTERN _c_mpwmon
.EXTERN _c_audio_ini
.EXTERN _SLEEPMODE
.CODE _D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_lit_noBank
_D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_lit_noBank__D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_104_start:
.DW 0
.DW 255
.DW 0
.DW 0
_D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_lit_noBank__D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_104_end:
.DATA _D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_data_noBank
_D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_data_noBank__D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_105_start:
@L21: .DS 4
_D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_data_noBank__D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_105_end:
.CODE @@_ECC_SGV_INIT_CODE
r0 = #_D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_data_noBank__D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_105_end
r1 = #_D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_data_noBank__D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_105_start
r0 = r0 - r1
r0 = r0 - #1
r2 = #_D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_lit_noBank__D_EMC_DATASHEET_ESL_V3_2_2_TUTORIAL_C_EAM_C_PLAY2MIDI_EXAMPLE_demo_c_104_start
rpt r0
[r1++] = P[r2++]
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -