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

📄 chap2.asm

📁 用凌阳16位单片机SPMC75F2413A来控制无刷直流电动机的详细程序包
💻 ASM
📖 第 1 页 / 共 4 页
字号:
.debug
	.dw '.stabn 0x44,0,217,',0,0
	.dd LM71-_Speedcalc
	.dw 0x0d,0x0a
.code
LM71:
	R2=[_ptr]	// QImode move
	R3=[BP]	// QImode move
	R1=R2	// QImode move
	[R1]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,218,',0,0
	.dd LM72-_Speedcalc
	.dw 0x0d,0x0a
.code
LM72:
	R2=[_ptr]	// QImode move
	[bp+16]=R2	// QImode move
	R2=[bp+16]	// QImode move
	R1=[R2]
	R2=0
	[bp+8]=R1	// HImode [BP+#IM6]=RS
	[bp+9]=R2
	R1=[_summation]	// HImode RD=[Label]
	R2=[_summation+1]
	[bp+10]=R1	// HImode [BP+#IM6]=RS
	[bp+11]=R2
	R2=[bp+10]	// QImode move
	[bp+12]=R2	// QImode move
	R1=[bp+12]	// QImode move
	R2=[bp+8]	// QImode move
	R1+=R2	// addqi3_r0r
	[bp+12]=R1	// QImode move
	R3=[bp+12]	// QImode move
	R1=1	// QImode move
	[bp+16]=R1	// QImode move
	R2=[bp+12]	// QImode move
	R1=[bp+10]	// QImode move
	CMP R2,R1	// QImode compare
	JNB L40	// QImode LTU
	PC=L36
L40:
	R2=0	// QImode move
	[bp+16]=R2	// QImode move
L36:
	R1=[bp+11]	// QImode move
	[bp+13]=R1	// QImode move
	R2=[bp+13]	// QImode move
	R1=[bp+9]	// QImode move
	R2+=R1	// addqi3_r0r
	[bp+13]=R2	// QImode move
	R4=[bp+13]	// QImode move
	R2=[bp+13]	// QImode move
	[bp+14]=R2	// QImode move
	R1=[bp+14]	// QImode move
	R2=[bp+16]	// QImode move
	R1+=R2	// addqi3_r0r
	[bp+14]=R1	// QImode move
	R4=[bp+14]	// QImode move
	[_summation]=R3	// HImode [Label]=RS
	[_summation+1]=R4
.debug
	.dw '.stabn 0x44,0,219,',0,0
	.dd LM73-_Speedcalc
	.dw 0x0d,0x0a
.code
LM73:
	R3=[_ptr]	// QImode move
	R2=R3+1
	R3=R2	// QImode move
	[_ptr]=R3	// QImode move
	CMP R3,_uiFilter+15	// QImode compare
	JA L41	// QImode LEU
	PC=L34
L41:
	R2=_uiFilter	// QImode move
	[_ptr]=R2	// QImode move
L37:
L34:
.debug
	.dw '.stabn 0x44,0,221,',0,0
	.dd LM74-_Speedcalc
	.dw 0x0d,0x0a
.code
LM74:
LBE9:
.debug
	.dw '.stabn 0x44,0,221,',0,0
	.dd LM75-_Speedcalc
	.dw 0x0d,0x0a
.code
LM75:
L33:

	sp+=17
	pop bp from [sp]
	retf
	.endp	// end of Speedcalc

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB9-_Speedcalc
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "original:4",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE9-_Speedcalc
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME6-_Speedcalc
	.dw 0x0d,0x0a
.code
LME6:
.code
.debug
	.dw '.stabs "IPM_Charge:f19",36,0,0,',0,0,offset _IPM_Charge,seg _IPM_Charge,0x0d,0x0a
.CODE
_IPM_Charge:	.proc
.debug
	.dw '.stabn 0x44,0,227,',0,0
	.dd LM76-_IPM_Charge
	.dw 0x0d,0x0a
.code
LM76:
	// total=0, vars=0
	// frame_pointer_needed: 1
	push bp to [sp]
	bp=sp+1

	R1=BP+3
.debug
	.dw '.stabn 0x44,0,228,',0,0
	.dd LM77-_IPM_Charge
	.dw 0x0d,0x0a
.code
LM77:
	R2=16405	// QImode move
	[29703]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,232,',0,0
	.dd LM78-_IPM_Charge
	.dw 0x0d,0x0a
.code
LM78:
.debug
	.dw '.stabn 0x44,0,232,',0,0
	.dd LM79-_IPM_Charge
	.dw 0x0d,0x0a
.code
LM79:
L42:

	pop bp from [sp]
	retf
	.endp	// end of IPM_Charge

.debug
	.dw '.stabf ',0,0
	.dd LME7-_IPM_Charge
	.dw 0x0d,0x0a
.code
LME7:
.code
.debug
	.dw '.stabs "BLDC_Run_Service:F19",36,0,0,',0,0,offset _BLDC_Run_Service,seg _BLDC_Run_Service,0x0d,0x0a
.CODE
.public _BLDC_Run_Service
_BLDC_Run_Service:	.proc
.debug
	.dw '.stabn 0x44,0,238,',0,0
	.dd LM80-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM80:
	// total=2, vars=2
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=2
	bp=sp+1

	R1=BP+5
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,239,',0,0
	.dd LM81-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM81:
LBB10:
.debug
	.dw '.stabn 0x44,0,241,',0,0
	.dd LM82-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM82:
	call _MC75_DMC_UART_Service	// call without return value
.debug
	.dw '.stabn 0x44,0,243,',0,0
	.dd LM83-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM83:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	call _SPMC_DMC_Load_MotorSig	// call with return value
	SP=SP+1
	CMP R1,0	// QImode test
	JNZ L50	// QImode EQ
	PC=L44
L50:
.debug
	.dw '.stabn 0x44,0,245,',0,0
	.dd LM84-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM84:
	R1=[28776]	// QImode move
	R2=R1|16384
	[28776]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,246,',0,0
	.dd LM85-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM85:
	R1=[_sCSptr]	// QImode move
	R2=R1	// QImode move
	R3=[R2]	// QImode move
	R3=R3|16
	[R2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,247,',0,0
	.dd LM86-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM86:
	R1=[29798]	// QImode move
	R2=R1|128
	[29798]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,248,',0,0
	.dd LM87-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM87:
	pc=L45	// Indirect jump
L44:
.debug
	.dw '.stabn 0x44,0,251,',0,0
	.dd LM88-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM88:
LBB11:
	R1=[28776]	// QImode move
	R2=R1&(-16385)
	[28776]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,252,',0,0
	.dd LM89-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM89:
	call _IPM_Trigger_Off	// call with return value
.debug
	.dw '.stabn 0x44,0,253,',0,0
	.dd LM90-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM90:
	R1=0	// QImode move
	[bp+1]=R1	// QImode move
L46:
	R2=[bp+1]	// QImode move
	CMP R2,15	// QImode compare
	JG L51	// QImode LE
	PC=L49
L51:
	pc=L47	// Indirect jump
L49:
	R2=_uiFilter	// QImode move
	R1=R2	// QImode move
	R3=[bp+1]	// QImode move
	R1+=R3	// addqi3_r0r
	R2=0	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
L48:
	R1=[bp+1]	// QImode move
	R1=R1+1
	[bp+1]=R1	// QImode move
	pc=L46	// Indirect jump
L47:
.debug
	.dw '.stabn 0x44,0,254,',0,0
	.dd LM91-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM91:
	R2=[_sptr]	// QImode move
	R1=R2	// QImode move
	R2=R2+1
	R1=50	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,255,',0,0
	.dd LM92-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM92:
	R2=[_sptr]	// QImode move
	R1=R2	// QImode move
	R2=R2+8
	R1=0	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,256,',0,0
	.dd LM93-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM93:
	R2=[_sptr]	// QImode move
	R1=R2	// QImode move
	R2=R2+9
	R1=0	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,257,',0,0
	.dd LM94-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM94:
	R1=0	// HImode immediate to register move
	R2=0
	[_summation]=R1	// HImode [Label]=RS
	[_summation+1]=R2
.debug
	.dw '.stabn 0x44,0,258,',0,0
	.dd LM95-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM95:
	R1=[_sCSptr]	// QImode move
	R2=0	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,259,',0,0
	.dd LM96-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM96:
	R1=[29798]	// QImode move
	R2=R1&(-129)
	[29798]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,260,',0,0
	.dd LM97-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM97:
LBE11:
L45:
.debug
	.dw '.stabn 0x44,0,261,',0,0
	.dd LM98-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM98:
LBE10:
.debug
	.dw '.stabn 0x44,0,261,',0,0
	.dd LM99-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LM99:
L43:

	sp+=2
	pop bp from [sp]
	retf
	.endp	// end of BLDC_Run_Service

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB10-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "i:1",128,0,0,1',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB11-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE11-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE10-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME8-_BLDC_Run_Service
	.dw 0x0d,0x0a
.code
LME8:
.code
.debug
	.dw '.stabs "IPM_Fault_Protect:F19",36,0,0,',0,0,offset _IPM_Fault_Protect,seg _IPM_Fault_Protect,0x0d,0x0a
.CODE
.public _IPM_Fault_Protect
_IPM_Fault_Protect:	.proc
.debug
	.dw '.stabn 0x44,0,267,',0,0
	.dd LM100-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM100:
	// total=0, vars=0
	// frame_pointer_needed: 1
	push bp to [sp]
	bp=sp+1

	R1=BP+3
.debug
	.dw '.stabn 0x44,0,268,',0,0
	.dd LM101-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM101:
	R3=[28832]	// QImode move
	R2=R3&1
	CMP R2,0	// QImode test
	JNZ L55	// QImode EQ
	PC=L53
L55:
.debug
	.dw '.stabn 0x44,0,279,',0,0
	.dd LM102-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM102:
	R3=[29798]	// QImode move
	R2=R3 lsr 1
	R2=R2 lsr 4
	R3=R2&1
	CMP R3,0	// QImode test
	JNZ L56	// QImode EQ
	PC=L53
L56:
.debug
	.dw '.stabn 0x44,0,281,',0,0
	.dd LM103-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM103:
	R2=[28776]	// QImode move
	R3=R2&(-16385)
	[28776]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,282,',0,0
	.dd LM104-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM104:
	R2=21930	// QImode move
	[29802]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,283,',0,0
	.dd LM105-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM105:
	R2=(-21931)	// QImode move
	[29802]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,284,',0,0
	.dd LM106-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM106:
	R2=[29798]	// QImode move
	R3=R2|128
	[29798]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,285,',0,0
	.dd LM107-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM107:
	R2=[28776]	// QImode move
	R3=R2|16384
	[28776]=R3	// QImode move
L54:
L53:
.debug
	.dw '.stabn 0x44,0,288,',0,0
	.dd LM108-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM108:
.debug
	.dw '.stabn 0x44,0,288,',0,0
	.dd LM109-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LM109:
L52:

	pop bp from [sp]
	retf
	.endp	// end of IPM_Fault_Protect

.debug
	.dw '.stabf ',0,0
	.dd LME9-_IPM_Fault_Protect
	.dw 0x0d,0x0a
.code
LME9:
.iram
_sPID:
	.dw 10 dup(0)
.iram
_sCtrlSM:
	.dw 0
.external _IPM_Trigger_Off
.external _SPMC_DMC_Load_MotorSig
.external _MC75_DMC_UART_Service
.external _IPM_Trigger_PB120HalfPWM
.external _SPMC_DMC_Save_Aux
.external _SPMC_DMC_Save_SpdNow
.external _SPMC_DMC_Load_SpdCmd
.external __divi2
.external __rshi2
.external __cvf2i1
.external __addf2
.external __mulf2
.external __cvi1f2
.external __subf2
	.end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -