⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 单片机控制的语音智能小车
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	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 + -