"主题"中讨论的其他器件:C2000-CGT、 SysConfig
工具/软件:
在调试中考虑如下所示的函数
其中计数器在一组枚举上递增。 汇编代码大致符合预期、在调用后变量会递增并进行测试。
(我拍摄了屏幕截图 CCS 20.0.2 、但问题与相同 CCS 12.8.1 (在一个不同的和更现实的项目)
事实上,在第一次运行后,我发现
这很好(我的枚举始于0、下一个是1)。
当循环结束时、我会感到惊讶
1、内存中的变量为1
2. MOV 已将其加载到 AL 中
3.但是、AL 为0 -并且已确认运行该代码
如果我继续运行循环、其评估结果永远不会改变、被调用函数会看到其参数 始终 零时。
请注意、有几个附属品导致了这种情况的发生、在一个简短的示例中复制它有点困难(我不得不添加一些奇怪的代码)。
示例中标有注释的行 //** 是触发器:如果您删除/更改它们、结果会有所不同。 例如、在第156行之后移动第148行时、问题消失、所有运行均按预期进行。
我没有在另一个网站(PC、程序员、电路板等)上检查它。 然后、我想知道是否有人可以先复制它、或者是否只是某种东西 不同寻常 "你听我说。"