打印
[ZLG-ARM]

有几行汇编请大家看看

[复制链接]
1115|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzyszl|  楼主 | 2007-10-18 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

数据定义部分:

DisHighP0Date    DCDU    0X00000CC0,0X00000480,0X00001C40,0X00001CC0

使用部分:
        (1)代码段一
        LDR        R0,=IO0CLR
        LDR        R1,DisLowP0Date+8    ;//可以0X00001C40送到R1中。
        STR            R1,[R0]    

        (2) 代码段二
        MOV        R1,#0X08
        LDR        R0,=IO0CLR
        LDR        R1,DisLowP0Date+R1    ;//不可以0X00001C40送到R1中。
        STR            R1,[R0]
说明:
     我原本目的是将R1作为偏移量,只要改变R1中的值就可以改变所取的值,但是程序(2)跑飞了。

请各位帮帮忙解释一下,如何改正。

相关帖子

沙发
zlgarm| | 2007-10-18 17:33 | 只看该作者

规范~~~

LDR        R1,DisLowP0Date+R1    ;//不可以将0X00001C40送到R1中。
以上代码不合规范,LDR的第二个参数可以是地址,但不可以地址加寄存器

使用特权

评论回复
板凳
linqing171| | 2007-10-18 17:46 | 只看该作者

地址加寄存器是地址加常数么?

要是编译通过的话,我估计
编译器应该把 R1 当作常数1处理了?
用的什么编译器?

使用特权

评论回复
地板
zzyszl|  楼主 | 2007-10-19 08:28 | 只看该作者

谢谢各位

用的是  ADS1.2  ,现在问题已解决。

谢谢了!

还要谢谢zlgarm。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

37

帖子

1

粉丝