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

📄 demo.asm

📁 义隆公司eSLZ000 dsp处理芯片一个播放midi的样例程序。
💻 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 + -