Starlight_77 发表于 前天 14:23

间接寻址获取内存数据错误

    83:               if (TaskList.Count<=0)//如果计数器减到 0,设置运行标志,并重新加载周期值
    84:               {
0xFF03FE   4912001D    MOV      WR2,@WR4+0x001D ;读取内存数据错误
0xFF0402   4902001B    MOV      WR0,@WR4+0x001B
0xFF0406   BE080000    CMP      DR0,#0x0000

感觉是@WR4+0x001D获取内存数据,没有加0x001D,直接使用了@WR4

狂热主宰 发表于 前天 14:50

可能有过度优化
可能需要通过相对地址
进行相对高效的数据偏移读写

Starlight_77 发表于 前天 17:19

狂热主宰 发表于 2026-4-4 14:50
可能有过度优化
可能需要通过相对地址
进行相对高效的数据偏移读写

具体怎么解决?

狂热主宰 发表于 前天 17:50

根据描述
可能偏移量更新
运算没有加载更新的数据

Starlight_77 发表于 前天 17:53

狂热主宰 发表于 2026-4-4 17:50
根据描述
可能偏移量更新
运算没有加载更新的数据
目前通过降低优化等级可以解决(使用Level 3),还有其他办法吗?

狂热主宰 发表于 前天 18:03

可能需要熟悉计算机底层程序
在运算前及时更新数据
加更新数据操作
页: [1]
查看完整版本: 间接寻址获取内存数据错误