📄 main.asm
字号:
.dw 0x0d,0x0a
.code
LM33:
PC=L19 // jump
L24:
.debug
.dw '.stabn 0x44,0,83,',0,0
.dd LM34-_main
.dw 0x0d,0x0a
.code
LM34:
R2=0 // sign extend
R1=[_ch_num]
jpl 1
R2=-1
R3=_led_buf // QImode move
R2=R1 // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=R1 // QImode move
R2=[R4] // QImode move
CMP R2,9 // QImode compare
NSJNZ L25 //QImode NE
.debug
.dw '.stabn 0x44,0,84,',0,0
.dd LM35-_main
.dw 0x0d,0x0a
.code
LM35:
R2=0 // sign extend
R1=[_ch_num]
jpl 1
R2=-1
R3=_led_buf // QImode move
R2=R1 // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R2=0 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
PC=L26 // jump
L25:
.debug
.dw '.stabn 0x44,0,86,',0,0
.dd LM36-_main
.dw 0x0d,0x0a
.code
LM36:
R2=0 // sign extend
R1=[_ch_num]
jpl 1
R2=-1
R3=_led_buf // QImode move
R2=R1 // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=0 // sign extend
R3=[_ch_num]
jpl 1
R4=-1
R1=_led_buf // QImode move
R2=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=0 // sign extend
R3=[_ch_num]
jpl 1
R4=-1
R2=_led_buf // QImode move
R2 = R2 + R3 //addqi3
R4=R2 // QImode move
R3=[R4] // QImode move
R2=R3+1
R3=R1 // QImode move
[R3]=R2 // QImode move
L26:
.debug
.dw '.stabn 0x44,0,87,',0,0
.dd LM37-_main
.dw 0x0d,0x0a
.code
LM37:
PC=L19 // jump
L27:
.debug
.dw '.stabn 0x44,0,91,',0,0
.dd LM38-_main
.dw 0x0d,0x0a
.code
LM38:
R1=[_ch_num] // QImode move
CMP R1,5 // QImode compare
NSJNZ L28 //QImode NE
.debug
.dw '.stabn 0x44,0,92,',0,0
.dd LM39-_main
.dw 0x0d,0x0a
.code
LM39:
R1=3 // QImode move
[_ch_num]=R1 // QImode move
PC=L29 // jump
L28:
.debug
.dw '.stabn 0x44,0,94,',0,0
.dd LM40-_main
.dw 0x0d,0x0a
.code
LM40:
R1=[_ch_num] // QImode move
R2=1 // QImode move
[_ch_num]=R1+R2 //addqi3_Qrr
L29:
.debug
.dw '.stabn 0x44,0,95,',0,0
.dd LM41-_main
.dw 0x0d,0x0a
.code
LM41:
PC=L19 // jump
L30:
.debug
.dw '.stabn 0x44,0,99,',0,0
.dd LM42-_main
.dw 0x0d,0x0a
.code
LM42:
R2=0 // sign extend
R1=[_ch_num]
jpl 1
R2=-1
R3=_led_buf // QImode move
R2=R1 // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=R1 // QImode move
R2=[R4] // QImode move
CMP R2,0 // QImode test
NSJNZ L31 //QImode NE
.debug
.dw '.stabn 0x44,0,100,',0,0
.dd LM43-_main
.dw 0x0d,0x0a
.code
LM43:
R2=0 // sign extend
R1=[_ch_num]
jpl 1
R2=-1
R3=_led_buf // QImode move
R2=R1 // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R2=9 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
PC=L32 // jump
L31:
.debug
.dw '.stabn 0x44,0,102,',0,0
.dd LM44-_main
.dw 0x0d,0x0a
.code
LM44:
R2=0 // sign extend
R1=[_ch_num]
jpl 1
R2=-1
R3=_led_buf // QImode move
R2=R1 // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=0 // sign extend
R3=[_ch_num]
jpl 1
R4=-1
R1=_led_buf // QImode move
R2=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=0 // sign extend
R3=[_ch_num]
jpl 1
R4=-1
R2=_led_buf // QImode move
R2 = R2 + R3 //addqi3
R4=R2 // QImode move
R3=[R4] // QImode move
R2=R3+(-1)
R3=R1 // QImode move
[R3]=R2 // QImode move
L32:
.debug
.dw '.stabn 0x44,0,103,',0,0
.dd LM45-_main
.dw 0x0d,0x0a
.code
LM45:
PC=L19 // jump
L33:
.debug
.dw '.stabn 0x44,0,107,',0,0
.dd LM46-_main
.dw 0x0d,0x0a
.code
LM46:
R2=0 // sign extend
R1=[_ch_num]
jpl 1
R2=-1
R3=_led_buf // QImode move
R2=R1 // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=R1 // QImode move
R2=[R4] // QImode move
CMP R2,9 // QImode compare
NSJNZ L34 //QImode NE
.debug
.dw '.stabn 0x44,0,108,',0,0
.dd LM47-_main
.dw 0x0d,0x0a
.code
LM47:
R2=0 // sign extend
R1=[_ch_num]
jpl 1
R2=-1
R3=_led_buf // QImode move
R2=R1 // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R2=0 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
PC=L35 // jump
L34:
.debug
.dw '.stabn 0x44,0,110,',0,0
.dd LM48-_main
.dw 0x0d,0x0a
.code
LM48:
R2=0 // sign extend
R1=[_ch_num]
jpl 1
R2=-1
R3=_led_buf // QImode move
R2=R1 // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=0 // sign extend
R3=[_ch_num]
jpl 1
R4=-1
R1=_led_buf // QImode move
R2=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=0 // sign extend
R3=[_ch_num]
jpl 1
R4=-1
R2=_led_buf // QImode move
R2 = R2 + R3 //addqi3
R4=R2 // QImode move
R3=[R4] // QImode move
R2=R3+1
R3=R1 // QImode move
[R3]=R2 // QImode move
L35:
.debug
.dw '.stabn 0x44,0,111,',0,0
.dd LM49-_main
.dw 0x0d,0x0a
.code
LM49:
PC=L19 // jump
L36:
.debug
.dw '.stabn 0x44,0,115,',0,0
.dd LM50-_main
.dw 0x0d,0x0a
.code
LM50:
R1=[_flat] // QImode move
R2=R1^0xffff // one_cmplqi2
[_flat]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,116,',0,0
.dd LM51-_main
.dw 0x0d,0x0a
.code
LM51:
R1=[_flat] // QImode move
CMP R1,0 // QImode test
NSJNZ L37 //QImode NE
.debug
.dw '.stabn 0x44,0,117,',0,0
.dd LM52-_main
.dw 0x0d,0x0a
.code
LM52:
CALL _Save_chw // call without return value
L37:
.debug
.dw '.stabn 0x44,0,118,',0,0
.dd LM53-_main
.dw 0x0d,0x0a
.code
LM53:
PC=L19 // jump
L39:
L20:
L19:
.debug
.dw '.stabn 0x44,0,124,',0,0
.dd LM54-_main
.dw 0x0d,0x0a
.code
LM54:
R1=[_warning] // QImode move
CMP R1,0 // QImode test
NSJZ L40 //QImode EQ
.debug
.dw '.stabn 0x44,0,125,',0,0
.dd LM55-_main
.dw 0x0d,0x0a
.code
LM55:
R1=[_warning] // QImode move
CMP R1,2 // QImode compare
NSJZ L43 //QImode EQ
CMP R1,2 // QImode compare
NSJG L47 //QImode GT
CMP R1,1 // QImode compare
NSJZ L42 //QImode EQ
PC=L40 // jump
L47:
CMP R1,3 // QImode compare
NSJZ L44 //QImode EQ
PC=L40 // jump
L42:
.debug
.dw '.stabn 0x44,0,129,',0,0
.dd LM56-_main
.dw 0x0d,0x0a
.code
LM56:
R1=0 // QImode move
[SP--]=R1 // QImode move
CALL _PlaySnd // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,130,',0,0
.dd LM57-_main
.dw 0x0d,0x0a
.code
LM57:
R1=0 // QImode move
[_warning]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,131,',0,0
.dd LM58-_main
.dw 0x0d,0x0a
.code
LM58:
PC=L40 // jump
L43:
.debug
.dw '.stabn 0x44,0,135,',0,0
.dd LM59-_main
.dw 0x0d,0x0a
.code
LM59:
R1=1 // QImode move
[SP--]=R1 // QImode move
CALL _PlaySnd // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,136,',0,0
.dd LM60-_main
.dw 0x0d,0x0a
.code
LM60:
R1=0 // QImode move
[_warning]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,137,',0,0
.dd LM61-_main
.dw 0x0d,0x0a
.code
LM61:
PC=L40 // jump
L44:
.debug
.dw '.stabn 0x44,0,141,',0,0
.dd LM62-_main
.dw 0x0d,0x0a
.code
LM62:
R1=2 // QImode move
[SP--]=R1 // QImode move
CALL _PlaySnd // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,142,',0,0
.dd LM63-_main
.dw 0x0d,0x0a
.code
LM63:
R1=0 // QImode move
[_warning]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,143,',0,0
.dd LM64-_main
.dw 0x0d,0x0a
.code
LM64:
PC=L40 // jump
L46:
L41:
L40:
.debug
.dw '.stabn 0x44,0,147,',0,0
.dd LM65-_main
.dw 0x0d,0x0a
.code
LM65:
R1=1 // QImode move
[28690]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,148,',0,0
.dd LM66-_main
.dw 0x0d,0x0a
.code
LM66:
PC=L13 // jump
L14:
.debug
.dw '.stabn 0x44,0,149,',0,0
.dd LM67-_main
.dw 0x0d,0x0a
.code
LM67:
R1=0 // QImode move
PC=L8 // jump
.debug
.dw '.stabn 0x44,0,150,',0,0
.dd LM68-_main
.dw 0x0d,0x0a
.code
LM68:
LBE3:
.debug
.dw '.stabn 0x44,0,150,',0,0
.dd LM69-_main
.dw 0x0d,0x0a
.code
LM69:
L8:
SP+=3
POP BP from [SP]
RETF
.endp // end of main
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB3-_main
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "n:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE3-_main
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME2-_main
.dw 0x0d,0x0a
.code
LME2:
.code
.debug
.dw '.stabs "Save_chw:F19",36,0,0,',0,0,offset _Save_chw,seg _Save_chw,0x0d,0x0a
.CODE
.public _Save_chw
_Save_chw: .proc
.debug
.dw '.stabn 0x44,0,159,',0,0
.dd LM70-_Save_chw
.dw 0x0d,0x0a
.code
LM70:
// total=2, vars=2
// frame_pointer_needed: 1
.debug
.dw '.stabn 0xa6,0,0,2',0x0d, 0x0a
.code
PUSH BP to [SP]
SP-=2
BP=SP+1
R1=BP+5
[BP+1]=R1 // QImode move
LBB4:
.debug
.dw '.stabn 0x44,0,161,',0,0
.dd LM71-_Save_chw
.dw 0x0d,0x0a
.code
LM71:
R1=(-4096) // QImode move
[SP--]=R1 // QImode move
CALL _F_FlashErase // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,162,',0,0
.dd LM72-_Save_chw
.dw 0x0d,0x0a
.code
LM72:
R1=0 // QImode move
[BP]=R1 // QImode move
L65:
R1=[BP] // QImode move
CMP R1,2 // QImode compare
NSJNA L68 //QImode LEU
PC=L66 // jump
L68:
.debug
.dw '.stabn 0x44,0,164,',0,0
.dd LM73-_Save_chw
.dw 0x0d,0x0a
.code
LM73:
R2=[BP] // QImode move
R1=R2+3
R3=R1
R4=0
R1=_led_buf // QImode move
R2=R3 // QImode move
R1 = R1 + R2 //addqi3
R3=R1 // QImode move
R2=[R3] // QImode move
[SP--]=R2 // QImode move
R1=[BP]
R2=0
R3=R1+(-4096)
[SP--]=R3 // QImode move
CALL _F_FlashWrite1Word // call without return value
SP = SP + 2 //SP
.debug
.dw '.stabn 0x44,0,162,',0,0
.dd LM74-_Save_chw
.dw 0x0d,0x0a
.code
LM74:
L67:
R1=[BP] // QImode move
R2=R1+1
[BP]=R2 // QImode move
PC=L65 // jump
L66:
.debug
.dw '.stabn 0x44,0,166,',0,0
.dd LM75-_Save_chw
.dw 0x0d,0x0a
.code
LM75:
LBE4:
.debug
.dw '.stabn 0x44,0,166,',0,0
.dd LM76-_Save_chw
.dw 0x0d,0x0a
.code
LM76:
L64:
SP+=2
POP BP from [SP]
RETF
.endp // end of Save_chw
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB4-_Save_chw
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "n:4",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE4-_Save_chw
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME3-_Save_chw
.dw 0x0d,0x0a
.code
LME3:
.external _F_FlashWrite1Word
.external _F_FlashErase
.external _PlaySnd
.external _Key_Get
.external _Key_Init
.external __modu1
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -