📄 main.asm
字号:
.dw 0x0d,0x0a
.text
LM104:
R1=[_recvdata1] // QImode move
CMP R1,2 // QImode compare
NSJNZ L44 //QImode NE
.debug
.dw '.stabn 0x44,0,158,',0,0
.dd LM105-_IRQ7
.dw 0x0d,0x0a
.text
LM105:
call _SACM_DVR1600_Stop // call without return value
.debug
.dw '.stabn 0x44,0,159,',0,0
.dd LM106-_IRQ7
.dw 0x0d,0x0a
.text
LM106:
R1=_recvdata1 // QImode move
[SP--]=R1 // QImode move
call _uartrecvchar // call with return value
SP = SP + 1 //SP
CMP R1,0 // QImode test
NSJNZ L45 //QImode NE
.debug
.dw '.stabn 0x44,0,160,',0,0
.dd LM107-_IRQ7
.dw 0x0d,0x0a
.text
LM107:
pc=L38 // Indirect jump
L45:
.debug
.dw '.stabn 0x44,0,161,',0,0
.dd LM108-_IRQ7
.dw 0x0d,0x0a
.text
LM108:
R1=1 // QImode move
[_playflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,162,',0,0
.dd LM109-_IRQ7
.dw 0x0d,0x0a
.text
LM109:
R1=0 // QImode move
[_loopflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,163,',0,0
.dd LM110-_IRQ7
.dw 0x0d,0x0a
.text
LM110:
R1=[_recvdata1] // QImode move
[_SndIdx]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,164,',0,0
.dd LM111-_IRQ7
.dw 0x0d,0x0a
.text
LM111:
R1=128 // QImode move
[28705]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,165,',0,0
.dd LM112-_IRQ7
.dw 0x0d,0x0a
.text
LM112:
pc=L38 // Indirect jump
.debug
.dw '.stabn 0x44,0,166,',0,0
.dd LM113-_IRQ7
.dw 0x0d,0x0a
.text
LM113:
pc=L43 // Indirect jump
L44:
.debug
.dw '.stabn 0x44,0,167,',0,0
.dd LM114-_IRQ7
.dw 0x0d,0x0a
.text
LM114:
R1=[_recvdata1] // QImode move
CMP R1,3 // QImode compare
NSJNZ L47 //QImode NE
.debug
.dw '.stabn 0x44,0,169,',0,0
.dd LM115-_IRQ7
.dw 0x0d,0x0a
.text
LM115:
call _SACM_DVR1600_Stop // call without return value
.debug
.dw '.stabn 0x44,0,170,',0,0
.dd LM116-_IRQ7
.dw 0x0d,0x0a
.text
LM116:
R1=0 // QImode move
[_playstate]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,171,',0,0
.dd LM117-_IRQ7
.dw 0x0d,0x0a
.text
LM117:
R1=0 // QImode move
[_playflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,172,',0,0
.dd LM118-_IRQ7
.dw 0x0d,0x0a
.text
LM118:
R1=0 // QImode move
[_loopflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,173,',0,0
.dd LM119-_IRQ7
.dw 0x0d,0x0a
.text
LM119:
R1=128 // QImode move
[28705]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,174,',0,0
.dd LM120-_IRQ7
.dw 0x0d,0x0a
.text
LM120:
pc=L38 // Indirect jump
.debug
.dw '.stabn 0x44,0,175,',0,0
.dd LM121-_IRQ7
.dw 0x0d,0x0a
.text
LM121:
pc=L43 // Indirect jump
L47:
.debug
.dw '.stabn 0x44,0,176,',0,0
.dd LM122-_IRQ7
.dw 0x0d,0x0a
.text
LM122:
R1=[_recvdata1] // QImode move
CMP R1,4 // QImode compare
NSJNZ L49 //QImode NE
.debug
.dw '.stabn 0x44,0,178,',0,0
.dd LM123-_IRQ7
.dw 0x0d,0x0a
.text
LM123:
R1=[_VolumeIdx] // QImode move
R2=1 // QImode move
[_VolumeIdx]=R1+R2 //addqi3_Qrr
.debug
.dw '.stabn 0x44,0,179,',0,0
.dd LM124-_IRQ7
.dw 0x0d,0x0a
.text
LM124:
R1=[_VolumeIdx] // QImode move
CMP R1,15 // QImode compare
NSJNA L50 //QImode LEU
.debug
.dw '.stabn 0x44,0,180,',0,0
.dd LM125-_IRQ7
.dw 0x0d,0x0a
.text
LM125:
R1=0 // QImode move
[_VolumeIdx]=R1 // QImode move
L50:
.debug
.dw '.stabn 0x44,0,181,',0,0
.dd LM126-_IRQ7
.dw 0x0d,0x0a
.text
LM126:
R1=[_VolumeIdx] // QImode move
[SP--]=R1 // QImode move
call _SACM_DVR1600_Volume // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,182,',0,0
.dd LM127-_IRQ7
.dw 0x0d,0x0a
.text
LM127:
R1=128 // QImode move
[28705]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,183,',0,0
.dd LM128-_IRQ7
.dw 0x0d,0x0a
.text
LM128:
pc=L38 // Indirect jump
.debug
.dw '.stabn 0x44,0,184,',0,0
.dd LM129-_IRQ7
.dw 0x0d,0x0a
.text
LM129:
pc=L43 // Indirect jump
L49:
.debug
.dw '.stabn 0x44,0,185,',0,0
.dd LM130-_IRQ7
.dw 0x0d,0x0a
.text
LM130:
R1=[_recvdata1] // QImode move
CMP R1,5 // QImode compare
NSJNZ L52 //QImode NE
.debug
.dw '.stabn 0x44,0,187,',0,0
.dd LM131-_IRQ7
.dw 0x0d,0x0a
.text
LM131:
R1=[_VolumeIdx] // QImode move
CMP R1,0 // QImode test
NSJZ L53 //QImode EQ
.debug
.dw '.stabn 0x44,0,188,',0,0
.dd LM132-_IRQ7
.dw 0x0d,0x0a
.text
LM132:
R1=[_VolumeIdx] // QImode move
R2=(-1) // QImode move
[_VolumeIdx]=R1+R2 //addqi3_Qrr
L53:
.debug
.dw '.stabn 0x44,0,189,',0,0
.dd LM133-_IRQ7
.dw 0x0d,0x0a
.text
LM133:
R1=[_VolumeIdx] // QImode move
[SP--]=R1 // QImode move
call _SACM_DVR1600_Volume // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,190,',0,0
.dd LM134-_IRQ7
.dw 0x0d,0x0a
.text
LM134:
R1=128 // QImode move
[28705]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,191,',0,0
.dd LM135-_IRQ7
.dw 0x0d,0x0a
.text
LM135:
pc=L38 // Indirect jump
.debug
.dw '.stabn 0x44,0,192,',0,0
.dd LM136-_IRQ7
.dw 0x0d,0x0a
.text
LM136:
pc=L43 // Indirect jump
L52:
.debug
.dw '.stabn 0x44,0,193,',0,0
.dd LM137-_IRQ7
.dw 0x0d,0x0a
.text
LM137:
R1=[_recvdata1] // QImode move
CMP R1,6 // QImode compare
NSJNZ L55 //QImode NE
.debug
.dw '.stabn 0x44,0,195,',0,0
.dd LM138-_IRQ7
.dw 0x0d,0x0a
.text
LM138:
call _SACM_DVR1600_Stop // call without return value
.debug
.dw '.stabn 0x44,0,196,',0,0
.dd LM139-_IRQ7
.dw 0x0d,0x0a
.text
LM139:
R1=1 // QImode move
[_writeflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,197,',0,0
.dd LM140-_IRQ7
.dw 0x0d,0x0a
.text
LM140:
call _ERASE_ST39VF040 // call without return value
.debug
.dw '.stabn 0x44,0,198,',0,0
.dd LM141-_IRQ7
.dw 0x0d,0x0a
.text
LM141:
pc=L43 // Indirect jump
L55:
.debug
.dw '.stabn 0x44,0,201,',0,0
.dd LM142-_IRQ7
.dw 0x0d,0x0a
.text
LM142:
R1=128 // QImode move
[28705]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,202,',0,0
.dd LM143-_IRQ7
.dw 0x0d,0x0a
.text
LM143:
pc=L38 // Indirect jump
L56:
L54:
L51:
L48:
L46:
L43:
.debug
.dw '.stabn 0x44,0,205,',0,0
.dd LM144-_IRQ7
.dw 0x0d,0x0a
.text
LM144:
R1=0 // QImode move
[_sendflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,206,',0,0
.dd LM145-_IRQ7
.dw 0x0d,0x0a
.text
LM145:
//split R1, 0
R1=0 // QImode move
R2=0 // QImode move
//split [_flashaddr], R1
[_flashaddr]=R1 // QImode move
[_flashaddr+1]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,207,',0,0
.dd LM146-_IRQ7
.dw 0x0d,0x0a
.text
LM146:
L57:
pc=L59 // Indirect jump
pc=L58 // Indirect jump
L59:
.debug
.dw '.stabn 0x44,0,209,',0,0
.dd LM147-_IRQ7
.dw 0x0d,0x0a
.text
LM147:
//split R1, [_flashaddr]
R1=[_flashaddr] // QImode move
R2=[_flashaddr+1] // QImode move
R3=R1+1 // HImode RD=RS+#IMM16
R4=R2+0, Carry
//split [_flashaddr], R3
[_flashaddr]=R3 // QImode move
[_flashaddr+1]=R4 // QImode move
.debug
.dw '.stabn 0x44,0,210,',0,0
.dd LM148-_IRQ7
.dw 0x0d,0x0a
.text
LM148:
R1=_recvdata1 // QImode move
[SP--]=R1 // QImode move
call _uartrecvchar // call with return value
SP = SP + 1 //SP
CMP R1,0 // QImode test
NSJNZ L60 //QImode NE
.debug
.dw '.stabn 0x44,0,212,',0,0
.dd LM149-_IRQ7
.dw 0x0d,0x0a
.text
LM149:
R1=[_sendflag] // QImode move
CMP R1,0 // QImode test
NSJZ L61 //QImode EQ
R1=[_writeflag] // QImode move
CMP R1,0 // QImode test
NSJZ L61 //QImode EQ
.debug
.dw '.stabn 0x44,0,214,',0,0
.dd LM150-_IRQ7
.dw 0x0d,0x0a
.text
LM150:
R1=[_recvdata2] // QImode move
[SP--]=R1 // QImode move
//split R1, [_flashaddr]
R1=[_flashaddr] // QImode move
R2=[_flashaddr+1] // QImode move
push R1,R2 to [sp] // pushhi
call _Write_ST39VF040_One_Word // call without return value
SP = SP + 3 //SP
L61:
.debug
.dw '.stabn 0x44,0,216,',0,0
.dd LM151-_IRQ7
.dw 0x0d,0x0a
.text
LM151:
pc=L58 // Indirect jump
.debug
.dw '.stabn 0x44,0,217,',0,0
.dd LM152-_IRQ7
.dw 0x0d,0x0a
.text
LM152:
pc=L38 // Indirect jump
L60:
.debug
.dw '.stabn 0x44,0,219,',0,0
.dd LM153-_IRQ7
.dw 0x0d,0x0a
.text
LM153:
R1=[_sendflag] // QImode move
CMP R1,0 // QImode test
NSJNZ L62 //QImode NE
.debug
.dw '.stabn 0x44,0,221,',0,0
.dd LM154-_IRQ7
.dw 0x0d,0x0a
.text
LM154:
R1=1 // QImode move
[_sendflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,222,',0,0
.dd LM155-_IRQ7
.dw 0x0d,0x0a
.text
LM155:
R1=[_recvdata1] // QImode move
[_recvdata2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,223,',0,0
.dd LM156-_IRQ7
.dw 0x0d,0x0a
.text
LM156:
pc=L63 // Indirect jump
L62:
.debug
.dw '.stabn 0x44,0,226,',0,0
.dd LM157-_IRQ7
.dw 0x0d,0x0a
.text
LM157:
R1=0 // QImode move
[_sendflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,227,',0,0
.dd LM158-_IRQ7
.dw 0x0d,0x0a
.text
LM158:
R1=[_recvdata1] // QImode move
R2=R1 lsl 4
R2=R2 lsl 4
[_recvdata1]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,228,',0,0
.dd LM159-_IRQ7
.dw 0x0d,0x0a
.text
LM159:
R1=[_recvdata1] // QImode move
R2=[_recvdata2] // QImode move
[_recvdata1]=R1+R2 //addqi3_Qrr
.debug
.dw '.stabn 0x44,0,229,',0,0
.dd LM160-_IRQ7
.dw 0x0d,0x0a
.text
LM160:
R1=[_recvdata1] // QImode move
[SP--]=R1 // QImode move
//split R1, [_flashaddr]
R1=[_flashaddr] // QImode move
R2=[_flashaddr+1] // QImode move
push R1,R2 to [sp] // pushhi
call _Write_ST39VF040_One_Word // call without return value
SP = SP + 3 //SP
L63:
.debug
.dw '.stabn 0x44,0,239,',0,0
.dd LM161-_IRQ7
.dw 0x0d,0x0a
.text
LM161:
R1=1 // QImode move
[28690]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,240,',0,0
.dd LM162-_IRQ7
.dw 0x0d,0x0a
.text
LM162:
pc=L57 // Indirect jump
L58:
.debug
.dw '.stabn 0x44,0,241,',0,0
.dd LM163-_IRQ7
.dw 0x0d,0x0a
.text
LM163:
.debug
.dw '.stabn 0x44,0,241,',0,0
.dd LM164-_IRQ7
.dw 0x0d,0x0a
.text
LM164:
L38:
sp+=1
// ISR ATTRIBUTE FUNCTION, POP r1,bp
pop r1,bp from [sp]
reti
.endp // end of IRQ7
.debug
.dw '.stabf ',0,0
.dd LME9-_IRQ7
.dw 0x0d,0x0a
.text
LME9:
.iram
.public _ext2flag
_ext2flag:
.dw 0
.iram
.public _recvdata1
_recvdata1:
.dw 0
.iram
.public _recvdata2
_recvdata2:
.dw 0
.iram
.public _sendflag
_sendflag:
.dw 0
.iram
.public _playflag
_playflag:
.dw 0
.iram
.public _playstate
_playstate:
.dw 0
.iram
.public _SOUND_NUM
_SOUND_NUM:
.dw 0
.iram
.public _VolumeIdx
_VolumeIdx:
.dw 0
.iram
.public _writeflag
_writeflag:
.dw 0
.iram
.public _loopflag
_loopflag:
.dw 0
.iram
.public _flashaddr
_flashaddr:
.dw 2 dup(0)
.iram
.public _timedelay
_timedelay:
.dw 2 dup(0)
.iram
.public _SndIdx
_SndIdx:
.dw 0
.external _Write_ST39VF040_One_Word
.external _ERASE_ST39VF040
.external _SACM_DVR1600_Stop
.external _SACM_DVR1600_ISR
.external _SACM_DVR1600_Volume
.external _Read_ST39VF040_One_Word
.external _SACM_DVR1600_Play
.external _SACM_DVR1600_ServiceLoop
.external _SACM_DVR1600_Status
.external _SACM_DVR1600_Rec
.external _SACM_DVR1600_Initial
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -