迪文科技论坛

 找回密码
 立即注册
搜索
楼主: 大鸡鸡男

求助各位大神,数据库内容批量读取OS怎么实现呢

[复制链接]

4

主题

24

回帖

349

积分

中级会员

Rank: 3Rank: 3

积分
349
 楼主| 发表于 2020-3-3 18:01:31 | 显示全部楼层
z6642008 发表于 2020-3-2 16:12
这个R255,0的只是为了让其上电执行一次数据库的读取操作,就是上电初始化的意思,运行一次之后,就将R25 ...

大佬能不能帮我搞一个例子,我自己搞了一天没搞定
回复

使用道具 举报

1

主题

151

回帖

2685

积分

金牌会员

Rank: 6Rank: 6

积分
2685
发表于 2020-3-4 12:54:39 | 显示全部楼层
大鸡鸡男 发表于 2020-3-3 18:01
大佬能不能帮我搞一个例子,我自己搞了一天没搞定

ORG 1000H   
  GOTO   MAIN
  NOP
  NOP
  NOP
  ORG  1080H
MAIN:                                      
        CALL   上电从数据库读取   
        CALL   保存数据到数据库
    GOTO   MAIN   
;================

上电从数据库读取:
     IJNE R255,0,初始化结束    ;通常习惯用R255寄存器做标志位
     LDBR R255,1,1
     LDWR R0,0008H   
     LDWR R10,5A00H  ;数据库读操作
     LDWR R12,1500H  ;读取数据库地址001500
     LDWR R14,2000H  ;读到VP2000H
     LDWR R16,2      ;读取2个字长度
     MOVXR R10,0,4
  
     LOOP1:                ;判断数据库读操作是否完成
     LDWR R0,0008H
     MOVXR R10,1,1
     IJNE R10,0,LOOP1
  
初始化结束:
     RET
;====================================
保存数据到数据库:
    LDWR        R0,2000H  ;判断2000H数据是否有变化,变化则保存到数据库。
    MOVXR        R20,1,1
    TESTS        R20,R120,2
    IJNE        R0,0,1
    RET       
    MOV         R20,R120,2

    LDWR R0,0008H
    LDWR R10,A500H  ;数据库写操作
    LDWR R12,1500H  ;写到数据库地址001500
    LDWR R14,2000H  ;需要保存的数据的VP为2000H
    LDWR R16,2     ;保存2个字数据
    MOVXR R10,0,4
     
    LOOP2:            ;判断数据库写操作是否完成
    LDWR R0,0008H
    MOVXR R10,1,1
    IJNE R10,0,LOOP2
OVER:
    RET  
回复

使用道具 举报

4

主题

24

回帖

349

积分

中级会员

Rank: 3Rank: 3

积分
349
 楼主| 发表于 2020-3-4 15:12:48 | 显示全部楼层
我想换个ID 发表于 2020-3-4 12:54
ORG 1000H   
  GOTO   MAIN
  NOP

谢谢,我想同时读取和保存两个变量怎么办呢,比如2000和2100呢
回复

使用道具 举报

0

主题

181

回帖

1947

积分

金牌会员

Rank: 6Rank: 6

积分
1947
发表于 2020-3-4 17:38:22 | 显示全部楼层
请参考板凳回复的,只需要修改长度即可。
回复

使用道具 举报

4

主题

24

回帖

349

积分

中级会员

Rank: 3Rank: 3

积分
349
 楼主| 发表于 2020-3-5 14:01:24 | 显示全部楼层
hao8584 发表于 2020-3-4 17:38
请参考板凳回复的,只需要修改长度即可。

LDWR R0,0008H   
     LDWR R10,5A00H  ;数据库读操作
     LDWR R12,1500H  ;读取数据库地址001500
     LDWR R14,2000H  ;读到VP2000H
     LDWR R16,2      ;读取2个字长度
     MOVXR R10,0,4
修改LDWR R16,4      ;读取4个字长度
也是读到VP2000里面呀,怎么读到2004里面呢
回复

使用道具 举报

0

主题

178

回帖

1163

积分

金牌会员

Rank: 6Rank: 6

积分
1163
发表于 2020-3-5 14:26:03 | 显示全部楼层
一个字占用一个变量地址
回复

使用道具 举报

4

主题

24

回帖

349

积分

中级会员

Rank: 3Rank: 3

积分
349
 楼主| 发表于 2020-3-5 15:12:22 | 显示全部楼层
shirap12peng 发表于 2020-3-5 14:26
一个字占用一个变量地址

请教一下该怎么写呢
回复

使用道具 举报

0

主题

178

回帖

1163

积分

金牌会员

Rank: 6Rank: 6

积分
1163
发表于 2020-3-5 15:52:00 | 显示全部楼层
比如读取4个字的数据,那么读回来的数据就依次到了2000H  2001H  2002H  2003H
回复

使用道具 举报

4

主题

24

回帖

349

积分

中级会员

Rank: 3Rank: 3

积分
349
 楼主| 发表于 2020-3-5 17:20:06 | 显示全部楼层
shirap12peng 发表于 2020-3-5 15:52
比如读取4个字的数据,那么读回来的数据就依次到了2000H  2001H  2002H  2003H

明白了,谢谢你,但是如果两个变量地址跨度很大,是不是就得分开来写呢
回复

使用道具 举报

0

主题

178

回帖

1163

积分

金牌会员

Rank: 6Rank: 6

积分
1163
发表于 2020-3-5 18:43:15 | 显示全部楼层
可以参考上面的例子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-8-22 10:08 , Processed in 0.038848 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表