大家好。 我正在尝试使用 MSP430FR4133 EVM 处理一些数据、我遇到了将变量写入同一寄存器的问题。 这个代码片段我将采用一些8位值的虚拟数组、将它们组合成一个16位值、然后将它们分解成指数(位15-12)和尾数(位11-0)。 每当我运行代码时、指数变量与"value"变量共享其值。 我查看了它们、它们使用与它们的地址相同的寄存器。 我如何指定它们不是这样的?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好。 我正在尝试使用 MSP430FR4133 EVM 处理一些数据、我遇到了将变量写入同一寄存器的问题。 这个代码片段我将采用一些8位值的虚拟数组、将它们组合成一个16位值、然后将它们分解成指数(位15-12)和尾数(位11-0)。 每当我运行代码时、指数变量与"value"变量共享其值。 我查看了它们、它们使用与它们的地址相同的寄存器。 我如何指定它们不是这样的?
正如我说过的、编译器会非常小心地跟踪寄存器的使用情况。 如果发现稍后不需要寄存 器中的值、它可以并且将使用该寄存器执行其他操作。 但您的调试器没有该信息(它必须复制编译器和优化器的源代码上的操作)、这就是您看到这两个更改的原因。 它不知道每一个的范围是什么。
将自动变量分配给寄存器不是静态变量、而是一种完成的操作。 编译器根据需要使用寄存器。
您说您选择在 R10中放置一个变量、但我在您发布的内容中看不到任何可能实现该目的的内容。