请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR6047 工具与软件:
TI 编译器经常生成此序列、看起来什么也不做、结果始终被忽略(正如我所看到的那样)。 假设它有充分的理由生成它、我想了解为何包含它。 我在 RETA 语句之前以及函数中间看到过、此时输出值和 SR 位完全被忽略。
使用的两个寄存器会有所不同。 这将测试 R12中的符号位。 如果置位、R13 = 0xFFFF。 如果清除、则 R13 = 0x0000。 R13值从未在任何地方使用。 我甚至见过 CLR。 W R13表示为下一个语句。 它始终是一个0x8000的测试。
;如果 R12 & 0x8000否则为0x0000、则 R13 = 0xFFFF
位 W #32768、R12 ;#0x8000
SUBC。 W R13、R13
库存 W R13
我在生成的汇编文件的许多位置都可以找到它。 通过查看 C 代码、我似乎无法识别导致生成此程序集的模式。
谢谢。