迪文屏OS汇编代码开发-保存/读取数据篇(四)

开发过程中需要以下材料:

软件环境: DWIN OS ASM Builder V1.5
硬件环境:DW K600+平台
迪文屏操作手册
SD卡(更新代码)

应用场景

在开发过程中,我们常常需要保存用户数据,迪文屏就有这个功能。我们可以直接把数据保存在屏幕中,这样减少屏幕与下位机的交互,特别是数据量大的时候,这一点更明显。

示例代码1

:以下代码实现把数据0XFFFF0001写入地址0X0130 0000-0X0130 0001中,此处把写用户数据封装成模块,方便程序多次调用。

	LDWR R10,0XFFFF; 把要保存的数据,写入寄存器R10-R13
	LDWR R12,0X0001
	LDWR R4,0X0130;数据保存的地址写入R4-R6
	LDWR R6,0X0000
	CALL 写2W用户数据

	写2W用户数据:  
	LDWR R0,0X1001;r0 r1指定变量地址
	MOVXR R10,0,2;把要写入的数据,临时存储在0x1001这个地址中
	MOVXL 3,2;2字的数据写入用户存储区
	RET

示例代码2

:以下代码实现从地址0X0130 0000-0X0130 0001中读出2字的数。

	LDWR R4,0x0130 ; 
	LDWR R6,0x0000
	CALL 读2W用户数据;2W用户数据:  ;读出到1001
	LDWR R0,0x1001;
	MOVXL 2,2;读出序号内容到0x1001
	RET

示例代码3

下述代码实现类似指针C语言指针变量的功能;
给定的地址中(R4-R6)存储的内容为一个地址值,通过对内容地址进行加操作,得到一个新地址,最后向新地址赋值R56-R59
调用这个子函数时,只需给R4-R6,R36-R39,R56-R59赋初值即可。

	READ_ADD_WRITE_DATA:
	;功能:根据给定的地址--读出给定地址内容--对内容加操作--以新内容为地址写入数据
	;参数:给定地址:R4-R6,内容增量:R36-R39,写入数据:R56-R59
	LDWR R0,0x1001;
	MOVXL 2,2;读出内容 
	;加操作
	LDBR R40,0,16;清空寄存器组
	MOV R36,R44,4 ;输入内容增量
	MOVXR R40,XR,2
    COMTXI 0,R40,8  
	ADD R40,R44,R48;R52 R53 R54 R55 
	COMTXI 0,R52,8;地址 01300002
	;写入
	MOV R52,R4,4
	LDWR R0,0X1001;
	MOVXR R56,RX,2
	MOVXL 3,2  ;写
	RET
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值