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

📄 chap9.asm

📁 SPCE061A_USB可以让你自己检测开发板是否能正常动作
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	R1=BP+4
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,231,',0,0
	.dd LM73-_F_Set_Address
	.dw 0x0d,0x0a
.code
LM73:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	R2=[_ControlData+2]	// QImode move
	R1=R2&127
	[SP--]=R1	// QImode move
	call _F_D12_SetAddressEnable	// call without return value
	SP=SP+2
.debug
	.dw '.stabn 0x44,0,232,',0,0
	.dd LM74-_F_Set_Address
	.dw 0x0d,0x0a
.code
LM74:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _F_Single_Transmit	// call without return value
	SP=SP+2
.debug
	.dw '.stabn 0x44,0,233,',0,0
	.dd LM75-_F_Set_Address
	.dw 0x0d,0x0a
.code
LM75:
.debug
	.dw '.stabn 0x44,0,233,',0,0
	.dd LM76-_F_Set_Address
	.dw 0x0d,0x0a
.code
LM76:
L53:

	sp+=1
	pop bp from [sp]
	retf
	.endp	// end of F_Set_Address

.debug
	.dw '.stabf ',0,0
	.dd LME5-_F_Set_Address
	.dw 0x0d,0x0a
.code
LME5:
.code
.debug
	.dw '.stabs "F_Get_Descriptor:F19",36,0,0,',0,0,offset _F_Get_Descriptor,seg _F_Get_Descriptor,0x0d,0x0a
.CODE
.public _F_Get_Descriptor
_F_Get_Descriptor:	.proc
.debug
	.dw '.stabn 0x44,0,236,',0,0
	.dd LM77-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM77:
	// 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,237,',0,0
	.dd LM78-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM78:
LBB7:
	R1=[_ControlData+2]	// HImode RD=[Label]
	R2=[_ControlData+3]
	R3=16	// QImode move
	[SP--]=R3	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __rshu2	// call with return value
	SP=SP+3
	R3=R1	// QImode move
	[BP]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,238,',0,0
	.dd LM79-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM79:
	R1=[BP]	// QImode move
	CMP R1,1	// QImode compare
	JZ L59	// QImode NE
	PC=L55
L59:
.debug
	.dw '.stabn 0x44,0,240,',0,0
	.dd LM80-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM80:
	R1=18	// HImode immediate to register move
	R2=0
	push R1,R2 to [sp]	// pushhi
	R1=_DeviceDescr	// QImode move
	[SP--]=R1	// QImode move
	call _F_Code_Transmit	// call without return value
	SP=SP+3
.debug
	.dw '.stabn 0x44,0,241,',0,0
	.dd LM81-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM81:
	pc=L56	// Indirect jump
L55:
.debug
	.dw '.stabn 0x44,0,242,',0,0
	.dd LM82-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM82:
	R1=[BP]	// QImode move
	CMP R1,2	// QImode compare
	JZ L60	// QImode NE
	PC=L57
L60:
.debug
	.dw '.stabn 0x44,0,244,',0,0
	.dd LM83-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM83:
	R1=46	// HImode immediate to register move
	R2=0
	push R1,R2 to [sp]	// pushhi
	R1=_ConfigDescr	// QImode move
	[SP--]=R1	// QImode move
	call _F_Code_Transmit	// call without return value
	SP=SP+3
.debug
	.dw '.stabn 0x44,0,245,',0,0
	.dd LM84-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM84:
	pc=L56	// Indirect jump
L57:
.debug
	.dw '.stabn 0x44,0,247,',0,0
	.dd LM85-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM85:
	call _F_Stall_Ep0	// call without return value
L58:
L56:
.debug
	.dw '.stabn 0x44,0,248,',0,0
	.dd LM86-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM86:
LBE7:
.debug
	.dw '.stabn 0x44,0,248,',0,0
	.dd LM87-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LM87:
L54:

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

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB7-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "bDescriptor:4",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE7-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME6-_F_Get_Descriptor
	.dw 0x0d,0x0a
.code
LME6:
.code
.debug
	.dw '.stabs "F_Get_Configuration:F19",36,0,0,',0,0,offset _F_Get_Configuration,seg _F_Get_Configuration,0x0d,0x0a
.CODE
.public _F_Get_Configuration
_F_Get_Configuration:	.proc
.debug
	.dw '.stabn 0x44,0,250,',0,0
	.dd LM88-_F_Get_Configuration
	.dw 0x0d,0x0a
.code
LM88:
	// 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,251,',0,0
	.dd LM89-_F_Get_Configuration
	.dw 0x0d,0x0a
.code
LM89:
LBB8:
	R1=[_bEPPflags]	// QImode move
	R2=7	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __rshu1	// call with return value
	SP=SP+2
	R2=R1&1
	[BP]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,252,',0,0
	.dd LM90-_F_Get_Configuration
	.dw 0x0d,0x0a
.code
LM90:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	[SP--]=BP	// QImode move
	call _F_Single_Transmit	// call without return value
	SP=SP+2
.debug
	.dw '.stabn 0x44,0,253,',0,0
	.dd LM91-_F_Get_Configuration
	.dw 0x0d,0x0a
.code
LM91:
LBE8:
.debug
	.dw '.stabn 0x44,0,253,',0,0
	.dd LM92-_F_Get_Configuration
	.dw 0x0d,0x0a
.code
LM92:
L61:

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

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB8-_F_Get_Configuration
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "c:4",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE8-_F_Get_Configuration
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME7-_F_Get_Configuration
	.dw 0x0d,0x0a
.code
LME7:
.code
.debug
	.dw '.stabs "F_Set_Configuration:F19",36,0,0,',0,0,offset _F_Set_Configuration,seg _F_Set_Configuration,0x0d,0x0a
.CODE
.public _F_Set_Configuration
_F_Set_Configuration:	.proc
.debug
	.dw '.stabn 0x44,0,255,',0,0
	.dd LM93-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM93:
	// 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,256,',0,0
	.dd LM94-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM94:
LBB9:
	R1=[_ControlData+2]	// HImode RD=[Label]
	R2=[_ControlData+3]
	CMP R2,0	// HImode test
	JNZ L67	// HImode NE
	CMP R1,0
	JZ  L68
L67:
	PC=L63
L68:
.debug
	.dw '.stabn 0x44,0,259,',0,0
	.dd LM95-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM95:
LBB10:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _F_Single_Transmit	// call without return value
	SP=SP+2
.debug
	.dw '.stabn 0x44,0,260,',0,0
	.dd LM96-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM96:
	call _F_Interrupt_Off	// call with return value
.debug
	.dw '.stabn 0x44,0,261,',0,0
	.dd LM97-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM97:
	R1=[_bEPPflags]	// QImode move
	R2=(-129)	// QImode move
	[_bEPPflags]=R1&R2
.debug
	.dw '.stabn 0x44,0,262,',0,0
	.dd LM98-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM98:
	call _F_Interrupt_On	// call with return value
.debug
	.dw '.stabn 0x44,0,263,',0,0
	.dd LM99-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM99:
	call _F_Init_Unconfig	// call without return value
.debug
	.dw '.stabn 0x44,0,264,',0,0
	.dd LM100-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM100:
LBE10:
	pc=L64	// Indirect jump
L63:
.debug
	.dw '.stabn 0x44,0,265,',0,0
	.dd LM101-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM101:
	R1=[_ControlData+2]	// HImode RD=[Label]
	R2=[_ControlData+3]
	CMP R2,0	// HImode compare
	JNZ L69	// HImode NE
	CMP R1,1
	JZ  L70
L69:
	PC=L65
L70:
.debug
	.dw '.stabn 0x44,0,268,',0,0
	.dd LM102-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM102:
LBB11:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _F_Single_Transmit	// call without return value
	SP=SP+2
.debug
	.dw '.stabn 0x44,0,269,',0,0
	.dd LM103-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM103:
	call _F_Init_Unconfig	// call without return value
.debug
	.dw '.stabn 0x44,0,270,',0,0
	.dd LM104-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM104:
	call _F_Init_Config	// call without return value
.debug
	.dw '.stabn 0x44,0,271,',0,0
	.dd LM105-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM105:
	call _F_Interrupt_Off	// call with return value
.debug
	.dw '.stabn 0x44,0,272,',0,0
	.dd LM106-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM106:
	R1=[_bEPPflags]	// QImode move
	R2=128	// QImode move
	[_bEPPflags]=R1|R2
.debug
	.dw '.stabn 0x44,0,273,',0,0
	.dd LM107-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM107:
	call _F_Interrupt_On	// call with return value
.debug
	.dw '.stabn 0x44,0,274,',0,0
	.dd LM108-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM108:
LBE11:
	pc=L64	// Indirect jump
L65:
.debug
	.dw '.stabn 0x44,0,276,',0,0
	.dd LM109-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM109:
	call _F_Stall_Ep0	// call without return value
L66:
L64:
.debug
	.dw '.stabn 0x44,0,277,',0,0
	.dd LM110-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM110:
LBE9:
.debug
	.dw '.stabn 0x44,0,277,',0,0
	.dd LM111-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LM111:
L62:

	sp+=1
	pop bp from [sp]
	retf
	.endp	// end of F_Set_Configuration

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB9-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB10-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE10-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB11-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE11-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE9-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME8-_F_Set_Configuration
	.dw 0x0d,0x0a
.code
LME8:
.code
.debug
	.dw '.stabs "F_Get_Interface:F19",36,0,0,',0,0,offset _F_Get_Interface,seg _F_Get_Interface,0x0d,0x0a
.CODE
.public _F_Get_Interface
_F_Get_Interface:	.proc
.debug
	.dw '.stabn 0x44,0,280,',0,0
	.dd LM112-_F_Get_Interface
	.dw 0x0d,0x0a
.code
LM112:
	// 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,281,',0,0
	.dd LM113-_F_Get_Interface
	.dw 0x0d,0x0a
.code
LM113:
LBB12:
	R1=0	// QImode move
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,282,',0,0
	.dd LM114-_F_Get_Interface
	.dw 0x0d,0x0a
.code
LM114:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	[SP--]=BP	// QImode move
	call _F_Single_Transmit	// call without return value
	SP=SP+2
.debug
	.dw '.stabn 0x44,0,283,',0,0
	.dd LM115-_F_Get_Interface
	.dw 0x0d,0x0a
.code
LM115:
LBE12:
.debug
	.dw '.stabn 0x44,0,283,',0,0
	.dd LM116-_F_Get_Interface
	.dw 0x0d,0x0a
.code
LM116:
L71:

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

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB12-_F_Get_Interface
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "txdat:4",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE12-_F_Get_Interface
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME9-_F_Get_Interface
	.dw 0x0d,0x0a
.code
LME9:
.code
.debug
	.dw '.stabs "F_Set_Interface:F19",36,0,0,',0,0,offset _F_Set_Interface,seg _F_Set_Interface,0x0d,0x0a
.CODE
.public _F_Set_Interface
_F_Set_Interface:	.proc
.debug
	.dw '.stabn 0x44,0,285,',0,0
	.dd LM117-_F_Set_Interface
	.dw 0x0d,0x0a
.code
LM117:
	// 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,286,',0,0
	.dd LM118-_F_Set_Interface
	.dw 0x0d,0x0a
.code
LM118:
	R1=[_ControlData+2]	// HImode RD=[Label]
	R2=[_ControlData+3]
	CMP R2,0	// HImode test
	JNZ L75	// HImode NE
	CMP R1,0
	JZ  L76
L75:
	PC=L73
L76:
	R1=[_ControlData+4]	// HImode RD=[Label]
	R2=[_ControlData+5]
	CMP R2,0	// HImode test
	JNZ L77	// HImode NE
	CMP R1,0
	JZ  L78
L77:
	PC=L73
L78:
.debug
	.dw '.stabn 0x44,0,287,',0,0
	.dd LM119-_F_Set_Interface
	.dw 0x0d,0x0a
.code
LM119:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _F_Single_Transmit	// call without return value
	SP=SP+2
	pc=L74	// Indirect jump
L73:
.debug
	.dw '.stabn 0x44,0,289,',0,0
	.dd LM120-_F_Set_Interface
	.dw 0x0d,0x0a
.code
LM120:
	call _F_Stall_Ep0	// call without return value
L74:
.debug
	.dw '.stabn 0x44,0,290,',0,0

⌨️ 快捷键说明

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