📄 main.asm
字号:
LM45:
call _SACM_DVR1600_ServiceLoop // call without return value
.debug
.dw '.stabn 0x44,0,72,',0,0
.dd LM46-_PlayRecord
.dw 0x0d,0x0a
.code
LM46:
pc=L17 // Indirect jump
L18:
.debug
.dw '.stabn 0x44,0,73,',0,0
.dd LM47-_PlayRecord
.dw 0x0d,0x0a
.code
LM47:
R1=[_loopflag] // QImode move
CMP R1,0 // QImode test
NSJZ L20 //QImode EQ
.debug
.dw '.stabn 0x44,0,74,',0,0
.dd LM48-_PlayRecord
.dw 0x0d,0x0a
.code
LM48:
R1=[_SndIdx] // QImode move
R2=1 // QImode move
[_SndIdx]=R1+R2 //addqi3_Qrr
.debug
.dw '.stabn 0x44,0,75,',0,0
.dd LM49-_PlayRecord
.dw 0x0d,0x0a
.code
LM49:
R1=[_SndIdx] // QImode move
CMP R1,[_SOUND_NUM] // QImode compare
NSJNZ L20 //QImode NE
.debug
.dw '.stabn 0x44,0,76,',0,0
.dd LM50-_PlayRecord
.dw 0x0d,0x0a
.code
LM50:
R1=0 // QImode move
[_SndIdx]=R1 // QImode move
L21:
L20:
.debug
.dw '.stabn 0x44,0,78,',0,0
.dd LM51-_PlayRecord
.dw 0x0d,0x0a
.code
LM51:
.debug
.dw '.stabn 0x44,0,78,',0,0
.dd LM52-_PlayRecord
.dw 0x0d,0x0a
.code
LM52:
L16:
sp+=1
pop bp from [sp]
retf
.endp // end of PlayRecord
.debug
.dw '.stabf ',0,0
.dd LME4-_PlayRecord
.dw 0x0d,0x0a
.code
LME4:
.code
.debug
.dw '.stabs "main:F1",36,0,0,',0,0,offset _main,seg _main,0x0d,0x0a
.CODE
.public _main
_main: .proc
.debug
.dw '.stabn 0x44,0,84,',0,0
.dd LM53-_main
.dw 0x0d,0x0a
.code
LM53:
// total=1, vars=1
// frame_pointer_needed: 1
push bp to [sp]
sp-=1
bp=sp+1
R1=BP+4
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,85,',0,0
.dd LM54-_main
.dw 0x0d,0x0a
.code
LM54:
call _Initial // call without return value
.debug
.dw '.stabn 0x44,0,86,',0,0
.dd LM55-_main
.dw 0x0d,0x0a
.code
LM55:
R1=0 // QImode move
[_ext2flag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,87,',0,0
.dd LM56-_main
.dw 0x0d,0x0a
.code
LM56:
R1=0 // QImode move
[_playflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,88,',0,0
.dd LM57-_main
.dw 0x0d,0x0a
.code
LM57:
R1=1 // QImode move
[_loopflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,89,',0,0
.dd LM58-_main
.dw 0x0d,0x0a
.code
LM58:
R1=0 // QImode move
[_playstate]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,90,',0,0
.dd LM59-_main
.dw 0x0d,0x0a
.code
LM59:
//split R1, 4
R1=4 // QImode move
R2=0 // QImode move
//split [_flashaddr], R1
[_flashaddr]=R1 // QImode move
[_flashaddr+1]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,96,',0,0
.dd LM60-_main
.dw 0x0d,0x0a
.code
LM60:
//split R1, [_flashaddr]
R1=[_flashaddr] // QImode move
R2=[_flashaddr+1] // QImode move
push R1,R2 to [sp] // pushhi
call _Read_ST39VF040_One_Word // call with return value
SP = SP + 2 //SP
[_SOUND_NUM]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,97,',0,0
.dd LM61-_main
.dw 0x0d,0x0a
.code
LM61:
R1=[_SOUND_NUM] // QImode move
CMP R1,30 // QImode compare
NSJNA L26 //QImode LEU
.debug
.dw '.stabn 0x44,0,98,',0,0
.dd LM62-_main
.dw 0x0d,0x0a
.code
LM62:
R1=30 // QImode move
[_SOUND_NUM]=R1 // QImode move
L26:
.debug
.dw '.stabn 0x44,0,99,',0,0
.dd LM63-_main
.dw 0x0d,0x0a
.code
LM63:
R1=8 // QImode move
[_VolumeIdx]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,100,',0,0
.dd LM64-_main
.dw 0x0d,0x0a
.code
LM64:
R1=0 // QImode move
[_SndIdx]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,101,',0,0
.dd LM65-_main
.dw 0x0d,0x0a
.code
LM65:
call _SACM_DVR1600_Initial // call without return value
.debug
.dw '.stabn 0x44,0,102,',0,0
.dd LM66-_main
.dw 0x0d,0x0a
.code
LM66:
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,103,',0,0
.dd LM67-_main
.dw 0x0d,0x0a
.code
LM67:
L27:
pc=L29 // Indirect jump
pc=L28 // Indirect jump
L29:
.debug
.dw '.stabn 0x44,0,105,',0,0
.dd LM68-_main
.dw 0x0d,0x0a
.code
LM68:
R1=[_ext2flag] // QImode move
CMP R1,0 // QImode test
NSJZ L30 //QImode EQ
.debug
.dw '.stabn 0x44,0,107,',0,0
.dd LM69-_main
.dw 0x0d,0x0a
.code
LM69:
R1=[_playflag] // QImode move
CMP R1,0 // QImode test
NSJZ L31 //QImode EQ
.debug
.dw '.stabn 0x44,0,108,',0,0
.dd LM70-_main
.dw 0x0d,0x0a
.code
LM70:
call _PlayRecord // call without return value
L31:
.debug
.dw '.stabn 0x44,0,109,',0,0
.dd LM71-_main
.dw 0x0d,0x0a
.code
LM71:
R1=[28717] // QImode move
R2=R1|512
[28717]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,110,',0,0
.dd LM72-_main
.dw 0x0d,0x0a
.code
LM72:
R1=0 // QImode move
[_ext2flag]=R1 // QImode move
L30:
.debug
.dw '.stabn 0x44,0,112,',0,0
.dd LM73-_main
.dw 0x0d,0x0a
.code
LM73:
R1=1 // QImode move
[28690]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,113,',0,0
.dd LM74-_main
.dw 0x0d,0x0a
.code
LM74:
pc=L27 // Indirect jump
L28:
.debug
.dw '.stabn 0x44,0,114,',0,0
.dd LM75-_main
.dw 0x0d,0x0a
.code
LM75:
.debug
.dw '.stabn 0x44,0,114,',0,0
.dd LM76-_main
.dw 0x0d,0x0a
.code
LM76:
L25:
sp+=1
pop bp from [sp]
retf
.endp // end of main
.debug
.dw '.stabf ',0,0
.dd LME5-_main
.dw 0x0d,0x0a
.code
LME5:
// ISR ATTRIBUTE FUNCTION, LOCATE in .text SECTION
.text
.debug
.dw '.stabs "FIQ:F19",36,0,0,',0,0,offset _FIQ,seg _FIQ,0x0d,0x0a
.TEXT
.public _FIQ
_FIQ: .proc
.debug
.dw '.stabn 0x44,0,122,',0,0
.dd LM77-_FIQ
.dw 0x0d,0x0a
.text
LM77:
// ISR ATTRIBUTE FUNCTION, PUSH r1,bp
push r1,bp to [sp]
// total=1, vars=1
// frame_pointer_needed: 1
sp-=1
bp=sp+1
R1=BP+4
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,123,',0,0
.dd LM78-_FIQ
.dw 0x0d,0x0a
.text
LM78:
R1=8192 // QImode move
[28689]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,124,',0,0
.dd LM79-_FIQ
.dw 0x0d,0x0a
.text
LM79:
call _SACM_DVR1600_ISR // call without return value
.debug
.dw '.stabn 0x44,0,125,',0,0
.dd LM80-_FIQ
.dw 0x0d,0x0a
.text
LM80:
.debug
.dw '.stabn 0x44,0,125,',0,0
.dd LM81-_FIQ
.dw 0x0d,0x0a
.text
LM81:
L35:
sp+=1
// ISR ATTRIBUTE FUNCTION, POP r1,bp
pop r1,bp from [sp]
reti
.endp // end of FIQ
.debug
.dw '.stabf ',0,0
.dd LME6-_FIQ
.dw 0x0d,0x0a
.text
LME6:
// ISR ATTRIBUTE FUNCTION, LOCATE in .text SECTION
.text
.debug
.dw '.stabs "IRQ3:F19",36,0,0,',0,0,offset _IRQ3,seg _IRQ3,0x0d,0x0a
.TEXT
.public _IRQ3
_IRQ3: .proc
.debug
.dw '.stabn 0x44,0,128,',0,0
.dd LM82-_IRQ3
.dw 0x0d,0x0a
.text
LM82:
// ISR ATTRIBUTE FUNCTION, PUSH r1,bp
push r1,bp to [sp]
// total=0, vars=0
// frame_pointer_needed: 1
bp=sp+1
R1=BP+3
.debug
.dw '.stabn 0x44,0,129,',0,0
.dd LM83-_IRQ3
.dw 0x0d,0x0a
.text
LM83:
R2=1 // QImode move
[_ext2flag]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,130,',0,0
.dd LM84-_IRQ3
.dw 0x0d,0x0a
.text
LM84:
R2=512 // QImode move
[28689]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,131,',0,0
.dd LM85-_IRQ3
.dw 0x0d,0x0a
.text
LM85:
.debug
.dw '.stabn 0x44,0,131,',0,0
.dd LM86-_IRQ3
.dw 0x0d,0x0a
.text
LM86:
L36:
// ISR ATTRIBUTE FUNCTION, POP r1,bp
pop r1,bp from [sp]
reti
.endp // end of IRQ3
.debug
.dw '.stabf ',0,0
.dd LME7-_IRQ3
.dw 0x0d,0x0a
.text
LME7:
// ISR ATTRIBUTE FUNCTION, LOCATE in .text SECTION
.text
.debug
.dw '.stabs "IRQ5:F19",36,0,0,',0,0,offset _IRQ5,seg _IRQ5,0x0d,0x0a
.TEXT
.public _IRQ5
_IRQ5: .proc
.debug
.dw '.stabn 0x44,0,134,',0,0
.dd LM87-_IRQ5
.dw 0x0d,0x0a
.text
LM87:
// ISR ATTRIBUTE FUNCTION, PUSH r1,bp
push r1,bp to [sp]
// total=0, vars=0
// frame_pointer_needed: 1
bp=sp+1
R1=BP+3
.debug
.dw '.stabn 0x44,0,135,',0,0
.dd LM88-_IRQ5
.dw 0x0d,0x0a
.text
LM88:
L37:
// ISR ATTRIBUTE FUNCTION, POP r1,bp
pop r1,bp from [sp]
reti
.endp // end of IRQ5
.debug
.dw '.stabf ',0,0
.dd LME8-_IRQ5
.dw 0x0d,0x0a
.text
LME8:
// ISR ATTRIBUTE FUNCTION, LOCATE in .text SECTION
.text
.debug
.dw '.stabs "IRQ7:F19",36,0,0,',0,0,offset _IRQ7,seg _IRQ7,0x0d,0x0a
.TEXT
.public _IRQ7
_IRQ7: .proc
.debug
.dw '.stabn 0x44,0,138,',0,0
.dd LM89-_IRQ7
.dw 0x0d,0x0a
.text
LM89:
// ISR ATTRIBUTE FUNCTION, PUSH r1,bp
push r1,bp to [sp]
// total=1, vars=1
// frame_pointer_needed: 1
sp-=1
bp=sp+1
R1=BP+4
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,139,',0,0
.dd LM90-_IRQ7
.dw 0x0d,0x0a
.text
LM90:
R1=0 // QImode move
[_writeflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,140,',0,0
.dd LM91-_IRQ7
.dw 0x0d,0x0a
.text
LM91:
R1=0 // QImode move
[28705]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,142,',0,0
.dd LM92-_IRQ7
.dw 0x0d,0x0a
.text
LM92:
R1=_recvdata1 // QImode move
[SP--]=R1 // QImode move
call _uartrecvchar // call with return value
SP = SP + 1 //SP
CMP R1,0 // QImode test
NSJNZ L39 //QImode NE
.debug
.dw '.stabn 0x44,0,143,',0,0
.dd LM93-_IRQ7
.dw 0x0d,0x0a
.text
LM93:
pc=L38 // Indirect jump
L39:
.debug
.dw '.stabn 0x44,0,144,',0,0
.dd LM94-_IRQ7
.dw 0x0d,0x0a
.text
LM94:
R1=[_recvdata1] // QImode move
CMP R1,1 // QImode compare
NSJNZ L40 //QImode NE
.debug
.dw '.stabn 0x44,0,146,',0,0
.dd LM95-_IRQ7
.dw 0x0d,0x0a
.text
LM95:
call _SACM_DVR1600_Stop // call without return value
.debug
.dw '.stabn 0x44,0,147,',0,0
.dd LM96-_IRQ7
.dw 0x0d,0x0a
.text
LM96:
R1=1 // QImode move
[_playflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,148,',0,0
.dd LM97-_IRQ7
.dw 0x0d,0x0a
.text
LM97:
R1=1 // QImode move
[_loopflag]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,149,',0,0
.dd LM98-_IRQ7
.dw 0x0d,0x0a
.text
LM98:
R1=[_playstate] // QImode move
CMP R1,0 // QImode test
NSJZ L41 //QImode EQ
.debug
.dw '.stabn 0x44,0,150,',0,0
.dd LM99-_IRQ7
.dw 0x0d,0x0a
.text
LM99:
R1=(-1) // QImode move
[_SndIdx]=R1 // QImode move
pc=L42 // Indirect jump
L41:
.debug
.dw '.stabn 0x44,0,152,',0,0
.dd LM100-_IRQ7
.dw 0x0d,0x0a
.text
LM100:
R1=0 // QImode move
[_SndIdx]=R1 // QImode move
L42:
.debug
.dw '.stabn 0x44,0,153,',0,0
.dd LM101-_IRQ7
.dw 0x0d,0x0a
.text
LM101:
R1=128 // QImode move
[28705]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,154,',0,0
.dd LM102-_IRQ7
.dw 0x0d,0x0a
.text
LM102:
pc=L38 // Indirect jump
.debug
.dw '.stabn 0x44,0,155,',0,0
.dd LM103-_IRQ7
.dw 0x0d,0x0a
.text
LM103:
pc=L43 // Indirect jump
L40:
.debug
.dw '.stabn 0x44,0,156,',0,0
.dd LM104-_IRQ7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -