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

📄 lcdsub.asm

📁 2407嵌入式系统程序(c语言)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	SACL	*+,AR2
	SSXM
	SBRK	5-LF8
	LAC	* ,AR1
	CALL	I$$MOD
	MAR	* ,AR2
	ADRK	4-LF8
	SACL	* ,AR1
	.line	6
;>>>> 		LCD_NUM88('B',HANZI_NUMBER+hundred_pin*8,0xFFBD,0xFF78);
	LACK	-136
	SACL	*+
	LACK	-67
	SACL	*+,AR2
	ADRK	2
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	7
;>>>> 		LCD_NUM88('C',HANZI_NUMBER+ten_pin*8,0xFFBD,0xFF40);
	LACK	-192
	SACL	*+
	LACK	-67
	SACL	*+,AR2
	LARK	AR2,2
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	8
;>>>> 		LCD_NUM88('C',HANZI_NUMBER+one_pin*8,0xFFBD,0xFF48);	
	LACK	-184
	SACL	*+
	LACK	-67
	SACL	*+,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
EPI0_8:
	.line	9
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	258,000000000H,4

	.sym	_LCD_GLOVETYPE,_LCD_GLOVETYPE,32,2,0
	.globl	_LCD_GLOVETYPE

	.func	259
;>>>> 	void   LCD_GLOVETYPE(argument1,argument2,argument3,argument4,argument5,argument6,argument7,argument8)
******************************************************
* FUNCTION DEF : _LCD_GLOVETYPE
******************************************************
_LCD_GLOVETYPE:

LF9	.set	0

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

	.sym	_argument1,-3+LF9,4,9,16
	.sym	_argument2,-4+LF9,4,9,16
	.sym	_argument3,-5+LF9,4,9,16
	.sym	_argument4,-6+LF9,4,9,16
	.sym	_argument5,-7+LF9,4,9,16
	.sym	_argument6,-8+LF9,4,9,16
	.sym	_argument7,-9+LF9,4,9,16
	.sym	_argument8,-10+LF9,4,9,16
	.sym	_one_pin,1,4,1,16
	.sym	_ten_pin,2,4,1,16
	.line	2
;>>>> 		int one_pin,ten_pin;
	.line	4
;>>>> 		ten_pin=argument1/10;
	LACK	10
	SACL	*+,AR2
	SSXM
	LARK	AR2,-3+LF9
	MAR	*0+
	LAC	* ,AR1
	CALL	I$$DIV
	MAR	* ,AR2
	ADRK	5-LF9
	SACL	* ,AR1
	.line	5
;>>>> 		one_pin=argument1%10;
	LACK	10
	SACL	*+,AR2
	SSXM
	SBRK	5-LF9
	LAC	* ,AR1
	CALL	I$$MOD
	MAR	* ,AR2
	ADRK	4-LF9
	SACL	*+,AR1
	.line	6
;>>>> 		LCD_NUM88('A',HANZI_NUMBER+ten_pin*8,0xFFBB,0xFF58);
	LACK	-168
	SACL	*+
	LACK	-69
	SACL	*+,AR2
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	7
;>>>> 		LCD_NUM88('A',HANZI_NUMBER+one_pin*8,0xFFBB,0xFF60);
	LACK	-160
	SACL	*+
	LACK	-69
	SACL	*+,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	8
;>>>> 		ten_pin=argument2/10;
	LACK	10
	SACL	*+,AR2
	SSXM
	LARK	AR2,-4+LF9
	MAR	*0+
	LAC	* ,AR1
	CALL	I$$DIV
	MAR	* ,AR2
	ADRK	6-LF9
	SACL	* ,AR1
	.line	9
;>>>> 		one_pin=argument2%10;
	LACK	10
	SACL	*+,AR2
	SSXM
	SBRK	6-LF9
	LAC	* ,AR1
	CALL	I$$MOD
	MAR	* ,AR2
	ADRK	5-LF9
	SACL	*+,AR1
	.line	10
;>>>> 		LCD_NUM88('B',HANZI_NUMBER+ten_pin*8,0xFFBB,0xFF58);
	LACK	-168
	SACL	*+
	LACK	-69
	SACL	*+,AR2
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	11
;>>>> 		LCD_NUM88('B',HANZI_NUMBER+one_pin*8,0xFFBB,0xFF60);
	LACK	-160
	SACL	*+
	LACK	-69
	SACL	*+,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	12
;>>>> 		ten_pin=argument3/10;
	LACK	10
	SACL	*+,AR2
	SSXM
	LARK	AR2,-5+LF9
	MAR	*0+
	LAC	* ,AR1
	CALL	I$$DIV
	MAR	* ,AR2
	ADRK	7-LF9
	SACL	* ,AR1
	.line	13
;>>>> 		one_pin=argument3%10;
	LACK	10
	SACL	*+,AR2
	SSXM
	SBRK	7-LF9
	LAC	* ,AR1
	CALL	I$$MOD
	MAR	* ,AR2
	ADRK	6-LF9
	SACL	*+,AR1
	.line	14
;>>>> 		LCD_NUM88('C',HANZI_NUMBER+ten_pin*8,0xFFBB,0xFF58);
	LACK	-168
	SACL	*+
	LACK	-69
	SACL	*+,AR2
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	15
;>>>> 		LCD_NUM88('C',HANZI_NUMBER+one_pin*8,0xFFBB,0xFF60);
	LACK	-160
	SACL	*+
	LACK	-69
	SACL	*+,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	16
;>>>> 		ten_pin=argument4/10;
	LACK	10
	SACL	*+,AR2
	SSXM
	LARK	AR2,-6+LF9
	MAR	*0+
	LAC	* ,AR1
	CALL	I$$DIV
	MAR	* ,AR2
	ADRK	8-LF9
	SACL	* ,AR1
	.line	17
;>>>> 		one_pin=argument4%10;
	LACK	10
	SACL	*+,AR2
	SSXM
	SBRK	8-LF9
	LAC	* ,AR1
	CALL	I$$MOD
	MAR	* ,AR2
	ADRK	7-LF9
	SACL	*+,AR1
	.line	18
;>>>> 		LCD_NUM88('A',HANZI_NUMBER+ten_pin*8,0xFFBD,0xFF58);
	LACK	-168
	SACL	*+
	LACK	-67
	SACL	*+,AR2
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	19
;>>>> 		LCD_NUM88('A',HANZI_NUMBER+one_pin*8,0xFFBD,0xFF60);
	LACK	-160
	SACL	*+
	LACK	-67
	SACL	*+,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	20
;>>>> 		ten_pin=argument5/10;
	LACK	10
	SACL	*+,AR2
	SSXM
	LARK	AR2,-7+LF9
	MAR	*0+
	LAC	* ,AR1
	CALL	I$$DIV
	MAR	* ,AR2
	ADRK	9-LF9
	SACL	* ,AR1
	.line	21
;>>>> 		one_pin=argument5%10;
	LACK	10
	SACL	*+,AR2
	SSXM
	SBRK	9-LF9
	LAC	* ,AR1
	CALL	I$$MOD
	MAR	* ,AR2
	ADRK	8-LF9
	SACL	*+,AR1
	.line	22
;>>>> 		LCD_NUM88('B',HANZI_NUMBER+ten_pin*8,0xFFBD,0xFF58);
	LACK	-168
	SACL	*+
	LACK	-67
	SACL	*+,AR2
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	23
;>>>> 		LCD_NUM88('B',HANZI_NUMBER+one_pin*8,0xFFBD,0xFF60);
	LACK	-160
	SACL	*+
	LACK	-67
	SACL	*+,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	24
;>>>> 		ten_pin=argument6/10;
	LACK	10
	SACL	*+,AR2
	SSXM
	LARK	AR2,-8+LF9
	MAR	*0+
	LAC	* ,AR1
	CALL	I$$DIV
	MAR	* ,AR2
	ADRK	10-LF9
	SACL	* ,AR1
	.line	25
;>>>> 		one_pin=argument6%10;
	LACK	10
	SACL	*+,AR2
	SSXM
	SBRK	10-LF9
	LAC	* ,AR1
	CALL	I$$MOD
	MAR	* ,AR2
	ADRK	9-LF9
	SACL	*+,AR1
	.line	26
;>>>> 		LCD_NUM88('C',HANZI_NUMBER+ten_pin*8,0xFFBD,0xFF58);
	LACK	-168
	SACL	*+
	LACK	-67
	SACL	*+,AR2
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	27
;>>>> 		LCD_NUM88('C',HANZI_NUMBER+one_pin*8,0xFFBD,0xFF60);
	LACK	-160
	SACL	*+
	LACK	-67
	SACL	*+,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	67
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	28
;>>>> 		ten_pin=argument7/10;
	LACK	10
	SACL	*+,AR2
	SSXM
	LARK	AR2,-9+LF9
	MAR	*0+
	LAC	* ,AR1
	CALL	I$$DIV
	MAR	* ,AR2
	ADRK	11-LF9
	SACL	* ,AR1
	.line	29
;>>>> 		one_pin=argument7%10;
	LACK	10
	SACL	*+,AR2
	SSXM
	SBRK	11-LF9
	LAC	* ,AR1
	CALL	I$$MOD
	MAR	* ,AR2
	ADRK	10-LF9
	SACL	*+,AR1
	.line	30
;>>>> 		LCD_NUM88('A',HANZI_NUMBER+ten_pin*8,0xFFBF,0xFF58);
	LACK	-168
	SACL	*+
	LACK	-65
	SACL	*+,AR2
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	31
;>>>> 		LCD_NUM88('A',HANZI_NUMBER+one_pin*8,0xFFBF,0xFF60);
	LACK	-160
	SACL	*+
	LACK	-65
	SACL	*+,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	65
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	32
;>>>> 		ten_pin=argument8/10;
	LACK	10
	SACL	*+,AR2
	SSXM
	LARK	AR2,-10+LF9
	MAR	*0+
	LAC	* ,AR1
	CALL	I$$DIV
	MAR	* ,AR2
	ADRK	12-LF9
	SACL	* ,AR1
	.line	33
;>>>> 		one_pin=argument8%10;
	LACK	10
	SACL	*+,AR2
	SSXM
	SBRK	12-LF9
	LAC	* ,AR1
	CALL	I$$MOD
	MAR	* ,AR2
	ADRK	11-LF9
	SACL	*+,AR1
	.line	34
;>>>> 		LCD_NUM88('B',HANZI_NUMBER+ten_pin*8,0xFFBF,0xFF58);
	LACK	-168
	SACL	*+
	LACK	-65
	SACL	*+,AR2
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
	.line	35
;>>>> 		LCD_NUM88('B',HANZI_NUMBER+one_pin*8,0xFFBF,0xFF60);
	LACK	-160
	SACL	*+
	LACK	-65
	SACL	*+,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* ,3,AR1
	ADLK	_HANZI_NUMBER+0,0
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_NUM88
	SBRK	4
EPI0_9:
	.line	36
	SBRK	4
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	294,000000000H,3

	.sym	_LCD_HANZI,_LCD_HANZI,32,2,0
	.globl	_LCD_HANZI

	.func	296
;>>>> 	void LCD_HANZI(char LCD_PART,const int *HANZI_ADD)
******************************************************
* FUNCTION DEF : _LCD_HANZI
******************************************************
_LCD_HANZI:

LF10	.set	0

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

	.sym	_LCD_PART,-3+LF10,2,9,16
	.sym	_HANZI_ADD,-4+LF10,20,9,16
	.sym	_i,1,4,1,16
	.sym	_k,2,4,1,16
	.sym	_j,3,4,1,16
	.line	2
;>>>> 		int i;
;>>>> 		int k;
;>>>> 		int j;
;>>>> 		switch(LCD_PART)
;>>>> 			{	case'A':
	B	L43
L44:
	.line	10
;>>>> 					for(i=0;i<8;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	8
	BGEZ	L47
L45:
	.line	11
;>>>> 					{	j=*(HANZI_ADD+i);
	LAC	* 
	SBRK	5-LF10
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	ADRK	7-LF10
	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,3
	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,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	8
	BLZ	L45
	.line	17
;>>>> 					break;
;>>>> 				case'B':
	B	L47
L48:
	.line	19
;>>>> 					for(i=0;i<8;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	8
	BGEZ	L47
L49:
	.line	20
;>>>> 					{	j=*(HANZI_ADD+i);
	LAC	* 
	SBRK	5-LF10
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	ADRK	7-LF10
	SACL	* 
	.line	21
;>>>> 						k=(j>>8)|0xFF00;
	LAC	*-,7
	ORK	65280,15
	SACH	* ,1
	.line	22
;>>>> 						LCD_WRITE('B',k);
	LAC	* ,AR1
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	23
;>>>> 						k=j|0xFF00;
	LACK	65280
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	OR	*-
	SACL	* ,AR1
	.line	24
;>>>> 						LCD_WRITE('B',k);
	SACL	*+
	LACK	66
	SACL	*+
	CALL	_LCD_WRITE
	SBRK	2
	.line	19
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	8
	BLZ	L49
	.line	26
;>>>> 					break;
;>>>> 				case'C':
	B	L47
L51:
	.line	28
;>>>> 					for(i=0;i<8;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	8
	BGEZ	L47
L52:
	.line	29
;>>>> 					{	j=*(HANZI_ADD+i);
	LAC	* 
	SBRK	5-LF10
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	ADRK	7-LF10
	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,3
	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	8
	BLZ	L52
	.line	35
;>>>> 					break;
	B	L47
	.line	36
;>>>> 				default:break;
L43:
	.line	8
	SSXM
	MAR	* ,AR2
	LARK	AR2,-3+LF10
	MAR	*0+
	LAC	* 
	SUBK	65
	BZ	L44
	SUBK	1
	BZ	L48
	SUBK	1
	BZ	L51
L47:
EPI0_10:
	.line	38
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	333,000000000H,4

	.sym	_LCD_NUMHANZI,_LCD_NUMHANZI,32,2,0
	.globl	_LCD_NUMHANZI

	.func	334
;>>>> 	void LCD_NUMHANZI(char LCD_PART,const int *HANZI_ADD)
******************************************************
* FUNCTION DEF : _LCD_NUMHANZI
******************************************************
_LCD_NUMHANZI:

LF11	.set	0

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

	.sym	_LCD_PART,-3+LF11,2,9,16
	.sym	_HANZI_ADD,-4+LF11,20,9,16
	.sym	_i,1,4,1,16
	.sym	_k,2,4,1,16
	.sym	_j,3,4,1,16
	.line	2
;>>>> 		int i;
;>>>> 		int k;
;>>>> 		int j;
;>>>> 		switch(LCD_PART)
;>>>> 			{	case'A':
	B	L55
L56:
	.line	8
;>>>> 					for(i=0;i<4;i++)
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	SSXM
	LAC	* 
	SUBK	4
	BGEZ	L59
L57:
	.line	9
;>>>> 					{	j=*(HANZI_ADD+i);
	LAC	* 
	SBRK	5-LF11
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR2
	ADRK	7-LF11
	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,3
	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	* 

⌨️ 快捷键说明

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