📄 main.asm
字号:
bp=sp+1
R1=BP+4
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,112,',0,0
.dd LM45-_Send_QueueData_to_Sflash
.dw 0x0d,0x0a
.code
LM45:
L34:
call _SACM_DVR_TestQueue // call with return value
CMP R1,2 // QImode compare
JZ L37 // QImode NE
PC=L36
L37:
pc=L35 // jump
L36:
.debug
.dw '.stabn 0x44,0,114,',0,0
.dd LM46-_Send_QueueData_to_Sflash
.dw 0x0d,0x0a
.code
LM46:
call _SACM_DVR_FetchQueue // call with return value
[_Ret]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,115,',0,0
.dd LM47-_Send_QueueData_to_Sflash
.dw 0x0d,0x0a
.code
LM47:
R1=[_Ret] // QImode move
[SP--]=R1 // QImode move
R1=[_Addr] // HImode RD=[Label]
R2=[_Addr+1]
push R1,R2 to [sp] // pushhi
call _SP_SIOSendAWord // call with return value
SP=SP+3
.debug
.dw '.stabn 0x44,0,116,',0,0
.dd LM48-_Send_QueueData_to_Sflash
.dw 0x0d,0x0a
.code
LM48:
R1=[_Addr] // HImode RD=[Label]
R2=[_Addr+1]
R3=R1+2 // HImode RD=RS+#IMM16
R4=R2+0, Carry
[_Addr]=R3 // HImode [Label]=RS
[_Addr+1]=R4
.debug
.dw '.stabn 0x44,0,117,',0,0
.dd LM49-_Send_QueueData_to_Sflash
.dw 0x0d,0x0a
.code
LM49:
pc=L34 // jump
L35:
.debug
.dw '.stabn 0x44,0,118,',0,0
.dd LM50-_Send_QueueData_to_Sflash
.dw 0x0d,0x0a
.code
LM50:
.debug
.dw '.stabn 0x44,0,118,',0,0
.dd LM51-_Send_QueueData_to_Sflash
.dw 0x0d,0x0a
.code
LM51:
L33:
sp+=1
pop bp from [sp]
retf
.endp // end of Send_QueueData_to_Sflash
.debug
.dw '.stabf ',0,0
.dd LME4-_Send_QueueData_to_Sflash
.dw 0x0d,0x0a
.code
LME4:
.code
.debug
.dw '.stabs "Play_Initial:F19",36,0,0,',0,0,offset _Play_Initial,seg _Play_Initial,0x0d,0x0a
.CODE
.public _Play_Initial
_Play_Initial: .proc
.debug
.dw '.stabn 0x44,0,130,',0,0
.dd LM52-_Play_Initial
.dw 0x0d,0x0a
.code
LM52:
// 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,131,',0,0
.dd LM53-_Play_Initial
.dw 0x0d,0x0a
.code
LM53:
call _SACM_DVR_InitQueue // call without return value
.debug
.dw '.stabn 0x44,0,132,',0,0
.dd LM54-_Play_Initial
.dw 0x0d,0x0a
.code
LM54:
L39:
call _SACM_DVR_TestQueue // call with return value
CMP R1,1 // QImode compare
JZ L42 // QImode NE
PC=L41
L42:
pc=L40 // jump
L41:
.debug
.dw '.stabn 0x44,0,134,',0,0
.dd LM55-_Play_Initial
.dw 0x0d,0x0a
.code
LM55:
R1=[_Addr] // HImode RD=[Label]
R2=[_Addr+1]
push R1,R2 to [sp] // pushhi
call _SP_SIOReadAWord // call with return value
SP=SP+2
[_Ret]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,135,',0,0
.dd LM56-_Play_Initial
.dw 0x0d,0x0a
.code
LM56:
R1=[_Ret] // QImode move
[SP--]=R1 // QImode move
call _SACM_DVR_FillQueue // call without return value
SP=SP+1
.debug
.dw '.stabn 0x44,0,136,',0,0
.dd LM57-_Play_Initial
.dw 0x0d,0x0a
.code
LM57:
R1=[_Addr] // HImode RD=[Label]
R2=[_Addr+1]
R3=R1+2 // HImode RD=RS+#IMM16
R4=R2+0, Carry
[_Addr]=R3 // HImode [Label]=RS
[_Addr+1]=R4
.debug
.dw '.stabn 0x44,0,137,',0,0
.dd LM58-_Play_Initial
.dw 0x0d,0x0a
.code
LM58:
pc=L39 // jump
L40:
.debug
.dw '.stabn 0x44,0,138,',0,0
.dd LM59-_Play_Initial
.dw 0x0d,0x0a
.code
LM59:
R1=3 // QImode move
[SP--]=R1 // QImode move
call _SACM_DVR_InitDecoder // call without return value
SP=SP+1
.debug
.dw '.stabn 0x44,0,139,',0,0
.dd LM60-_Play_Initial
.dw 0x0d,0x0a
.code
LM60:
.debug
.dw '.stabn 0x44,0,139,',0,0
.dd LM61-_Play_Initial
.dw 0x0d,0x0a
.code
LM61:
L38:
sp+=1
pop bp from [sp]
retf
.endp // end of Play_Initial
.debug
.dw '.stabf ',0,0
.dd LME5-_Play_Initial
.dw 0x0d,0x0a
.code
LME5:
.code
.debug
.dw '.stabs "Fill_A_Word_To_Queue:F19",36,0,0,',0,0,offset _Fill_A_Word_To_Queue,seg _Fill_A_Word_To_Queue,0x0d,0x0a
.CODE
.public _Fill_A_Word_To_Queue
_Fill_A_Word_To_Queue: .proc
.debug
.dw '.stabn 0x44,0,151,',0,0
.dd LM62-_Fill_A_Word_To_Queue
.dw 0x0d,0x0a
.code
LM62:
// 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,152,',0,0
.dd LM63-_Fill_A_Word_To_Queue
.dw 0x0d,0x0a
.code
LM63:
call _SACM_DVR_TestQueue // call with return value
CMP R1,1 // QImode compare
JNZ L45 // QImode EQ
PC=L44
L45:
.debug
.dw '.stabn 0x44,0,154,',0,0
.dd LM64-_Fill_A_Word_To_Queue
.dw 0x0d,0x0a
.code
LM64:
R1=[_Addr] // HImode RD=[Label]
R2=[_Addr+1]
push R1,R2 to [sp] // pushhi
call _SP_SIOReadAWord // call with return value
SP=SP+2
[_Ret]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,155,',0,0
.dd LM65-_Fill_A_Word_To_Queue
.dw 0x0d,0x0a
.code
LM65:
R1=[_Ret] // QImode move
[SP--]=R1 // QImode move
call _SACM_DVR_FillQueue // call without return value
SP=SP+1
.debug
.dw '.stabn 0x44,0,156,',0,0
.dd LM66-_Fill_A_Word_To_Queue
.dw 0x0d,0x0a
.code
LM66:
R1=[_Addr] // HImode RD=[Label]
R2=[_Addr+1]
R3=R1+2 // HImode RD=RS+#IMM16
R4=R2+0, Carry
[_Addr]=R3 // HImode [Label]=RS
[_Addr+1]=R4
L44:
.debug
.dw '.stabn 0x44,0,158,',0,0
.dd LM67-_Fill_A_Word_To_Queue
.dw 0x0d,0x0a
.code
LM67:
.debug
.dw '.stabn 0x44,0,158,',0,0
.dd LM68-_Fill_A_Word_To_Queue
.dw 0x0d,0x0a
.code
LM68:
L43:
sp+=1
pop bp from [sp]
retf
.endp // end of Fill_A_Word_To_Queue
.debug
.dw '.stabf ',0,0
.dd LME6-_Fill_A_Word_To_Queue
.dw 0x0d,0x0a
.code
LME6:
.code
.debug
.dw '.stabs "According_to_Keycode:F19",36,0,0,',0,0,offset _According_to_Keycode,seg _According_to_Keycode,0x0d,0x0a
.CODE
.public _According_to_Keycode
_According_to_Keycode: .proc
.debug
.dw '.stabn 0x44,0,170,',0,0
.dd LM69-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM69:
// 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,171,',0,0
.dd LM70-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM70:
LBB5:
R1=[_BaseType] // QImode move
CMP R1,1 // QImode compare
JZ L78 // QImode NE
PC=L47
L78:
.debug
.dw '.stabn 0x44,0,173,',0,0
.dd LM71-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM71:
R1=[_Keycode] // QImode move
CMP R1,255 // QImode compare
JNZ L79 // QImode EQ
PC=L48
L79:
.debug
.dw '.stabn 0x44,0,175,',0,0
.dd LM72-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM72:
call _DVR_Stop // call without return value
.debug
.dw '.stabn 0x44,0,176,',0,0
.dd LM73-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM73:
R1=[_SubStatus] // QImode move
CMP R1,1 // QImode compare
JZ L80 // QImode NE
PC=L49
L80:
.debug
.dw '.stabn 0x44,0,178,',0,0
.dd LM74-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM74:
call _Send_QueueData_to_Sflash // call without return value
.debug
.dw '.stabn 0x44,0,179,',0,0
.dd LM75-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM75:
call _Modify_Index // call without return value
L49:
.debug
.dw '.stabn 0x44,0,182,',0,0
.dd LM76-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM76:
R1=[_Keycode] // QImode move
CMP R1,15 // QImode compare
JNA L81 // QImode GTU
PC=L63
L81:
R1=[_Keycode] // QImode move
R2=R1 // QImode move
R1=R2 // QImode move
R1=R1+L64
R3=R1 // QImode move
R2=[R3] // QImode move
pc=R2 // tablejump
.text
L64:
.dw L51
.dw L52
.dw L55
.dw L58
.dw L59
.dw L60
.dw L63
.dw L61
.dw L63
.dw L63
.dw L63
.dw L63
.dw L63
.dw L63
.dw L63
.dw L62
.code
.debug
.dw '.stabn 0x44,0,184,',0,0
.dd LM77-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM77:
LBB6:
L51:
.debug
.dw '.stabn 0x44,0,185,',0,0
.dd LM78-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM78:
R1=[_Segment] // QImode move
R2=R1 // QImode move
R1=R2 lsl 1
R2=R1+(-1)
R3=R2 // QImode move
R1=R3 lsl 1
R3=_Buffer // QImode move
R2=R3 // QImode move
R2+=R1 // addqi3_r0r
R1=R2 // QImode move
R3=[R1++] // RD=[RS] HImode, RD!=RS
R4=[R1--]
[_Addr]=R3 // HImode [Label]=RS
[_Addr+1]=R4
.debug
.dw '.stabn 0x44,0,186,',0,0
.dd LM79-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM79:
call _Play_Initial // call without return value
.debug
.dw '.stabn 0x44,0,187,',0,0
.dd LM80-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM80:
R1=2 // QImode move
[_SubStatus]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,188,',0,0
.dd LM81-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM81:
pc=L48 // jump
L52:
.debug
.dw '.stabn 0x44,0,190,',0,0
.dd LM82-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM82:
R1=[_Segment] // QImode move
CMP R1,1 // QImode compare
JA L82 // QImode LEU
PC=L53
L82:
R1=[_Segment]
R2=0
R3=[_Buffer] // HImode RD=[Label]
R4=[_Buffer+1]
CMP R2,R4 // HImode compare
JA L83 // HImode GTU
JNZ L84
CMP R1,R3
JNA L84
L83:
PC=L53
L84:
.debug
.dw '.stabn 0x44,0,192,',0,0
.dd LM83-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM83:
R1=[_Segment] // QImode move
R2=(-1) // QImode move
[_Segment]=R1+R2
.debug
.dw '.stabn 0x44,0,193,',0,0
.dd LM84-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM84:
R1=[_Segment] // QImode move
R2=R1 // QImode move
R1=R2 lsl 1
R2=R1+(-1)
R3=R2 // QImode move
R1=R3 lsl 1
R3=_Buffer // QImode move
R2=R3 // QImode move
R2+=R1 // addqi3_r0r
R1=R2 // QImode move
R3=[R1++] // RD=[RS] HImode, RD!=RS
R4=[R1--]
[_Addr]=R3 // HImode [Label]=RS
[_Addr+1]=R4
.debug
.dw '.stabn 0x44,0,194,',0,0
.dd LM85-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM85:
pc=L54 // jump
L53:
.debug
.dw '.stabn 0x44,0,197,',0,0
.dd LM86-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM86:
R1=[_Buffer] // QImode move
[_Segment]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,198,',0,0
.dd LM87-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM87:
R3=[_Buffer] // HImode RD=[Label]
R4=[_Buffer+1]
R1=R3 // HImode register to register move
R2=R4
R3=1 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __lshiu2 // call with return value
SP=SP+3
R3=R1+(-1)
R2=R3 // QImode move
R1=R2 lsl 1
R3=_Buffer // QImode move
R2=R3 // QImode move
R2+=R1 // addqi3_r0r
R1=R2 // QImode move
R3=[R1++] // RD=[RS] HImode, RD!=RS
R4=[R1--]
[_Addr]=R3 // HImode [Label]=RS
[_Addr+1]=R4
L54:
.debug
.dw '.stabn 0x44,0,200,',0,0
.dd LM88-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM88:
call _Play_Initial // call without return value
.debug
.dw '.stabn 0x44,0,201,',0,0
.dd LM89-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM89:
R1=2 // QImode move
[_SubStatus]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,202,',0,0
.dd LM90-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM90:
pc=L48 // jump
L55:
.debug
.dw '.stabn 0x44,0,204,',0,0
.dd LM91-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM91:
R1=[_Segment]
R2=0
R3=[_Buffer] // HImode RD=[Label]
R4=[_Buffer+1]
CMP R2,R4 // HImode compare
JB L86 // HImode GEU
JNZ L85
CMP R1,R3
JB L86
L85:
PC=L56
L86:
.debug
.dw '.stabn 0x44,0,206,',0,0
.dd LM92-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM92:
R1=[_Segment] // QImode move
R2=1 // QImode move
[_Segment]=R1+R2
.debug
.dw '.stabn 0x44,0,207,',0,0
.dd LM93-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM93:
R1=[_Segment] // QImode move
R2=R1 // QImode move
R1=R2 lsl 1
R2=R1+(-1)
R3=R2 // QImode move
R1=R3 lsl 1
R3=_Buffer // QImode move
R2=R3 // QImode move
R2+=R1 // addqi3_r0r
R1=R2 // QImode move
R3=[R1++] // RD=[RS] HImode, RD!=RS
R4=[R1--]
[_Addr]=R3 // HImode [Label]=RS
[_Addr+1]=R4
.debug
.dw '.stabn 0x44,0,208,',0,0
.dd LM94-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM94:
pc=L57 // jump
L56:
.debug
.dw '.stabn 0x44,0,211,',0,0
.dd LM95-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM95:
R1=1 // QImode move
[_Segment]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,212,',0,0
.dd LM96-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM96:
R1=[_Buffer+2] // HImode RD=[Label]
R2=[_Buffer+3]
[_Addr]=R1 // HImode [Label]=RS
[_Addr+1]=R2
L57:
.debug
.dw '.stabn 0x44,0,214,',0,0
.dd LM97-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM97:
call _Play_Initial // call without return value
.debug
.dw '.stabn 0x44,0,215,',0,0
.dd LM98-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM98:
R1=2 // QImode move
[_SubStatus]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,216,',0,0
.dd LM99-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM99:
pc=L48 // jump
L58:
.debug
.dw '.stabn 0x44,0,218,',0,0
.dd LM100-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM100:
R1=0 // QImode move
[_SubStatus]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,219,',0,0
.dd LM101-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM101:
pc=L48 // jump
L59:
.debug
.dw '.stabn 0x44,0,221,',0,0
.dd LM102-_According_to_Keycode
.dw 0x0d,0x0a
.code
LM102:
R1=[_Segment] // QImode move
R2=R1 // QImode move
R1=R2 lsl 1
R2=R1+(-1)
R3=R2 // QImode move
R1=R3 lsl 1
R3=_Buffer // QImode move
R2=R3 // QImode move
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -