📄 main.asm
字号:
int fiq,irq
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,249,',0,0
.dd LM106-_TurnRight
.dw 0x0d,0x0a
.code
LM106:
R1=0 // QImode move
[_uiTimecont]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,250,',0,0
.dd LM107-_TurnRight
.dw 0x0d,0x0a
.code
LM107:
.debug
.dw '.stabn 0x44,0,250,',0,0
.dd LM108-_TurnRight
.dw 0x0d,0x0a
.code
LM108:
L82:
sp+=1
pop bp from [sp]
retf
.endp // end of TurnRight
.debug
.dw '.stabf ',0,0
.dd LME9-_TurnRight
.dw 0x0d,0x0a
.code
LME9:
.code
.debug
.dw '.stabs "TurnLeft:F19",36,0,0,',0,0,offset _TurnLeft,seg _TurnLeft,0x0d,0x0a
.CODE
.public _TurnLeft
_TurnLeft: .proc
.debug
.dw '.stabn 0x44,0,258,',0,0
.dd LM109-_TurnLeft
.dw 0x0d,0x0a
.code
LM109:
// 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,259,',0,0
.dd LM110-_TurnLeft
.dw 0x0d,0x0a
.code
LM110:
R1=3 // QImode move
[SP--]=R1 // QImode move
R1=10 // QImode move
[SP--]=R1 // QImode move
call _PlaySnd // call without return value
SP = SP + 2 //SP
.debug
.dw '.stabn 0x44,0,260,',0,0
.dd LM111-_TurnLeft
.dw 0x0d,0x0a
.code
LM111:
R1=9216 // QImode move
[28677]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,261,',0,0
.dd LM112-_TurnLeft
.dw 0x0d,0x0a
.code
LM112:
call _Delay // call without return value
.debug
.dw '.stabn 0x44,0,262,',0,0
.dd LM113-_TurnLeft
.dw 0x0d,0x0a
.code
LM113:
R1=6144 // QImode move
[28677]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,263,',0,0
.dd LM114-_TurnLeft
.dw 0x0d,0x0a
.code
LM114:
R1=[28717] // QImode move
R2=R1|4
[28717]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,264,',0,0
.dd LM115-_TurnLeft
.dw 0x0d,0x0a
.code
LM115:
// GCC inline ASM start
int fiq,irq
// GCC inline ASM end
.debug
.dw '.stabn 0x44,0,265,',0,0
.dd LM116-_TurnLeft
.dw 0x0d,0x0a
.code
LM116:
R1=0 // QImode move
[_uiTimecont]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,266,',0,0
.dd LM117-_TurnLeft
.dw 0x0d,0x0a
.code
LM117:
.debug
.dw '.stabn 0x44,0,266,',0,0
.dd LM118-_TurnLeft
.dw 0x0d,0x0a
.code
LM118:
L83:
sp+=1
pop bp from [sp]
retf
.endp // end of TurnLeft
.debug
.dw '.stabf ',0,0
.dd LME10-_TurnLeft
.dw 0x0d,0x0a
.code
LME10:
.code
.debug
.dw '.stabs "Stop:F19",36,0,0,',0,0,offset _Stop,seg _Stop,0x0d,0x0a
.CODE
.public _Stop
_Stop: .proc
.debug
.dw '.stabn 0x44,0,275,',0,0
.dd LM119-_Stop
.dw 0x0d,0x0a
.code
LM119:
// 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,276,',0,0
.dd LM120-_Stop
.dw 0x0d,0x0a
.code
LM120:
R1=0 // QImode move
[28677]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,277,',0,0
.dd LM121-_Stop
.dw 0x0d,0x0a
.code
LM121:
R1=3 // QImode move
[SP--]=R1 // QImode move
R1=5 // QImode move
[SP--]=R1 // QImode move
call _PlaySnd // call without return value
SP = SP + 2 //SP
.debug
.dw '.stabn 0x44,0,278,',0,0
.dd LM122-_Stop
.dw 0x0d,0x0a
.code
LM122:
.debug
.dw '.stabn 0x44,0,278,',0,0
.dd LM123-_Stop
.dw 0x0d,0x0a
.code
LM123:
L84:
sp+=1
pop bp from [sp]
retf
.endp // end of Stop
.debug
.dw '.stabf ',0,0
.dd LME11-_Stop
.dw 0x0d,0x0a
.code
LME11:
.code
.debug
.dw '.stabs "BSR:F19",36,0,0,',0,0,offset _BSR,seg _BSR,0x0d,0x0a
.CODE
.public _BSR
_BSR: .proc
.debug
.dw '.stabn 0x44,0,287,',0,0
.dd LM124-_BSR
.dw 0x0d,0x0a
.code
LM124:
// total=2, vars=2
// frame_pointer_needed: 1
push bp to [sp]
sp-=2
bp=sp+1
R1=BP+5
[bp+1]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,288,',0,0
.dd LM125-_BSR
.dw 0x0d,0x0a
.code
LM125:
LBB6:
.debug
.dw '.stabn 0x44,0,289,',0,0
.dd LM126-_BSR
.dw 0x0d,0x0a
.code
LM126:
call _BSR_GetResult // call with return value
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,291,',0,0
.dd LM127-_BSR
.dw 0x0d,0x0a
.code
LM127:
R1=[BP] // QImode move
CMP R1,0 // QImode test
NSJNG L86 //QImode LE
.debug
.dw '.stabn 0x44,0,293,',0,0
.dd LM128-_BSR
.dw 0x0d,0x0a
.code
LM128:
R1=0 // QImode move
[28677]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,294,',0,0
.dd LM129-_BSR
.dw 0x0d,0x0a
.code
LM129:
R2=[BP] // QImode move
R1=R2 // QImode move
R1=R1-256
CMP R1,4 // QImode compare
NSJA L93 //QImode GTU
R2=L94 // QImode move
R1 = R1 + R2 //addqi3
R2=R1 // QImode move
R1=[R2] // QImode move
pc=R1 // tablejump
.text
L94:
.dw L88
.dw L89
.dw L90
.dw L91
.dw L92
.code
L88:
.debug
.dw '.stabn 0x44,0,297,',0,0
.dd LM130-_BSR
.dw 0x0d,0x0a
.code
LM130:
call _Stop // call without return value
.debug
.dw '.stabn 0x44,0,298,',0,0
.dd LM131-_BSR
.dw 0x0d,0x0a
.code
LM131:
pc=L86 // Indirect jump
L89:
.debug
.dw '.stabn 0x44,0,300,',0,0
.dd LM132-_BSR
.dw 0x0d,0x0a
.code
LM132:
call _GoAhead // call without return value
.debug
.dw '.stabn 0x44,0,301,',0,0
.dd LM133-_BSR
.dw 0x0d,0x0a
.code
LM133:
pc=L86 // Indirect jump
L90:
.debug
.dw '.stabn 0x44,0,303,',0,0
.dd LM134-_BSR
.dw 0x0d,0x0a
.code
LM134:
call _BackUp // call without return value
.debug
.dw '.stabn 0x44,0,304,',0,0
.dd LM135-_BSR
.dw 0x0d,0x0a
.code
LM135:
pc=L86 // Indirect jump
L91:
.debug
.dw '.stabn 0x44,0,306,',0,0
.dd LM136-_BSR
.dw 0x0d,0x0a
.code
LM136:
call _TurnLeft // call without return value
.debug
.dw '.stabn 0x44,0,307,',0,0
.dd LM137-_BSR
.dw 0x0d,0x0a
.code
LM137:
pc=L86 // Indirect jump
L92:
.debug
.dw '.stabn 0x44,0,309,',0,0
.dd LM138-_BSR
.dw 0x0d,0x0a
.code
LM138:
call _TurnRight // call without return value
.debug
.dw '.stabn 0x44,0,310,',0,0
.dd LM139-_BSR
.dw 0x0d,0x0a
.code
LM139:
pc=L86 // Indirect jump
L93:
.debug
.dw '.stabn 0x44,0,312,',0,0
.dd LM140-_BSR
.dw 0x0d,0x0a
.code
LM140:
pc=L86 // Indirect jump
L87:
L86:
.debug
.dw '.stabn 0x44,0,315,',0,0
.dd LM141-_BSR
.dw 0x0d,0x0a
.code
LM141:
LBE6:
.debug
.dw '.stabn 0x44,0,315,',0,0
.dd LM142-_BSR
.dw 0x0d,0x0a
.code
LM142:
L85:
sp+=2
pop bp from [sp]
retf
.endp // end of BSR
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB6-_BSR
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "Result:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE6-_BSR
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME12-_BSR
.dw 0x0d,0x0a
.code
LME12:
// 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,324,',0,0
.dd LM143-_IRQ5
.dw 0x0d,0x0a
.text
LM143:
// 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
.debug
.dw '.stabn 0x44,0,325,',0,0
.dd LM144-_IRQ5
.dw 0x0d,0x0a
.text
LM144:
R2=_uiTimecont // QImode move
R4=R2 // QImode move
R3=[R4] // QImode move
[BP]=R3 // QImode move
R3=R3+1
R4=R2 // QImode move
[R4]=R3 // QImode move
R2=[BP] // QImode move
CMP R2,[_uiTimeset] // QImode compare
NSJNZ L98 //QImode NE
.debug
.dw '.stabn 0x44,0,327,',0,0
.dd LM145-_IRQ5
.dw 0x0d,0x0a
.text
LM145:
R2=0 // QImode move
[28677]=R2 // QImode move
L98:
.debug
.dw '.stabn 0x44,0,329,',0,0
.dd LM146-_IRQ5
.dw 0x0d,0x0a
.text
LM146:
R2=4 // QImode move
[28689]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,330,',0,0
.dd LM147-_IRQ5
.dw 0x0d,0x0a
.text
LM147:
.debug
.dw '.stabn 0x44,0,330,',0,0
.dd LM148-_IRQ5
.dw 0x0d,0x0a
.text
LM148:
L97:
sp+=1
// ISR ATTRIBUTE FUNCTION, POP r1,bp
pop r1,bp from [sp]
reti
.endp // end of IRQ5
.debug
.dw '.stabf ',0,0
.dd LME13-_IRQ5
.dw 0x0d,0x0a
.text
LME13:
.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,339,',0,0
.dd LM149-_main
.dw 0x0d,0x0a
.code
LM149:
// total=2, vars=2
// frame_pointer_needed: 1
push bp to [sp]
sp-=2
bp=sp+1
R1=BP+5
[bp+1]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,339,',0,0
.dd LM150-_main
.dw 0x0d,0x0a
.code
LM150:
LBB7:
.debug
.dw '.stabn 0x44,0,341,',0,0
.dd LM151-_main
.dw 0x0d,0x0a
.code
LM151:
R1=(-256) // QImode move
[28674]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,342,',0,0
.dd LM152-_main
.dw 0x0d,0x0a
.code
LM152:
R1=(-256) // QImode move
[28675]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,343,',0,0
.dd LM153-_main
.dw 0x0d,0x0a
.code
LM153:
R1=0 // QImode move
[28672]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,345,',0,0
.dd LM154-_main
.dw 0x0d,0x0a
.code
LM154:
R1=3840 // QImode move
[28679]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,346,',0,0
.dd LM155-_main
.dw 0x0d,0x0a
.code
LM155:
R1=3840 // QImode move
[28680]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,347,',0,0
.dd LM156-_main
.dw 0x0d,0x0a
.code
LM156:
R1=0 // QImode move
[28677]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,349,',0,0
.dd LM157-_main
.dw 0x0d,0x0a
.code
LM157:
R1=0 // QImode move
[SP--]=R1 // QImode move
call _BSR_DeleteSDGroup // call with return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,350,',0,0
.dd LM158-_main
.dw 0x0d,0x0a
.code
LM158:
R1=[-8192] // QImode move
[BP]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,351,',0,0
.dd LM159-_main
.dw 0x0d,0x0a
.code
LM159:
R1=[BP] // QImode move
CMP R1,(-1) // QImode compare
NSJNZ L101 //QImode NE
.debug
.dw '.stabn 0x44,0,353,',0,0
.dd LM160-_main
.dw 0x0d,0x0a
.code
LM160:
call _TrainSD // call without return value
.debug
.dw '.stabn 0x44,0,354,',0,0
.dd LM161-_main
.dw 0x0d,0x0a
.code
LM161:
call _StoreSD // call without return value
.debug
.dw '.stabn 0x44,0,355,',0,0
.dd LM162-_main
.dw 0x0d,0x0a
.code
LM162:
pc=L102 // Indirect jump
L101:
.debug
.dw '.stabn 0x44,0,358,',0,0
.dd LM163-_main
.dw 0x0d,0x0a
.code
LM163:
call _LoadSD // call without return value
L102:
.debug
.dw '.stabn 0x44,0,361,',0,0
.dd LM164-_main
.dw 0x0d,0x0a
.code
LM164:
R1=3 // QImode move
[SP--]=R1 // QImode move
R1=9 // QImode move
[SP--]=R1 // QImode move
call _PlaySnd // call without return value
SP = SP + 2 //SP
.debug
.dw '.stabn 0x44,0,362,',0,0
.dd LM165-_main
.dw 0x0d,0x0a
.code
LM165:
R1=0 // QImode move
[SP--]=R1 // QImode move
call _BSR_InitRecognizer // call with return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,364,',0,0
.dd LM166-_main
.dw 0x0d,0x0a
.code
LM166:
L103:
pc=L105 // Indirect jump
pc=L104 // Indirect jump
L105:
.debug
.dw '.stabn 0x44,0,366,',0,0
.dd LM167-_main
.dw 0x0d,0x0a
.code
LM167:
call _BSR // call without return value
.debug
.dw '.stabn 0x44,0,367,',0,0
.dd LM168-_main
.dw 0x0d,0x0a
.code
LM168:
R2=[28672] // QImode move
R1=R2&4
CMP R1,0 // QImode test
NSJZ L106 //QImode EQ
.debug
.dw '.stabn 0x44,0,369,',0,0
.dd LM169-_main
.dw 0x0d,0x0a
.code
LM169:
R1=(-8192) // QImode move
[SP--]=R1 // QImode move
call _F_FlashErase // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,370,',0,0
.dd LM170-_main
.dw 0x0d,0x0a
.code
LM170:
L107:
pc=L109 // Indirect jump
pc=L106 // Indirect jump
L109:
pc=L107 // Indirect jump
L108:
L106:
.debug
.dw '.stabn 0x44,0,372,',0,0
.dd LM171-_main
.dw 0x0d,0x0a
.code
LM171:
pc=L103 // Indirect jump
L104:
.debug
.dw '.stabn 0x44,0,373,',0,0
.dd LM172-_main
.dw 0x0d,0x0a
.code
LM172:
LBE7:
.debug
.dw '.stabn 0x44,0,373,',0,0
.dd LM173-_main
.dw 0x0d,0x0a
.code
LM173:
L100:
sp+=2
pop bp from [sp]
retf
.endp // end of main
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB7-_main
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "BS_Flag:4",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE7-_main
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME14-_main
.dw 0x0d,0x0a
.code
LME14:
.iram
.public _uiTimecont
_uiTimecont:
.dw 0
.external _BSR_DeleteSDGroup
.external _BSR_GetResult
.external _BSR_ImportSDWord
.external _BSR_SDModel
.external _BSR_ExportSDWord
.external _F_FlashErase
.external _F_FlashWrite1Word
.external _BSR_Train
.external _BSR_InitRecognizer
.external _SACM_S480_Stop
.external _SACM_S480_ServiceLoop
.external _SACM_S480_Status
.external _SACM_S480_Play
.external _SACM_S480_Initial
.external _BSR_StopRecognizer
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -