迪文科技论坛

 找回密码
 立即注册
搜索
查看: 1042|回复: 1

【提问】求帮忙看一下代码有没有问题

[复制链接]

15

主题

14

回帖

156

积分

注册会员

Rank: 2

积分
156
发表于 2021-10-11 14:50:59 | 显示全部楼层 |阅读模式
我是将下面的OS代码写成了C51代码,不知道有没有问题,请各位帮忙看一下。或者有什么好的建议,能够优化一下c51代码
---------------------------------------------------------------------------------------------------------------------------------------
ORG 1000H
GOTO Main;跳转到Main函数
ORG                 1080H
Main:                        
                                ;这一段代码是将0x7805地址存储的值赋给0x7825地址来存储
                                LDWR R0, 0X7805                                                ; R0:R1 0x7805
                                MOVXR R10, 1, 1                                                ; R10:R11 0x7805存储的1个字长度的数据
                                LDWR R0, 0X7825                                                ; R0:R1 0x7825
                                MOVXR R10, 0, 1                                                ; 0x7825 0x7805存储的值
;
                                ;这一段代码是将0x7808地址存储的值赋给0x7828地址,将0x108E低字节存储的数据赋给0x7829地址
                                LDWR R0, 0X7808                                                ; R0:R1 0x7808
                                MOVXR R10, 1, 2                                                ; R10:R11:R12:R13 0x7808 0x7809的数据
                                LDWR R0, 0X108E                                                ; R0:R1 0x108E
                                MOVXR R20, 1, 1                                                ; R20:R21 0x108E的数据
                                MOV R21, R12, 1                                                ; R12:R13 R21:R22  0x108E低字节存储的数据
                                ;LDBR R12, 1, 1
                                LDWR R0, 0X7828                                                ; R0:R1 0x7828
                                MOVXR R10, 0, 2                                                ; 0x7828 0x7829 R10:R11:R12:R13 0x7808 0x108E低字节

                                ;这一段代码是将0x7845地址存储的值赋给0x7865地址来存储
                                LDWR R0, 0X7845
                                MOVXR R10, 1, 1
                                LDWR R0, 0X7865
                                MOVXR R10, 0, 1
                                
                                ;这一段代码是将0x7848地址存储的值赋给0x7868地址,将0x108E低字节存储的数据赋给0x7869地址
                                LDWR R0, 0X7848                                                ; R0:R1 0x7848
                                MOVXR R10, 1, 2                                                ; R10:R11:R12:R13 0x7848 0x7849
                                MOV R21, R12, 1                                                ; R12:R13 R21:R22 0x108E-low
                                ;LDBR R12, 1, 1
                                LDWR R0, 0X7868                                                ; R0:R1 0x7868
                                MOVXR R10, 0, 2                                                ; 0x7868 0x7869 R10:R11:R12:R13 0x7848 0x108E-low
                                
                                ;这一段代码是将0x7905地址存储的值赋给0x7925地址来存储
                                LDWR R0, 0X7905
                                MOVXR R10, 1, 1
                                LDWR R0, 0X7925
                                MOVXR R10, 0, 1

                                ;这一段代码是将0x7908地址存储的值赋给0x7928地址,将0x108E低字节存储的数据赋给0x7929地址
                                LDWR R0, 0X7908
                                MOVXR R10, 1, 2
                                LDWR R0, 0X108E
                                MOVXR R20, 1, 1
                                MOV R21, R12, 1
                                ;LDBR R12, 1, 1
                                LDWR R0, 0X7928
                                MOVXR R10, 0, 2
                                
                                ;这一段代码是将0x7945地址存储的值赋给0x7965地址来存储
                                LDWR R0, 0X7945
                                MOVXR R10, 1, 1
                                LDWR R0, 0X7965
                                MOVXR R10, 0, 1

                                ;这一段代码是将0x7948地址存储的值赋给0x7968地址,将0x108E低字节存储的数据赋给0x7969地址
                                LDWR R0, 0X7948
                                MOVXR R10, 1, 2
                                MOV R21, R12, 1
                                ;LDBR R12, 1, 1
                                LDWR R0, 0X7968
                                MOVXR R10, 0, 2

                                GOTO        Main

                                ;END

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#define LOW_DATA_ADDR        0x108E

u16 temp = 0;
u16 temp_low_val = 0;

u16 start_addr = 0x7805;

ReadDgusVp(LOW_DATA_ADDR, &temp_low_val, 1);
temp_low_val = temp_low_val<<8;

u16 i;
u16 j;

for(i = 0; i < 2; i++)
{
        for(j = 0; j < 2; j++)
        {
                temp = 0;
                ReadDgusVp(start_addr, (u8*) &temp, 1);
                WriteDgusVp(start_addr + (0x0020), (u8*) &temp, 1);
               
                temp = 0;
                ReadDgusVp(start_addr + (0x0003), (u8*) &temp, 1);
                WriteDgusVp(start_addr + (0x0023), (u8*) &temp, 1);
               
                WriteDgusVp(start_addr + (0x0024), (u8*) &temp_low_val, 1);
               
                start_addr += 0x0040;
        }
        start_addr = 0x7905;
}


回复

使用道具 举报

0

主题

766

回帖

4914

积分

论坛元老

Rank: 8Rank: 8

积分
4914
发表于 2021-10-11 19:34:28 | 显示全部楼层
楼主您好!看了下您的代码没有发现问题,您可以测试一下其功能是否满足您的需求。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-18 18:40 , Processed in 0.035024 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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