📄 main.asm
字号:
[bp+46]=R1 // QImode move
[bp+47]=R2 // QImode move
R2=BP+65
R1=[R2] // QImode move
//split same, R1, [R1]
R2=R1 // QImode move
R1=[R2++] // QImode move
R2=[R2--] // QImode move
//split [bp+48], R1
[bp+48]=R1 // QImode move
[bp+49]=R2 // QImode move
R2=[bp+48] // QImode move
[bp+50]=R2 // QImode move
R1=[bp+46] // QImode move
R1 = R1 + [bp+50] //addqi3
[bp+50]=R1 // QImode move
R3=[bp+50] // QImode move
R1=1 // QImode move
R2=BP+65
[R2]=R1 // QImode move
R2=[bp+50] // QImode move
R1=[bp+48] // QImode move
CMP R2,R1 // QImode compare
NSJB L17 //QImode LTU
R1=0 // QImode move
R2=BP+65
[R2]=R1 // QImode move
L17:
R2=[bp+49] // QImode move
[bp+51]=R2 // QImode move
R1=[bp+47] // QImode move
R1 = R1 + [bp+51] //addqi3
[bp+51]=R1 // QImode move
R4=[bp+51] // QImode move
R2=[bp+51] // QImode move
[bp+52]=R2 // QImode move
R1=[bp+52] // QImode move
R2=BP+65
R1 = R1 + [R2] //addqi3
[bp+52]=R1 // QImode move
R4=[bp+52] // QImode move
R1=BP+64
R1=[R1] // QImode move
//split [R1], R3
[R1++]=R3 // QImode move
[R1--]=R4 // QImode move
.debug
.dw '.stabn 0x44,0,111,',0,0
.dd LM36-_main
.dw 0x0d,0x0a
.code
LM36:
R1=BP // QImode move
R2=BP+1
R3=BP // QImode move
R1=BP+1
R2=BP // QImode move
R3=BP+1
R4=R3 // QImode move
R2=[R4] // QImode move
R3=R2+1
R2=R1 // QImode move
[R2]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,108,',0,0
.dd LM37-_main
.dw 0x0d,0x0a
.code
LM37:
L15:
R1=[BP] // QImode move
R2=R1+1
[BP]=R2 // QImode move
pc=L13 // Indirect jump
L14:
.debug
.dw '.stabn 0x44,0,113,',0,0
.dd LM38-_main
.dw 0x0d,0x0a
.code
LM38:
R1=BP // QImode move
R3=BP+12
[bp+53]=R3 // QImode move
R1=BP // QImode move
R3=BP+13
R4=R3 // QImode move
//split R1, [R4]
R1=[R4++] // QImode move
R2=[R4--] // QImode move
//split R3, 20
R3=20 // QImode move
R4=0 // QImode move
push R3,R4 to [sp] // pushhi
push R1,R2 to [sp] // pushhi
call __divi2 // call with return value
SP = SP + 4 //SP
R3=R1 // QImode move
R1=[bp+53] // QImode move
[R1]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,114,',0,0
.dd LM39-_main
.dw 0x0d,0x0a
.code
LM39:
R1=BP // QImode move
R2=BP+15
R1=R2 // QImode move
R3=R2+25
[bp+54]=R3 // QImode move
R1=BP // QImode move
R2=BP+12
R1=R2 // QImode move
R3=[R1]
R4=0
push R3,R4 to [sp] // pushhi
call __cvi2f2 // call with return value
SP = SP + 2 //SP
R3=13107 // HFmode immediate to register move
R4=16467
push R3,R4 to [sp] // pushhf
push R1,R2 to [sp] // pushhf
call __mulf2 // call with return value
SP = SP + 4 //SP
R3=49152 // HFmode immediate to register move
R4=18303
push R3,R4 to [sp] // pushhf
push R1,R2 to [sp] // pushhf
call __divf2 // call with return value
SP = SP + 4 //SP
R3=[bp+54] // QImode move
[R3++]=R1 // [RD]=RS HFmode, RD!=RS+1
[R3--]=R2
.debug
.dw '.stabn 0x44,0,116,',0,0
.dd LM40-_main
.dw 0x0d,0x0a
.code
LM40:
R1=BP // QImode move
R4=BP+7
[bp+55]=R4 // QImode move
R1=BP // QImode move
R3=BP+15
R2=R3 // QImode move
R1=R3+27
R2=BP // QImode move
R3=BP+15
R2=R3 // QImode move
R4=R3+25
R2=BP+67
[R2]=R4 // QImode move
R3=R1 // QImode move
R4=R3-1 // RD=[RS] HFmode, RD==RS
pop R3, R4 from [R4]
R2=BP+69
[R2++]=R3 // [RD]=RS HFmode, RD!=RS+1
[R2--]=R4
R1=BP+67
R2=[R1] // QImode move
R1=[R2++] // RD=[RS] HFmode, RD+1=RS
R2=[R2]
R3=BP+67
[R3++]=R1 // [RD]=RS HFmode, RD!=RS+1
[R3--]=R2
R2=BP+67
R1=[R2++] // RD=[RS] HFmode, RD+1=RS
R2=[R2]
push R1,R2 to [sp] // pushhf
R2=BP+69
R1=[R2++] // RD=[RS] HFmode, RD+1=RS
R2=[R2]
push R1,R2 to [sp] // pushhf
call __subf2 // call with return value
SP = SP + 4 //SP
R3=[bp+55] // QImode move
[R3++]=R1 // [RD]=RS HFmode, RD!=RS+1
[R3--]=R2
.debug
.dw '.stabn 0x44,0,117,',0,0
.dd LM41-_main
.dw 0x0d,0x0a
.code
LM41:
R1=BP // QImode move
R3=BP+7
R4=R3 // QImode move
R1=[R4++] // RD=[RS] HFmode, RD!=RS
R2=[R4--]
R3=52429 // HFmode immediate to register move
R4=15820
push R3,R4 to [sp] // pushhf
push R1,R2 to [sp] // pushhf
call __cmpf2 // call with return value
SP = SP + 4 //SP
CMP R1,1 // QImode compare
NSJNL L18 //QImode GE
R1=BP // QImode move
R3=BP+7
R4=R3 // QImode move
R1=[R4++] // RD=[RS] HFmode, RD!=RS
R2=[R4--]
R3=52429 // HFmode immediate to register move
R4=48588
push R3,R4 to [sp] // pushhf
push R1,R2 to [sp] // pushhf
call __cmpf2 // call with return value
SP = SP + 4 //SP
CMP R1,1 // QImode compare
NSJNG L18 //QImode LE
.debug
.dw '.stabn 0x44,0,120,',0,0
.dd LM42-_main
.dw 0x0d,0x0a
.code
LM42:
R1=BP // QImode move
R2=BP+2
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,0 // QImode test
NSJNZ L19 //QImode NE
.debug
.dw '.stabn 0x44,0,123,',0,0
.dd LM43-_main
.dw 0x0d,0x0a
.code
LM43:
R1=1 // QImode move
[SP--]=R1 // QImode move
R1=1 // QImode move
[SP--]=R1 // QImode move
R1=1 // QImode move
[SP--]=R1 // QImode move
R1=1 // QImode move
[SP--]=R1 // QImode move
R1=9 // QImode move
[SP--]=R1 // QImode move
call _Set_IOB_Bit // call with return value
SP = SP + 5 //SP
.debug
.dw '.stabn 0x44,0,124,',0,0
.dd LM44-_main
.dw 0x0d,0x0a
.code
LM44:
R1=BP // QImode move
R2=BP+2
R3=BP // QImode move
R1=BP+2
R2=BP // QImode move
R3=BP+2
R4=R3 // QImode move
R2=[R4] // QImode move
R3=R2+1
R2=R1 // QImode move
[R2]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,125,',0,0
.dd LM45-_main
.dw 0x0d,0x0a
.code
LM45:
pc=L20 // Indirect jump
L19:
.debug
.dw '.stabn 0x44,0,126,',0,0
.dd LM46-_main
.dw 0x0d,0x0a
.code
LM46:
R1=BP // QImode move
R2=BP+2
R3=BP // QImode move
R1=BP+2
R2=BP // QImode move
R3=BP+2
R4=R3 // QImode move
R2=[R4] // QImode move
R3=R2+1
R2=R1 // QImode move
[R2]=R3 // QImode move
L20:
.debug
.dw '.stabn 0x44,0,127,',0,0
.dd LM47-_main
.dw 0x0d,0x0a
.code
LM47:
pc=L21 // Indirect jump
L18:
.debug
.dw '.stabn 0x44,0,130,',0,0
.dd LM48-_main
.dw 0x0d,0x0a
.code
LM48:
R1=BP // QImode move
R2=BP+5
R3=R2 // QImode move
R1=[R3] // QImode move
CMP R1,255 // QImode compare
NSJG L22 //QImode GT
R1=BP // QImode move
R2=BP+6
R4=R2 // QImode move
R1=[R4] // QImode move
CMP R1,0 // QImode test
NSJNZ L22 //QImode NE
.debug
.dw '.stabn 0x44,0,132,',0,0
.dd LM49-_main
.dw 0x0d,0x0a
.code
LM49:
R2=BP // QImode move
R1=BP+5
R2=BP // QImode move
R3=BP+5
R4=R3 // QImode move
R2=[R4] // QImode move
R3=R2+1
R2=R1 // QImode move
[R2]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,134,',0,0
.dd LM50-_main
.dw 0x0d,0x0a
.code
LM50:
pc=L21 // Indirect jump
L22:
.debug
.dw '.stabn 0x44,0,137,',0,0
.dd LM51-_main
.dw 0x0d,0x0a
.code
LM51:
LBB4:
R1=BP // QImode move
R2=BP+6
R1=0 // QImode move
R3=R2 // QImode move
[R3]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,138,',0,0
.dd LM52-_main
.dw 0x0d,0x0a
.code
LM52:
R1=BP // QImode move
R2=BP+5
R1=0 // QImode move
R4=R2 // QImode move
[R4]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,139,',0,0
.dd LM53-_main
.dw 0x0d,0x0a
.code
LM53:
R1=BP // QImode move
R2=BP+2
R1=0 // QImode move
R3=R2 // QImode move
[R3]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,140,',0,0
.dd LM54-_main
.dw 0x0d,0x0a
.code
LM54:
R1=BP // QImode move
R3=BP+15
R2=R3 // QImode move
R1=R3+27
R2=BP // QImode move
R3=BP+15
R2=R3 // QImode move
R2=R3+25
R4=BP+67
[R4]=R2 // QImode move
R4=BP+67
R3=[R4] // QImode move
R4=R3-1 // RD=[RS] HFmode, RD==RS
pop R3, R4 from [R4]
[bp+56]=R3 // HFmode [BP+#IM6]=RS
[bp+57]=R4
R3=[bp+56] // HFmode RD=[BP+#IM6]
R4=[bp+57]
R2=R1 // QImode move
[R2++]=R3 // [RD]=RS HFmode, RD!=RS+1
[R2--]=R4
.debug
.dw '.stabn 0x44,0,141,',0,0
.dd LM55-_main
.dw 0x0d,0x0a
.code
LM55:
R1=BP // QImode move
R3=BP+10
[bp+58]=R3 // QImode move
R1=BP // QImode move
R2=BP+15
R1=R2 // QImode move
R3=R2+25
R4=R3 // QImode move
R1=[R4++] // RD=[RS] HFmode, RD!=RS
R2=[R4--]
R3=16384 // HFmode immediate to register move
R4=17948
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
R2=[bp+58] // QImode move
[R2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,142,',0,0
.dd LM56-_main
.dw 0x0d,0x0a
.code
LM56:
R1=BP // QImode move
R2=BP+15
R1=R2 // QImode move
R3=R2+20
[bp+59]=R3 // QImode move
R1=BP // QImode move
R2=BP+10
R4=R2 // QImode move
R1=[R4] // QImode move
R2=10000 // QImode move
[SP--]=R2 // QImode move
[SP--]=R1 // QImode move
call __divi1 // call with return value
SP = SP + 2 //SP
R2=10 // QImode move
[SP--]=R2 // QImode move
[SP--]=R1 // QImode move
call __modi1 // call with return value
SP = SP + 2 //SP
R2=[bp+59] // QImode move
[R2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,143,',0,0
.dd LM57-_main
.dw 0x0d,0x0a
.code
LM57:
R1=BP // QImode move
R2=BP+15
R1=R2 // QImode move
R3=R2+21
[bp+60]=R3 // QImode move
R1=BP // QImode move
R2=BP+10
R4=R2 // QImode move
R1=[R4] // QImode move
R2=1000 // QImode move
[SP--]=R2 // QImode move
[SP--]=R1 // QImode move
call __divi1 // call with return value
SP = SP + 2 //SP
R2=10 // QImode move
[SP--]=R2 // QImode move
[SP--]=R1 // QImode move
call __modi1 // call with return value
SP = SP + 2 //SP
R2=[bp+60] // QImode move
[R2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,144,',0,0
.dd LM58-_main
.dw 0x0d,0x0a
.code
LM58:
R1=BP // QImode move
R2=BP+15
R1=R2 // QImode move
R3=R2+22
[bp+61]=R3 // QImode move
R1=BP // QImode move
R2=BP+10
R4=R2 // QImode move
R1=[R4] // QImode move
R2=100 // QImode move
[SP--]=R2 // QImode move
[SP--]=R1 // QImode move
call __divi1 // call with return value
SP = SP + 2 //SP
R2=10 // QImode move
[SP--]=R2 // QImode move
[SP--]=R1 // QImode move
call __modi1 // call with return value
SP = SP + 2 //SP
R2=[bp+61] // QImode move
[R2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,145,',0,0
.dd LM59-_main
.dw 0x0d,0x0a
.code
LM59:
R1=BP // QImode move
R2=BP+15
R1=R2 // QImode move
R3=R2+23
[bp+62]=R3 // QImode move
R1=BP // QImode move
R2=BP+10
R4=R2 // QImode move
R1=[R4] // QImode move
R2=10 // QImode move
[SP--]=R2 // QImode move
[SP--]=R1 // QImode move
call __divi1 // call with return value
SP = SP + 2 //SP
R2=10 // QImode move
[SP--]=R2 // QImode move
[SP--]=R1 // QImode move
call __modi1 // call with return value
SP = SP + 2 //SP
R2=[bp+62] // QImode move
[R2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,146,',0,0
.dd LM60-_main
.dw 0x0d,0x0a
.code
LM60:
R1=BP // QImode move
R2=BP+15
R1=R2 // QImode move
R3=R2+24
[bp+63]=R3 // QImode move
R1=BP // QImode move
R2=BP+10
R4=R2 // QImode move
R1=[R4] // QImode move
R2=10 // QImode move
[SP--]=R2 // QImode move
[SP--]=R1 // QImode move
call __modi1 // call with return value
SP = SP + 2 //SP
R2=[bp+63] // QImode move
[R2]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,147,',0,0
.dd LM61-_main
.dw 0x0d,0x0a
.code
LM61:
R1=0 // QImode move
[SP--]=R1 // QImode move
R1=0 // QImode move
[SP--]=R1 // QImode move
R1=1 // QImode move
[SP--]=R1 // QImode move
R1=1 // QImode move
[SP--]=R1 // QImode move
R1=9 // QImode move
[SP--]=R1 // QImode move
call _Set_IOB_Bit // call with return value
SP = SP + 5 //SP
.debug
.dw '.stabn 0x44,0,149,',0,0
.dd LM62-_main
.dw 0x0d,0x0a
.code
LM62:
R1=0 // QImode move
[SP--]=R1 // QImode move
call _FG_ClearScreen // call with return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,150,',0,0
.dd LM63-_main
.dw 0x0d,0x0a
.code
LM63:
call _FG_InitGraphic // call with return value
.debug
.dw '.stabn 0x44,0,151,',0,0
.dd LM64-_main
.dw 0x0d,0x0a
.code
LM64:
R1=3 // QImode move
[SP--]=R1 // QImode move
call _FG_SetLineStyle // call with return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,152,',0,0
.dd LM65-_main
.dw 0x0d,0x0a
.code
LM65:
R1=0 // QImode move
[SP--]=R1 // QImode move
call _FG_SetLineStyle // call with return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,153,',0,0
.dd LM66-_main
.dw 0x0d,0x0a
.code
LM66:
R1=29 // QImode move
[SP--]=R1 // QImode move
R1=30 // QImode move
[SP--]=R1 // QImode move
call _FG_PutPixel // call with return value
SP = SP + 2 //SP
.debug
.dw '.stabn 0x44,0,154,',0,0
.dd LM67-_main
.dw 0x0d,0x0a
.code
LM67:
R1=0 // QImode move
[SP--]=R1 // QImode move
call _FG_SetBMPMode // call with return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,155,',0,0
.dd LM68-_main
.dw 0x0d,0x0a
.code
LM68:
R1=0 // QImode move
[SP--]=R1 // QImode move
call _FG_ClearScreen // call with return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,156,',0,0
.dd LM69-_main
.dw 0x0d,0x0a
.code
LM69:
R1=64 // QImode move
[SP--]=R1 // QImode move
R1=127 // QImode move
[SP--]=R1 // QImode move
R1=_dance8 // QImode move
[SP--]=R1 // QImode move
call _FG_PutBitmap // call with return value
SP = SP + 3 //SP
.debug
.dw '.stabn 0x44,0,157,',0,0
.dd LM70-_main
.dw 0x0d,0x0a
.code
LM70:
R1=3 // QImode move
[SP--]=R1 // QImode move
call _FG_SetLineStyle // call with return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,159,',0,0
.dd LM71-_main
.dw 0x0d,0x0a
.code
LM71:
R1=BP // QImode move
R2=BP+15
R1=R2 // QImode move
R2=R2+20
R4=R2 // QImode move
R3=[R4] // QImode move
R1=R3 // QImode move
CMP R1,3 // QImode compare
NSJA L29 //QImode GTU
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -