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

📄 lcdsub.asm

📁 2407嵌入式系统程序(c语言)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	SUBK	4
	BLZ	L57
	.line	15
;>>>> 					break;
;>>>> 				case'B':
	B	L59
L60:
	.line	17
;>>>> 					for(i=0;i<4;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BGEZ	L59
L61:
	.line	18
;>>>> 					{	j=*(HANZI_ADD+i);
	LAC	* 
	SBRK	5-LF11
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	ADRK	7-LF11
	SACL	* 
	.line	19
;>>>> 						k=(j>>8)|0xFF00;
	LAC	*-,7
	ORK	65280,15
	SACH	* ,1
	.line	20
;>>>> 						LCD_WRITE('B',k);
	LAC	* ,AR1
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	21
;>>>> 						k=j|0xFF00;
	LACK	65280
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	OR	*-
	SACL	* ,AR1
	.line	22
;>>>> 						LCD_WRITE('B',k);
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	17
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BLZ	L61
	.line	24
;>>>> 					break;
;>>>> 				case'C':
	B	L59
L63:
	.line	26
;>>>> 					for(i=0;i<4;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BGEZ	L59
L64:
	.line	27
;>>>> 					{	j=*(HANZI_ADD+i);
	LAC	* 
	SBRK	5-LF11
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	ADRK	7-LF11
	SACL	* 
	.line	28
;>>>> 						k=(j>>8)|0xFF00;
	LAC	*-,7
	ORK	65280,15
	SACH	* ,1
	.line	29
;>>>> 						LCD_WRITE('C',k);
	LAC	* ,AR1
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	30
;>>>> 						k=j|0xFF00;
	LACK	65280
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	OR	*-
	SACL	* ,AR1
	.line	31
;>>>> 						LCD_WRITE('C',k);
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	26
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BLZ	L64
	.line	33
;>>>> 					break;
	B	L59
	.line	34
;>>>> 				default:break;
L55:
	.line	6
	SSXM
	MAR	* ,AR2
	LARK	AR2,-3+LF11
	MAR	*0+
	LAC	* 
	SUBK	65
	BZ	L56
	SUBK	1
	BZ	L60
	SUBK	1
	BZ	L63
L59:
EPI0_11:
	.line	36
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	369,000000000H,4

	.sym	_LCD_HANZIHALF,_LCD_HANZIHALF,32,2,0
	.globl	_LCD_HANZIHALF

	.func	370
;>>>> 	void LCD_HANZIHALF(char LCD_PART,const int *HANZI_ADD)
******************************************************
* FUNCTION DEF : _LCD_HANZIHALF
******************************************************
_LCD_HANZIHALF:

LF12	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,36
	LAR	AR0,*0+

	.sym	_LCD_PART,-3+LF12,2,9,16
	.sym	_HANZI_ADD,-4+LF12,20,9,16
	.sym	_hanzi,1,52,1,512,,32
	.sym	_i,33,4,1,16
	.sym	_j,34,4,1,16
	.sym	_k,35,4,1,16
	.line	2
;>>>> 		int hanzi[32];
;>>>> 		int i;
;>>>> 		int j;
;>>>> 		int k;
	.line	7
;>>>> 		pdmemcpy((void *)hanzi, (void *)HANZI_ADD, 32);
;>>>> 		switch(LCD_PART)
;>>>> 			{	case'A':
	LACK	32
	SACL	*+,AR2
	LARK	AR2,-4+LF12
	MAR	*0+
	LAC	* ,AR1
	SACL	*+,AR3
	LARK	AR3,1
	MAR	*0+,AR1
	SAR	AR3,*+
	CALL	_pdmemcpy
	SBRK	3
	B	L67
L68:
	.line	10
;>>>> 					for(i=0;i<4;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,33
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BGEZ	L71
L69:
	.line	11
;>>>> 					{	j=*(hanzi+i);
	LAR	AR3,*+,AR3
	MAR	*0+
	MAR	*+
	LAC	* ,AR2
	SACL	* 
	.line	12
;>>>> 						k=(j>>8)|0xFF00;
	LAC	*+,7
	ORK	65280,15
	SACH	* ,1
	.line	13
;>>>> 						LCD_WRITE('A',k);
	LAC	* ,AR1
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	14
;>>>> 						k=j|0xFF00;
	LACK	65280
	MAR	* ,AR2
	LARK	AR2,34
	MAR	*0+
	OR	*+
	SACL	* ,AR1
	.line	15
;>>>> 						LCD_WRITE('A',k);
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	10
	MAR	* ,AR2
	LARK	AR2,33
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BLZ	L69
	.line	17
;>>>> 					break;
;>>>> 				case'B':
	B	L71
L72:
	.line	20
;>>>> 					for(i=0;i<4;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,33
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BGEZ	L71
L73:
	.line	21
;>>>> 					{	j=*(hanzi+i);
	LAR	AR3,*+,AR3
	MAR	*0+
	MAR	*+
	LAC	* ,AR2
	SACL	* 
	.line	22
;>>>> 						k=(j>>8)|0xFF00;
	LAC	*+,7
	ORK	65280,15
	SACH	* ,1
	.line	23
;>>>> 						LCD_WRITE('B',k);
	LAC	* ,AR1
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	24
;>>>> 						k=j|0xFF00;
	LACK	65280
	MAR	* ,AR2
	LARK	AR2,34
	MAR	*0+
	OR	*+
	SACL	* ,AR1
	.line	25
;>>>> 						LCD_WRITE('B',k);
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	20
	MAR	* ,AR2
	LARK	AR2,33
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BLZ	L73
	.line	27
;>>>> 					break;
;>>>> 				case'C':
	B	L71
L75:
	.line	30
;>>>> 					for(i=0;i<4;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,33
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BGEZ	L71
L76:
	.line	31
;>>>> 					{	j=*(hanzi+i);
	LAR	AR3,*+,AR3
	MAR	*0+
	MAR	*+
	LAC	* ,AR2
	SACL	* 
	.line	32
;>>>> 						k=(j>>8)|0xFF00;
	LAC	*+,7
	ORK	65280,15
	SACH	* ,1
	.line	33
;>>>> 						LCD_WRITE('C',k);
	LAC	* ,AR1
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	34
;>>>> 						k=j|0xFF00;
	LACK	65280
	MAR	* ,AR2
	LARK	AR2,34
	MAR	*0+
	OR	*+
	SACL	* ,AR1
	.line	35
;>>>> 						LCD_WRITE('C',k);
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	30
	MAR	* ,AR2
	LARK	AR2,33
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BLZ	L76
	.line	37
;>>>> 					break;
	B	L71
	.line	38
;>>>> 				default:break;
L67:
	.line	8
	SSXM
	MAR	* ,AR2
	LARK	AR2,-3+LF12
	MAR	*0+
	LAC	* 
	SUBK	65
	BZ	L68
	SUBK	1
	BZ	L72
	SUBK	1
	BZ	L75
L71:
EPI0_12:
	.line	40
	MAR	* ,AR1
	SBRK	37
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	409,000000000H,36

	.sym	_LCD_HANZIHALFCON,_LCD_HANZIHALFCON,32,2,0
	.globl	_LCD_HANZIHALFCON

	.func	410
;>>>> 	void LCD_HANZIHALFCON(char LCD_PART,const int *HANZI_ADD)
******************************************************
* FUNCTION DEF : _LCD_HANZIHALFCON
******************************************************
_LCD_HANZIHALFCON:

LF13	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,4
	LAR	AR0,*0+

	.sym	_LCD_PART,-3+LF13,2,9,16
	.sym	_HANZI_ADD,-4+LF13,20,9,16
	.sym	_i,1,4,1,16
	.sym	_j,2,4,1,16
	.sym	_k,3,4,1,16
	.line	2
;>>>> 		int i;
;>>>> 		int j;
;>>>> 		int k;
;>>>> 		switch(LCD_PART)
;>>>> 			{	case'A':
	B	L79
L80:
	.line	8
;>>>> 					for(i=0;i<4;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BGEZ	L83
L81:
	.line	9
;>>>> 					{	j=*(HANZI_ADD+i);
	LAC	* 
	SBRK	5-LF13
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	ADRK	6-LF13
	SACL	* 
	.line	10
;>>>> 						k=(j>>8)|0xFF00;
	LAC	*+,7
	ORK	65280,15
	SACH	* ,1
	.line	11
;>>>> 						LCD_WRITE('A',k);
	LAC	* ,AR1
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	12
;>>>> 						k=j|0xFF00;
	LACK	65280
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	OR	*+
	SACL	* ,AR1
	.line	13
;>>>> 						LCD_WRITE('A',k);
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	8
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BLZ	L81
	.line	15
;>>>> 					break;
;>>>> 				case'B':
	B	L83
L84:
	.line	18
;>>>> 					for(i=0;i<4;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BGEZ	L83
L85:
	.line	19
;>>>> 					{	j=*(HANZI_ADD+i);
	LAC	* 
	SBRK	5-LF13
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	ADRK	6-LF13
	SACL	* 
	.line	20
;>>>> 						k=(j>>8)|0xFF00;
	LAC	*+,7
	ORK	65280,15
	SACH	* ,1
	.line	21
;>>>> 						LCD_WRITE('B',k);
	LAC	* ,AR1
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	22
;>>>> 						k=j|0xFF00;
	LACK	65280
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	OR	*+
	SACL	* ,AR1
	.line	23
;>>>> 						LCD_WRITE('B',k);
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	18
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BLZ	L85
	.line	25
;>>>> 					break;
;>>>> 				case'C':
	B	L83
L87:
	.line	28
;>>>> 					for(i=0;i<4;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BGEZ	L83
L88:
	.line	29
;>>>> 					{	j=*(HANZI_ADD+i);
	LAC	* 
	SBRK	5-LF13
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	ADRK	6-LF13
	SACL	* 
	.line	30
;>>>> 						k=(j>>8)|0xFF00;
	LAC	*+,7
	ORK	65280,15
	SACH	* ,1
	.line	31
;>>>> 						LCD_WRITE('C',k);
	LAC	* ,AR1
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	32
;>>>> 						k=j|0xFF00;
	LACK	65280
	MAR	* ,AR2
	LARK	AR2,2
	MAR	*0+
	OR	*+
	SACL	* ,AR1
	.line	33
;>>>> 						LCD_WRITE('C',k);
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	28
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BLZ	L88
	.line	35
;>>>> 					break;
	B	L83
	.line	36
;>>>> 				default:break;
L79:
	.line	6
	SSXM
	MAR	* ,AR2
	LARK	AR2,-3+LF13
	MAR	*0+
	LAC	* 
	SUBK	65
	BZ	L80
	SUBK	1
	BZ	L84
	SUBK	1
	BZ	L87
L83:
EPI0_13:
	.line	38
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	447,000000000H,4

	.sym	_CON_HANZI,_CON_HANZI,100,2,0
	.globl	_CON_HANZI

	.func	448
;>>>> 	int *CON_HANZI(int *HANZI_CON,const int *SOURCE_ADD)
******************************************************
* FUNCTION DEF : _CON_HANZI
******************************************************
_CON_HANZI:

LF14	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,19
	LAR	AR0,*0+

	.sym	_HANZI_CON,-3+LF14,20,9,16
	.sym	_SOURCE_ADD,-4+LF14,20,9,16
	.sym	_i,1,4,1,16
	.sym	_j,2,4,1,16
	.sym	_hanzi_con,3,52,1,256,,16
	.line	2
;>>>> 		int i,j;
;>>>> 		int hanzi_con[16];
	.line	5
;>>>> 		pdmemcpy((void *)hanzi_con, (void *)SOURCE_ADD, 16);
	LACK	16
	SACL	*+,AR2
	LARK	AR2,-4+LF14
	MAR	*0+
	LAC	* ,AR1
	SACL	*+,AR3
	LARK	AR3,3
	MAR	*0+,AR1
	SAR	AR3,*+
	CALL	_pdmemcpy
	SBRK	3
	.line	6
;>>>> 		for(i=0;i<32;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	32
	BGEZ	L92
L91:
	.line	7
;>>>> 			HANZI_CON[i]=0xFFFF-*(hanzi_con+i);
	LAR	AR3,* ,AR3
	MAR	*0+
	LACK	65535
	ADRK	3
	SUB	* ,AR1
	SACL	*+,AR2
	LAC	* 
	SBRK	4-LF14
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR1
	MAR	*-
	LAC	* ,AR3
	SACL	* ,AR2
	.line	6
	ADRK	4-LF14
	LAC	* 
	ADDK	1
	SACL	* 
	LAC	* 
	SUBK	32
	BLZ	L91
L92:
	.line	9
;>>>> 		return(HANZI_CON);
	SBRK	4-LF14
	ZALS	* 
EPI0_14:
	.line	10
	MAR	* ,AR1
	SBRK	20
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	457,000000000H,19

	.sym	_CON_HANZI2,_CON_HANZI2,100,2,0
	.globl	_CON_HANZI2

	.func	459
;>>>> 	int *CON_HANZI2(int *HANZI_CON, int *SOURCE_ADD)
******************************************************
* FUNCTION DEF : _CON_HANZI2
******************************************************
_CON_HANZI2:

LF15	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,19
	LAR	AR0,*0+

	.sym	_HANZI_CON,-3+LF15,20,9,16
	.sym	_SOURCE_ADD,-4+LF15,20,9,16
	.sym	_i,1,4,1,16
	.sym	_j,2,4,1,16
	.sym	_hanzi_con,3,52,1,256,,16
	.line	2
;>>>> 		int i,j;
;>>>> 		int hanzi_con[16];
	.line	5
;>>>> 		pdmemcpy((void *)hanzi_con, (void *)SOURCE_ADD, 16);
	LACK	16
	SACL	*+,AR2
	LARK	AR2,-4+LF15
	MAR	*0+
	LAC	* ,AR1
	SACL	*+,AR3
	LARK	AR3,3
	MAR	*0+,AR1
	SAR	AR3,*+
	CALL	_pdmemcpy
	SBRK	3
	.line	6
;>>>> 		for(i=0;i<32;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	32
	BGEZ	L94
L93:
	.line	7
;>>>> 			HANZI_CON[i]=0xFFFF-*(hanzi_con+i);
	LAR	AR3,* ,AR3
	MAR	*0+
	LACK	65535
	ADRK	3
	SUB	* ,AR1
	SACL	*+,AR2
	LAC	* 
	SBRK	4-LF15
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR1
	MAR	*-
	LAC	* ,AR3
	SACL	* ,AR2
	.line	6
	ADRK	4-LF15
	LAC	* 
	ADDK	1
	SACL	* 
	LAC	* 
	SUBK	32
	BLZ	L93
L94:
	.line	9
;>>>> 		return(HANZI_CON);
	SBRK	4-LF15
	ZALS	* 
EPI0_15:
	.line	10
	MAR	* ,AR1
	SBRK	20
	LAR	AR0,*-
	PSHD	*

⌨️ 快捷键说明

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