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

📄 lcd_61.asm

📁 LCD1602的显示模块程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	.dd LM46-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM46:
	// 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,63,',0,0
	.dd LM47-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM47:
LBB4:
	R1=128	// QImode move
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,64,',0,0
	.dd LM48-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM48:
	R2=[bp+1]	// QImode move
	R1=[R2]	// QImode move
	[_lcdcounter]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,65,',0,0
	.dd LM49-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM49:
	R3=[bp+1]	// QImode move
	R1=[R3]	// QImode move
	CMP R1,47	// QImode compare
	NSJNG L22	//QImode LE
.debug
	.dw '.stabn 0x44,0,66,',0,0
	.dd LM50-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM50:
	R2=[bp+1]	// QImode move
	R1=[R2]	// QImode move
	R2=R1+24
	R3=[bp+1]	// QImode move
	[R3]=R2	// QImode move
	pc=L23	// Indirect jump
L22:
.debug
	.dw '.stabn 0x44,0,68,',0,0
	.dd LM51-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM51:
	R2=[bp+1]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,31	// QImode compare
	NSJNG L24	//QImode LE
	R3=[bp+1]	// QImode move
	R1=[R3]	// QImode move
	R2=R1+(-20)
	R1=[bp+1]	// QImode move
	[R1]=R2	// QImode move
	pc=L23	// Indirect jump
L24:
.debug
	.dw '.stabn 0x44,0,70,',0,0
	.dd LM52-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM52:
	R2=[bp+1]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,15	// QImode compare
	NSJNG L23	//QImode LE
	R3=[bp+1]	// QImode move
	R1=[R3]	// QImode move
	R2=R1+44
	R1=[bp+1]	// QImode move
	[R1]=R2	// QImode move
L26:
L25:
L23:
.debug
	.dw '.stabn 0x44,0,73,',0,0
	.dd LM53-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM53:
	R3=[BP]	// QImode move
	R2=[bp+1]	// QImode move
	R2=[R2]	// QImode move
	R3|=R2
	[BP]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,74,',0,0
	.dd LM54-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM54:
	R1=[BP]	// QImode move
	[SP--]=R1	// QImode move
	call _lcd_wrcmd	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,75,',0,0
	.dd LM55-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM55:
	R1=1	// QImode move
	[28690]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,76,',0,0
	.dd LM56-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM56:
LBE4:
.debug
	.dw '.stabn 0x44,0,76,',0,0
	.dd LM57-_lcd_moveto
	.dw 0x0d,0x0a
.code
LM57:
L21:

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

.debug
	.dw '.stabs "position:p1",160,0,0,5',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB4-_lcd_moveto
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "cmd:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE4-_lcd_moveto
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME7-_lcd_moveto
	.dw 0x0d,0x0a
.code
LME7:
.code
.debug
	.dw '.stabs "lcd_wrdata:F19",36,0,0,',0,0,offset _lcd_wrdata,seg _lcd_wrdata,0x0d,0x0a
.CODE
.public _lcd_wrdata
_lcd_wrdata:	.proc
.debug
	.dw '.stabn 0x44,0,78,',0,0
	.dd LM58-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM58:
	// 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,78,',0,0
	.dd LM59-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM59:
	R1=1	// QImode move
	[_lcdusing2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,79,',0,0
	.dd LM60-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM60:
L31:
	call _lcd_checkbusy	// call with return value
	CMP R1,0	// QImode test
	NSJNZ L33	//QImode NE
	pc=L32	// Indirect jump
L33:
	R1=1	// QImode move
	[28690]=R1	// QImode move
	pc=L31	// Indirect jump
L32:
.debug
	.dw '.stabn 0x44,0,80,',0,0
	.dd LM61-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM61:
	R1=[_lcdcounter]	// QImode move
	CMP R1,16	// QImode compare
	NSJNZ L34	//QImode NE
.debug
	.dw '.stabn 0x44,0,81,',0,0
	.dd LM62-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM62:
	R1=16	// QImode move
	[SP--]=R1	// QImode move
	call _lcd_moveto	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,82,',0,0
	.dd LM63-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM63:
L35:
	call _lcd_checkbusy	// call with return value
	CMP R1,0	// QImode test
	NSJNZ L37	//QImode NE
	pc=L34	// Indirect jump
L37:
	R1=1	// QImode move
	[28690]=R1	// QImode move
	pc=L35	// Indirect jump
L36:
L34:
.debug
	.dw '.stabn 0x44,0,84,',0,0
	.dd LM64-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM64:
	R1=[_lcdcounter]	// QImode move
	CMP R1,32	// QImode compare
	NSJNZ L38	//QImode NE
.debug
	.dw '.stabn 0x44,0,85,',0,0
	.dd LM65-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM65:
	R1=32	// QImode move
	[SP--]=R1	// QImode move
	call _lcd_moveto	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,86,',0,0
	.dd LM66-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM66:
L39:
	call _lcd_checkbusy	// call with return value
	CMP R1,0	// QImode test
	NSJNZ L41	//QImode NE
	pc=L38	// Indirect jump
L41:
	R1=1	// QImode move
	[28690]=R1	// QImode move
	pc=L39	// Indirect jump
L40:
L38:
.debug
	.dw '.stabn 0x44,0,88,',0,0
	.dd LM67-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM67:
	R1=[_lcdcounter]	// QImode move
	CMP R1,60	// QImode compare
	NSJNZ L42	//QImode NE
.debug
	.dw '.stabn 0x44,0,89,',0,0
	.dd LM68-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM68:
	R1=60	// QImode move
	[SP--]=R1	// QImode move
	call _lcd_moveto	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,90,',0,0
	.dd LM69-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM69:
L43:
	call _lcd_checkbusy	// call with return value
	CMP R1,0	// QImode test
	NSJNZ L45	//QImode NE
	pc=L42	// Indirect jump
L45:
	R1=1	// QImode move
	[28690]=R1	// QImode move
	pc=L43	// Indirect jump
L44:
L42:
.debug
	.dw '.stabn 0x44,0,92,',0,0
	.dd LM70-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM70:
	R1=[_lcdcounter]	// QImode move
	CMP R1,80	// QImode compare
	NSJNZ L46	//QImode NE
.debug
	.dw '.stabn 0x44,0,93,',0,0
	.dd LM71-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM71:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _lcd_moveto	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,94,',0,0
	.dd LM72-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM72:
L47:
	call _lcd_checkbusy	// call with return value
	CMP R1,0	// QImode test
	NSJNZ L49	//QImode NE
	pc=L48	// Indirect jump
L49:
	R1=1	// QImode move
	[28690]=R1	// QImode move
	pc=L47	// Indirect jump
L48:
.debug
	.dw '.stabn 0x44,0,95,',0,0
	.dd LM73-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM73:
	R1=0	// QImode move
	[_lcdcounter]=R1	// QImode move
L46:
.debug
	.dw '.stabn 0x44,0,97,',0,0
	.dd LM74-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM74:
	R1=[_lcdcounter]	// QImode move
	R2=1	// QImode move
	[_lcdcounter]=R1+R2  //addqi3_Qrr
.debug
	.dw '.stabn 0x44,0,98,',0,0
	.dd LM75-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM75:
	R1=[28677]	// QImode move
	R2=R1&(-256)
	[28677]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,99,',0,0
	.dd LM76-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM76:
	R1=[28677]	// QImode move
	R2=R1	// QImode move
	R3=[BP]	// QImode move
	R2|=[R3]	// iorqi3_r0R
	[28677]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,100,',0,0
	.dd LM77-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM77:
	R1=[28673]	// QImode move
	R2=R1|1
	[28673]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,101,',0,0
	.dd LM78-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM78:
	R1=[28673]	// QImode move
	R2=R1&(-3)
	[28673]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,102,',0,0
	.dd LM79-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM79:
	R1=[28673]	// QImode move
	R2=R1|4
	[28673]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,103,',0,0
	.dd LM80-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM80:
	call _soft_nop	// call without return value
.debug
	.dw '.stabn 0x44,0,104,',0,0
	.dd LM81-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM81:
	R1=[28673]	// QImode move
	R2=R1&(-5)
	[28673]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,105,',0,0
	.dd LM82-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM82:
	R1=[28677]	// QImode move
	R2=R1|255
	[28677]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,106,',0,0
	.dd LM83-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM83:
	R1=0	// QImode move
	[_lcdusing2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,107,',0,0
	.dd LM84-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM84:
.debug
	.dw '.stabn 0x44,0,107,',0,0
	.dd LM85-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LM85:
L30:

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

.debug
	.dw '.stabs "lcddata:p1",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME8-_lcd_wrdata
	.dw 0x0d,0x0a
.code
LME8:
.code
.debug
	.dw '.stabs "lcd_wrdata1:F19",36,0,0,',0,0,offset _lcd_wrdata1,seg _lcd_wrdata1,0x0d,0x0a
.CODE
.public _lcd_wrdata1
_lcd_wrdata1:	.proc
.debug
	.dw '.stabn 0x44,0,110,',0,0
	.dd LM86-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM86:
	// 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,110,',0,0
	.dd LM87-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM87:
LBB5:
	R1=BP	// QImode move
	R2=BP+1
	R1=128	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,111,',0,0
	.dd LM88-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM88:
	R1=1	// QImode move
	[_lcdusing2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,112,',0,0
	.dd LM89-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM89:
L60:
	call _lcd_checkbusy	// call with return value
	CMP R1,0	// QImode test
	NSJNZ L62	//QImode NE
	pc=L61	// Indirect jump
L62:
	R1=1	// QImode move
	[28690]=R1	// QImode move
	pc=L60	// Indirect jump
L61:
.debug
	.dw '.stabn 0x44,0,114,',0,0
	.dd LM90-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM90:
	R1=BP	// QImode move
	R2=BP+1
	R1=128	// QImode move
	R4=R2	// QImode move
	[R4]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,115,',0,0
	.dd LM91-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM91:
	R2=[bp+2]	// QImode move
	R1=[R2]	// QImode move
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,116,',0,0
	.dd LM92-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM92:
	R2=BP	// QImode move
	R1=BP+1
	R2=BP	// QImode move
	R3=BP+1
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R4=[BP]	// QImode move
	R2|=R4
	R4=R1	// QImode move
	[R4]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,117,',0,0
	.dd LM93-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM93:
	R1=BP	// QImode move
	R2=BP+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call _lcd_wrcmd	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,118,',0,0
	.dd LM94-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM94:
	call _soft_20ms	// call without return value
.debug
	.dw '.stabn 0x44,0,119,',0,0
	.dd LM95-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM95:
L63:
	call _lcd_checkbusy	// call with return value
	CMP R1,0	// QImode test
	NSJNZ L65	//QImode NE
	pc=L64	// Indirect jump
L65:
	R1=1	// QImode move
	[28690]=R1	// QImode move
	pc=L63	// Indirect jump
L64:
.debug
	.dw '.stabn 0x44,0,121,',0,0
	.dd LM96-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM96:
	R1=[28677]	// QImode move
	R2=R1&(-256)
	[28677]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,122,',0,0
	.dd LM97-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM97:
	R1=[bp+2]	// QImode move
	R4=[bp+2]	// QImode move
	R2=R4+1
	R1=[28677]	// QImode move
	R4=R1	// QImode move
	R3=R2	// QImode move
	R4|=[R3]	// iorqi3_r0R
	R2=R4	// QImode move
	[28677]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,123,',0,0
	.dd LM98-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM98:
	R1=[28673]	// QImode move
	R2=R1|1
	[28673]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,124,',0,0
	.dd LM99-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM99:
	R1=[28673]	// QImode move
	R2=R1&(-3)
	[28673]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,125,',0,0
	.dd LM100-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM100:
	R1=[28673]	// QImode move
	R2=R1|4
	[28673]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,126,',0,0
	.dd LM101-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM101:
	call _soft_nop	// call without return value
.debug
	.dw '.stabn 0x44,0,127,',0,0
	.dd LM102-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM102:
	R1=[28673]	// QImode move
	R2=R1&(-5)
	[28673]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,128,',0,0
	.dd LM103-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM103:
	R1=[28677]	// QImode move
	R2=R1|255
	[28677]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,129,',0,0
	.dd LM104-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM104:
	R1=0	// QImode move
	[_lcdusing2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,130,',0,0
	.dd LM105-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM105:
LBE5:
.debug
	.dw '.stabn 0x44,0,130,',0,0
	.dd LM106-_lcd_wrdata1
	.dw 0x0d,0x0a
.code
LM106:
L59:

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

.debug
	.dw '.stabs "index:p1",160,0,0,6',0x0d,0x0a
.CODE
.debug

⌨️ 快捷键说明

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