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:在存储器上使用 msp430x 指令时最高为12位

Guru**** 2123470 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/651991/msp430fr4133-highest-12-bits-when-using-msp430x-instructions-on-memory

器件型号:MSP430FR4133

和代码

MOV #1234h、&0x2000
mov #5678h、&0x2002
addx.a #11111h、&0x2000

0x11111将添加到低20位、0x2000处32位值的高12位将被清除。
是在某个地方记录的、我是否可以依赖高12位将始终存在这一事实
在存储器中处理.A 目标时清除? 换句话说、如果我想清除4
我可以假设存储器中的字节(当然在偶数地址上)是这样的

clrx.a 目标(&D) 

可靠工作吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    存储器中较高的未使用位将始终清零。
    BTW、clrx.a &dest 由 movx.a #0、&dest 仿真、但也有20位所谓的地址指令、可以在更少的周期内执行、占用更少的内存。 ADDA R4、R5和 SUA R4、R5将在存储器中获取一个字并在一个周期内执行(与16位指令相同)、addx.a 和 subx.a 不执行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="zrno soli"]内存中较高的未使用位将始终清零。

    好的、非常好、谢谢! 这是记录在某个地方还是只是观察结果?

    [引述]
    BTW、clrx.a &dest 由 movx.a #0、&dest 仿真、但也有20位所谓的地址指令、可以在更少的周期内执行、占用更少的内存。 ADDA R4、R5和 SUA R4、R5将在存储器中获取一个字并在一个周期内执行(与16位指令相同)、addx.a 和 subx.a 不会执行。

    好的、我已经验证了这一点

    MOVA R3、目标(&D) 

    确实清除了从 dest 开始的所有32位(&D)、但我不确定是否可以依赖该位、因为该常数
    生成函数基于指令的一部分、该指令在的运算代码中不存在
    MOVA。 因此、它可能只是偶然工作、因为生成必须是00
    常量为零、由于根本没有、因此假设它为00...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可能在某处记录、但我没有找到它。

    用于清除变量、双字、一组字或一个字节、我正在使用...

    MOV.w #0、R15
    MOVA R15、&DESF1
    MOVA R15、&DEST2
    ... 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="zrno soli"]

    可能在某处记录、但我没有找到它。

    我认为:

    最后一件让我感到困惑的事情是"Mova R3 &dest"可用于清除字对齐32位内存。

    但可能只有 TI 的一些人知道 R3在"正常工作"中的恒定生成可以解决这个问题...