📄 main.asm
字号:
.debug
.dw '.stabn 0x44,0,42,',0,0
.dd LM44-_delay
.dw 0x0d,0x0a
.code
LM44:
LBB4:
.debug
.dw '.stabn 0x44,0,43,',0,0
.dd LM45-_delay
.dw 0x0d,0x0a
.code
LM45:
R3=R1 // QImode move
R2=[R3] // QImode move
[BP]=R2 // QImode move
L21:
R2=[BP] // QImode move
CMP R2,0 // QImode test
NSJG L24 //QImode GT
pc=L22 // Indirect jump
L24:
.debug
.dw '.stabn 0x44,0,45,',0,0
.dd LM46-_delay
.dw 0x0d,0x0a
.code
LM46:
R2=1 // QImode move
[28690]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,43,',0,0
.dd LM47-_delay
.dw 0x0d,0x0a
.code
LM47:
L23:
R2=[BP] // QImode move
R3=R2+(-1)
[BP]=R3 // QImode move
pc=L21 // Indirect jump
L22:
.debug
.dw '.stabn 0x44,0,47,',0,0
.dd LM48-_delay
.dw 0x0d,0x0a
.code
LM48:
LBE4:
.debug
.dw '.stabn 0x44,0,47,',0,0
.dd LM49-_delay
.dw 0x0d,0x0a
.code
LM49:
L20:
sp+=1
pop bp from [sp]
retf
.endp // end of delay
.debug
.dw '.stabs "n:p1",160,0,0,4',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB4-_delay
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "i:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE4-_delay
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME4-_delay
.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,101,',0,0
.dd LM50-_main
.dw 0x0d,0x0a
.code
LM50:
// total=18, vars=18
// frame_pointer_needed: 1
push bp to [sp]
sp-=18
bp=sp+1
R1=BP+21
[bp+14]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,102,',0,0
.dd LM51-_main
.dw 0x0d,0x0a
.code
LM51:
LBB5:
.debug
.dw '.stabn 0x44,0,103,',0,0
.dd LM52-_main
.dw 0x0d,0x0a
.code
LM52:
R1=BP // QImode move
R2=BP+8
R1=0 // QImode move
R3=R2 // QImode move
[R3]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,104,',0,0
.dd LM53-_main
.dw 0x0d,0x0a
.code
LM53:
R1=BP // QImode move
R2=BP+9
R1=0 // QImode move
R4=R2 // QImode move
[R4]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,109,',0,0
.dd LM54-_main
.dw 0x0d,0x0a
.code
LM54:
R1=24 // QImode move
[28691]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,111,',0,0
.dd LM55-_main
.dw 0x0d,0x0a
.code
LM55:
R1=(-1) // QImode move
[28675]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,112,',0,0
.dd LM56-_main
.dw 0x0d,0x0a
.code
LM56:
R1=(-1) // QImode move
[28674]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,113,',0,0
.dd LM57-_main
.dw 0x0d,0x0a
.code
LM57:
R1=0 // QImode move
[28672]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,115,',0,0
.dd LM58-_main
.dw 0x0d,0x0a
.code
LM58:
R1=12288 // QImode move
[28679]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,116,',0,0
.dd LM59-_main
.dw 0x0d,0x0a
.code
LM59:
R1=12288 // QImode move
[28680]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,119,',0,0
.dd LM60-_main
.dw 0x0d,0x0a
.code
LM60:
R1=[28679] // QImode move
R2=R1|1024
[28679]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,120,',0,0
.dd LM61-_main
.dw 0x0d,0x0a
.code
LM61:
R1=[28680] // QImode move
R2=R1|1152
[28680]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,121,',0,0
.dd LM62-_main
.dw 0x0d,0x0a
.code
LM62:
R1=[28677] // QImode move
R2=R1|1024
[28677]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,123,',0,0
.dd LM63-_main
.dw 0x0d,0x0a
.code
LM63:
R1=0 // QImode move
[28708]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,124,',0,0
.dd LM64-_main
.dw 0x0d,0x0a
.code
LM64:
R1=5 // QImode move
[28709]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,126,',0,0
.dd LM65-_main
.dw 0x0d,0x0a
.code
LM65:
R1=0 // QImode move
[28705]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,127,',0,0
.dd LM66-_main
.dw 0x0d,0x0a
.code
LM66:
R1=192 // QImode move
[28706]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,129,',0,0
.dd LM67-_main
.dw 0x0d,0x0a
.code
LM67:
R1=BP // QImode move
R2=BP+11
R1=0 // QImode move
R3=R2 // QImode move
[R3]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,130,',0,0
.dd LM68-_main
.dw 0x0d,0x0a
.code
LM68:
L27:
pc=L29 // Indirect jump
pc=L28 // Indirect jump
L29:
.debug
.dw '.stabn 0x44,0,133,',0,0
.dd LM69-_main
.dw 0x0d,0x0a
.code
LM69:
L30:
R1=BP // QImode move
R2=BP+11
R4=R2 // QImode move
R1=[R4] // QImode move
CMP R1,7 // QImode compare
NSJNG L32 //QImode LE
pc=L31 // Indirect jump
L32:
.debug
.dw '.stabn 0x44,0,135,',0,0
.dd LM70-_main
.dw 0x0d,0x0a
.code
LM70:
L33:
R2=[28706] // QImode move
R1=R2&128
CMP R1,0 // QImode test
NSJNZ L35 //QImode NE
pc=L34 // Indirect jump
L35:
.debug
.dw '.stabn 0x44,0,137,',0,0
.dd LM71-_main
.dw 0x0d,0x0a
.code
LM71:
R1=BP // QImode move
R2=BP+11
R1=R2 // QImode move
R3=[R1] // QImode move
R1=BP // QImode move
R1 = R1 + R3 //addqi3
R2=[28707] // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,138,',0,0
.dd LM72-_main
.dw 0x0d,0x0a
.code
LM72:
R1=BP // QImode move
R2=BP+11
R3=BP // QImode move
R1=BP+11
R2=BP // QImode move
R3=BP+11
R4=R3 // QImode move
R2=[R4] // QImode move
R3=R2+1
R2=R1 // QImode move
[R2]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,139,',0,0
.dd LM73-_main
.dw 0x0d,0x0a
.code
LM73:
R1=1 // QImode move
[28690]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,140,',0,0
.dd LM74-_main
.dw 0x0d,0x0a
.code
LM74:
R1=BP // QImode move
R2=BP+11
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,8 // QImode compare
NSJNG L36 //QImode LE
.debug
.dw '.stabn 0x44,0,141,',0,0
.dd LM75-_main
.dw 0x0d,0x0a
.code
LM75:
pc=L34 // Indirect jump
L36:
.debug
.dw '.stabn 0x44,0,142,',0,0
.dd LM76-_main
.dw 0x0d,0x0a
.code
LM76:
pc=L33 // Indirect jump
L34:
.debug
.dw '.stabn 0x44,0,143,',0,0
.dd LM77-_main
.dw 0x0d,0x0a
.code
LM77:
pc=L30 // Indirect jump
L31:
.debug
.dw '.stabn 0x44,0,145,',0,0
.dd LM78-_main
.dw 0x0d,0x0a
.code
LM78:
R1=BP // QImode move
R2=BP+11
R1=0 // QImode move
R4=R2 // QImode move
[R4]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,147,',0,0
.dd LM79-_main
.dw 0x0d,0x0a
.code
LM79:
R1=BP // QImode move
R2=BP+10
R1=0 // QImode move
R3=R2 // QImode move
[R3]=R1 // QImode move
L37:
R1=BP // QImode move
R2=BP+10
R4=R2 // QImode move
R1=[R4] // QImode move
CMP R1,7 // QImode compare
NSJNG L40 //QImode LE
pc=L38 // Indirect jump
L40:
.debug
.dw '.stabn 0x44,0,149,',0,0
.dd LM80-_main
.dw 0x0d,0x0a
.code
LM80:
R1=0 // QImode move
R2=BP // QImode move
R3=BP+10
R2=R3 // QImode move
R4=[R2] // QImode move
R2=BP // QImode move
R2 = R2 + R4 //addqi3
R4=R2 // QImode move
R3=[R4] // QImode move
CMP R3,255 // QImode compare
NSJNZ L42 //QImode NE
R1=1 // QImode move
L42:
R2=0 // QImode move
R3=BP // QImode move
R3=BP+10
[bp+16]=R3 // QImode move
R4=[bp+16] // QImode move
R3=[R4] // QImode move
R4=R3+1
R3=BP // QImode move
R3 = R3 + R4 //addqi3
R4=R3 // QImode move
R4=[R4] // QImode move
[bp+16]=R4 // QImode move
R3=[bp+16] // QImode move
CMP R3,255 // QImode compare
NSJNZ L43 //QImode NE
R2=1 // QImode move
L43:
R1&=R2
CMP R1,0 // QImode test
NSJZ L39 //QImode EQ
.debug
.dw '.stabn 0x44,0,151,',0,0
.dd LM81-_main
.dw 0x0d,0x0a
.code
LM81:
R2=BP // QImode move
R1=BP+12
R2=BP // QImode move
R3=BP+10
R4=R3 // QImode move
R2=[R4] // QImode move
R3=R2+2
R2=BP // QImode move
R2 = R2 + R3 //addqi3
R4=R2 // QImode move
R3=[R4] // QImode move
R2=R1 // QImode move
[R2]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,152,',0,0
.dd LM82-_main
.dw 0x0d,0x0a
.code
LM82:
R1=BP // QImode move
R3=BP+12
R2=R3 // QImode move
R1=R3+1
R2=BP // QImode move
R3=BP+10
R4=R3 // QImode move
R2=[R4] // QImode move
R3=R2+3
R2=BP // QImode move
R2 = R2 + R3 //addqi3
R4=R2 // QImode move
R3=[R4] // QImode move
R2=R1 // QImode move
[R2]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,153,',0,0
.dd LM83-_main
.dw 0x0d,0x0a
.code
LM83:
pc=L38 // Indirect jump
L41:
.debug
.dw '.stabn 0x44,0,147,',0,0
.dd LM84-_main
.dw 0x0d,0x0a
.code
LM84:
L39:
R1=BP // QImode move
R2=BP+10
R3=BP // QImode move
R1=BP+10
R2=BP // QImode move
R3=BP+10
R4=R3 // QImode move
R2=[R4] // QImode move
R3=R2+1
R2=R1 // QImode move
[R2]=R3 // QImode move
pc=L37 // Indirect jump
L38:
.debug
.dw '.stabn 0x44,0,158,',0,0
.dd LM85-_main
.dw 0x0d,0x0a
.code
LM85:
R2=BP // QImode move
R1=BP+8
R2=BP // QImode move
R3=BP+12
[bp+17]=R3 // QImode move
R4=[bp+17] // QImode move
R4=[R4] // QImode move
R2=R4&7
R3=256 // QImode move
[bp+16]=R3 // QImode move
R4=[bp+16] // QImode move
mr=R2*R4 // r3=R2*R4 16bit=16bit*16bit
R2=BP // QImode move
R4=BP+12
R2=R4 // QImode move
R4=R4+1
R2=R3 // QImode move
R3=R4 // QImode move
R2 = R2 + [R3] //addqi3
R4=R1 // QImode move
[R4]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,160,',0,0
.dd LM86-_main
.dw 0x0d,0x0a
.code
LM86:
R1=BP // QImode move
R1=BP+8
[bp+15]=R1 // QImode move
R1=BP // QImode move
R2=BP+8
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
call __cvi1f2 // call with return value
SP = SP + 1 //SP
R3=0 // HFmode immediate to register move
R4=16160
push R3,R4 to [sp] // pushhf
push R1,R2 to [sp] // pushhf
call __mulf2 // call with return value
SP = SP + 4 //SP
push R1,R2 to [sp] // pushhf
call __cvf2i1 // call with return value
SP = SP + 2 //SP
R4=[bp+15] // QImode move
[R4]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,165,',0,0
.dd LM87-_main
.dw 0x0d,0x0a
.code
LM87:
R1=BP // QImode move
R2=BP+8
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
call _xianshi // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,166,',0,0
.dd LM88-_main
.dw 0x0d,0x0a
.code
LM88:
R1=300 // QImode move
[SP--]=R1 // QImode move
call _delay // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,167,',0,0
.dd LM89-_main
.dw 0x0d,0x0a
.code
LM89:
R1=BP // QImode move
R2=BP+8
R4=R2 // QImode move
R1=[R4] // QImode move
CMP R1,900 // QImode compare
NSJNG L44 //QImode LE
.debug
.dw '.stabn 0x44,0,168,',0,0
.dd LM90-_main
.dw 0x0d,0x0a
.code
LM90:
R1=BP // QImode move
R2=BP+8
R1=900 // QImode move
R3=R2 // QImode move
[R3]=R1 // QImode move
L44:
.debug
.dw '.stabn 0x44,0,169,',0,0
.dd LM91-_main
.dw 0x0d,0x0a
.code
LM91:
R1=BP // QImode move
R2=BP+8
R4=R2 // QImode move
R1=[R4] // QImode move
[SP--]=R1 // QImode move
call _dushu // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,171,',0,0
.dd LM92-_main
.dw 0x0d,0x0a
.code
LM92:
R1=1 // QImode move
[28690]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,172,',0,0
.dd LM93-_main
.dw 0x0d,0x0a
.code
LM93:
pc=L27 // Indirect jump
L28:
.debug
.dw '.stabn 0x44,0,173,',0,0
.dd LM94-_main
.dw 0x0d,0x0a
.code
LM94:
LBE5:
.debug
.dw '.stabn 0x44,0,173,',0,0
.dd LM95-_main
.dw 0x0d,0x0a
.code
LM95:
L26:
sp+=18
pop bp from [sp]
retf
.endp // end of main
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB5-_main
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "shuju:23=ar1;0;7;1",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabs "shuchu:1",128,0,0,8',0x0d,0x0a
.CODE
.debug
.dw '.stabs "biaozhi:1",128,0,0,9',0x0d,0x0a
.CODE
.debug
.dw '.stabs "i:1",128,0,0,10',0x0d,0x0a
.CODE
.debug
.dw '.stabs "number:1",128,0,0,11',0x0d,0x0a
.CODE
.debug
.dw '.stabs "data:24=ar1;0;1;1",128,0,0,12',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE5-_main
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME5-_main
.dw 0x0d,0x0a
.code
LME5:
.code
.debug
.dw '.stabs "PlaySnd_Auto:F19",36,0,0,',0,0,offset _PlaySnd_Auto,seg _PlaySnd_Auto,0x0d,0x0a
.CODE
.public _PlaySnd_Auto
_PlaySnd_Auto: .proc
.debug
.dw '.stabn 0x44,0,187,',0,0
.dd LM96-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM96:
// 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,188,',0,0
.dd LM97-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM97:
R1=1 // QImode move
[SP--]=R1 // QImode move
call _SACM_A2000_Initial // call with return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,189,',0,0
.dd LM98-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM98:
R1=3 // QImode move
[SP--]=R1 // QImode move
R1=[BP] // QImode move
R3=[BP] // QImode move
R2=R3+1
R3=R2 // QImode move
R1=[R3] // QImode move
[SP--]=R1 // QImode move
R2=[BP] // QImode move
R1=[R2] // QImode move
[SP--]=R1 // QImode move
call _SACM_A2000_Play // call without return value
SP = SP + 3 //SP
.debug
.dw '.stabn 0x44,0,190,',0,0
.dd LM99-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM99:
L54:
call _SACM_A2000_Status // call with return value
R2=R1&1
CMP R2,0 // QImode test
NSJNZ L56 //QImode NE
pc=L55 // Indirect jump
L56:
.debug
.dw '.stabn 0x44,0,192,',0,0
.dd LM100-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM100:
call _SACM_A2000_ServiceLoop // call without return value
.debug
.dw '.stabn 0x44,0,193,',0,0
.dd LM101-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM101:
R1=1 // QImode move
[28690]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,194,',0,0
.dd LM102-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM102:
pc=L54 // Indirect jump
L55:
.debug
.dw '.stabn 0x44,0,195,',0,0
.dd LM103-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM103:
call _SACM_A2000_Stop // call without return value
.debug
.dw '.stabn 0x44,0,196,',0,0
.dd LM104-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM104:
.debug
.dw '.stabn 0x44,0,196,',0,0
.dd LM105-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LM105:
L53:
sp+=1
pop bp from [sp]
retf
.endp // end of PlaySnd_Auto
.debug
.dw '.stabs "uiSndIndex:p4",160,0,0,4',0x0d,0x0a
.CODE
.debug
.dw '.stabs "uiDAC_Channel:p4",160,0,0,5',0x0d,0x0a
.CODE
.debug
.dw '.stabf ',0,0
.dd LME6-_PlaySnd_Auto
.dw 0x0d,0x0a
.code
LME6:
.external _SACM_A2000_Stop
.external _SACM_A2000_ServiceLoop
.external _SACM_A2000_Status
.external _SACM_A2000_Play
.external _SACM_A2000_Initial
.external __cvf2i1
.external __mulf2
.external __cvi1f2
.external __modi1
.external __divi1
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -