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

📄 graph.asm

📁 用SEED-DTK平台开发的液晶和键盘控制的源码
💻 ASM
字号:

		.file	"graph.asm"
		.c_mode
		.copy	"vc5402.inc"
		
		.def	_gethz
		.def	_getasc
		
		.data
hz16_base	.set	0A000H
asc32_base	.set	4F80H
		
		.text

*********************************************************************************
*										*
* 函数定义:void _gethz(uint apcode, uchar *ptr)			   		*
* 功  能:取16*16点阵汉字字模							*
*										*
* 入口参数:A	   ----	汉字码序号apcode						*
*          (SP+n)  ----	字模缓冲区地址指针ptr,如果是.far_mode模式则n为2,否则n为1	*
*			16*16点阵汉字字模有16行16列,以行排列,自左到右,从上至下	*
*			字模以16位字形式存储,每行16位,占1个存储单元		*
*			左点占高位,右点占低位					*
*			每个16*16点阵ASCII码字模占16个16位字的储存单元		*
*			8178个16*16点阵汉字共占8178*16 = 130848 = 128K个储存单元	*
*			16*16点阵汉字字模定位于'VC5402程序存储器的Flash中		*
*			地址为:A0000H~BFF1FH					*
* 出口参数:字模从字模表读入(SP+n)所指向的缓冲区中					*
* 资源使用:B,AR0								*
*										*
*********************************************************************************
_gethz:		.if	__far_mode		; 堆栈指针SP调整到偶边界
		.else
		FRAME	-1
		.endif
		
		ADD	#hz16_base,A		; 计算16*16点阵汉字字模的绝对地址
		SFTL	A,4,A
		LD	2H,B
		STLM	B,AR0			; AR0←缓冲区地址指针
		
		RPT	#15
		READA	*AR0+
		
		.if	__far_mode		; 函数返回
		FRET
		.else
		FRAME	1
		RET	
		.endif
		
*********************************************************************************
*										*
* 函数定义:void _getASC(uint apcode, uchar *ptr)			   		*
* 功  能:取32*16点阵ASCII字模							*
*										*
* 入口参数:A	   ----	ASC序号apcode						*
*          (SP+n)  ----	字模缓冲区地址指针ptr,如果是.far_mode模式则n为2,否则n为1	*
*			16*16点阵ASC字模有16行16列,以行排列,自左到右,从上至下	*
*			字模以16位字形式存储,每行16位,占1个存储单元		*
*			左点占高位,右点占低位					*
*			每个16*16点阵ASCII码字模占16个16位字的储存单元		*
*			8178个16*16点阵汉字共占8178*16 = 130848 = 128K个储存单元	*
*			16*16点阵汉字字模定位于'VC5402程序存储器的Flash中		*
*			地址为:A0000H~BFF1FH					*
* 出口参数:字模从字模表读入(SP+n)所指向的缓冲区中					*
* 资源使用:B,AR0								*
*										*
*********************************************************************************
_getasc:	.if	__far_mode		; 堆栈指针SP调整到偶边界
		.else
		FRAME	-1
		.endif
		
		ADD	#asc32_base,A		; 计算16*16点阵汉字字模的绝对地址
		SFTL	A,5,A
		LD	2H,B
		STLM	B,AR0			; AR0←缓冲区地址指针
		
		RPT	#31
		READA	*AR0+
		
		.if	__far_mode		; 函数返回
		FRET
		.else
		FRAME	1
		RET	
		
		.endif

⌨️ 快捷键说明

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