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

📄 serial_flash.asm

📁 C语言学习的一个不错的资料
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	retf
	.endp	// end of SIOSendAByte

.debug
	.dw '.stabs "addr:p5",160,0,0,5',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "data:p4",160,0,0,7',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB3-_SIOSendAByte
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "a:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE3-_SIOSendAByte
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME2-_SIOSendAByte
	.dw 0x0d,0x0a
.code
LME2:
.code
.debug
	.dw '.stabs "SIOReadAByte:F4",36,0,0,',0,0,offset _SIOReadAByte,seg _SIOReadAByte,0x0d,0x0a
.CODE
.public _SIOReadAByte
_SIOReadAByte:	.proc
.debug
	.dw '.stabn 0x44,0,92,',0,0
	.dd LM28-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM28:
	// total=3, vars=3
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=3
	bp=sp+1

	R1=BP+6
	[bp+2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,93,',0,0
	.dd LM29-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM29:
LBB4:
.debug
	.dw '.stabn 0x44,0,94,',0,0
	.dd LM30-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM30:
	R1=[_P_SIO_Addr_Low]	// QImode move
	R3=[bp+2]	// QImode move
	R2=[R3]	// QImode move
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,95,',0,0
	.dd LM31-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM31:
	R3=[bp+2]	// QImode move
	R1=[R3++]	// RD=[RS] HImode, RD!=RS
	R2=[R3--]
	R3=8	// QImode move
	[SP--]=R3	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __rshu2	// call with return value
	SP=SP+3
	R4=[bp+2]	// QImode move
	[R4++]=R1	// [RD]=RS HImode, RD!=RS+1
	[R4--]=R2
.debug
	.dw '.stabn 0x44,0,96,',0,0
	.dd LM32-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM32:
	R1=[_P_SIO_Addr_Mid]	// QImode move
	R3=[bp+2]	// QImode move
	R2=[R3]	// QImode move
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,97,',0,0
	.dd LM33-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM33:
	R3=[bp+2]	// QImode move
	R1=[R3++]	// RD=[RS] HImode, RD!=RS
	R2=[R3--]
	R3=8	// QImode move
	[SP--]=R3	// QImode move
	push R1,R2 to [sp]	// pushhi
	call __rshu2	// call with return value
	SP=SP+3
	R4=[bp+2]	// QImode move
	[R4++]=R1	// [RD]=RS HImode, RD!=RS+1
	[R4--]=R2
.debug
	.dw '.stabn 0x44,0,98,',0,0
	.dd LM34-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM34:
	R3=[bp+2]	// QImode move
	R1=[R3++]	// RD=[RS] HImode, RD!=RS
	R2=[R3--]
	R3=R1&7	// HImode RD=RS&#IMM16
	R4=R2&0
	R1=[bp+2]	// QImode move
	[R1++]=R3	// [RD]=RS HImode, RD!=RS+1
	[R1--]=R4
.debug
	.dw '.stabn 0x44,0,99,',0,0
	.dd LM35-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM35:
	R1=[_P_SIO_Addr_High]	// QImode move
	R3=[bp+2]	// QImode move
	R2=[R3]	// QImode move
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,100,',0,0
	.dd LM36-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM36:
	R1=[_P_SIO_Ctrl]	// QImode move
	R2=147	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,101,',0,0
	.dd LM37-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM37:
	R1=[_P_SIO_Start]	// QImode move
	R2=1	// QImode move
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,102,',0,0
	.dd LM38-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM38:
	R1=[_P_SIO_Data]	// QImode move
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	[BP]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,103,',0,0
	.dd LM39-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM39:
	call _Wait_FreeFlag	// call without return value
.debug
	.dw '.stabn 0x44,0,104,',0,0
	.dd LM40-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM40:
	R2=BP	// QImode move
	R1=BP+1
	R2=[_P_SIO_Data]	// QImode move
	R4=R2	// QImode move
	R3=[R4]	// QImode move
	R2=R1	// QImode move
	[R2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,105,',0,0
	.dd LM41-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM41:
	call _Wait_FreeFlag	// call without return value
.debug
	.dw '.stabn 0x44,0,106,',0,0
	.dd LM42-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM42:
	R1=[_P_SIO_Stop]	// QImode move
	R2=1	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,107,',0,0
	.dd LM43-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM43:
	R1=BP	// QImode move
	R2=BP+1
	R4=R2	// QImode move
	R3=[R4]	// QImode move
	R1=R3	// QImode move
	pc=L12	// jump
.debug
	.dw '.stabn 0x44,0,108,',0,0
	.dd LM44-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM44:
LBE4:
.debug
	.dw '.stabn 0x44,0,108,',0,0
	.dd LM45-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LM45:
L12:

	sp+=3
	pop bp from [sp]
	retf
	.endp	// end of SIOReadAByte

.debug
	.dw '.stabs "addr:p5",160,0,0,6',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB4-_SIOReadAByte
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "a:4",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "data:4",128,0,0,1',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE4-_SIOReadAByte
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME3-_SIOReadAByte
	.dw 0x0d,0x0a
.code
LME3:
.code
.debug
	.dw '.stabs "SIOMassErase:F19",36,0,0,',0,0,offset _SIOMassErase,seg _SIOMassErase,0x0d,0x0a
.CODE
.public _SIOMassErase
_SIOMassErase:	.proc
.debug
	.dw '.stabn 0x44,0,120,',0,0
	.dd LM46-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM46:
	// total=3, vars=3
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=3
	bp=sp+1

	R1=BP+6
	[bp+2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,121,',0,0
	.dd LM47-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM47:
LBB5:
.debug
	.dw '.stabn 0x44,0,122,',0,0
	.dd LM48-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM48:
	R1=[_P_SIO_Ctrl]	// QImode move
	R2=208	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,123,',0,0
	.dd LM49-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM49:
	R1=[_P_SIO_Addr_Low]	// QImode move
	R2=0	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,124,',0,0
	.dd LM50-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM50:
	R1=[_P_SIO_Addr_Mid]	// QImode move
	R2=192	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,125,',0,0
	.dd LM51-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM51:
	R1=[_P_SIO_Addr_High]	// QImode move
	R2=192	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,126,',0,0
	.dd LM52-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM52:
	R1=[_P_SIO_Start]	// QImode move
	R2=1	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,127,',0,0
	.dd LM53-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM53:
	R1=[_P_SIO_Data]	// QImode move
	R2=0	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,128,',0,0
	.dd LM54-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM54:
	call _Wait_FreeFlag	// call without return value
.debug
	.dw '.stabn 0x44,0,129,',0,0
	.dd LM55-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM55:
	R1=[_P_SIO_Stop]	// QImode move
	R2=1	// QImode move
	R3=R1	// QImode move
	[R3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,130,',0,0
	.dd LM56-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM56:
	R1=2047	// HImode immediate to register move
	R2=0
	[BP++]=R1	// [RD]=RS HImode, RD!=RS+1
	[BP--]=R2
.debug
	.dw '.stabn 0x44,0,131,',0,0
	.dd LM57-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM57:
L14:
	R3=[BP++]	// RD=[RS] HImode, RD!=RS
	R4=[BP--]
	R1=R3+(-1)	// HImode RD=RS+#IMM16
	R2=R4+(-1), Carry
	R3=R1	// HImode register to register move
	R4=R2
	[BP++]=R3	// [RD]=RS HImode, RD!=RS+1
	[BP--]=R4
	CMP R4,(-1)	// HImode compare
	JNZ L17	// HImode NE
	CMP R3,(-1)
	JZ  L18
L17:
	PC=L16
L18:
	pc=L15	// jump
L16:
	pc=L14	// jump
L15:
.debug
	.dw '.stabn 0x44,0,132,',0,0
	.dd LM58-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM58:
LBE5:
.debug
	.dw '.stabn 0x44,0,132,',0,0
	.dd LM59-_SIOMassErase
	.dw 0x0d,0x0a
.code
LM59:
L13:

	sp+=3
	pop bp from [sp]
	retf
	.endp	// end of SIOMassErase

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB5-_SIOMassErase
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "a:3",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE5-_SIOMassErase
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME4-_SIOMassErase
	.dw 0x0d,0x0a
.code
LME4:
.external __rshu2
	.end

⌨️ 快捷键说明

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