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:MSP430控制器中的仿真指令用途

Guru**** 2589265 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/622601/msp430fr4133-emulated-instructions-purpose-in-msp430-controllers

器件型号:MSP430FR4133

最近我读了 MSP430控制器中的寻址模式和指令集...这里有仿真指令。 它们没有操作码。 那么、如何组装了解操作呢? 能不能有人解释。 在任何 ISA 中、我都可以看到每条指令的操作码。 这些仿真指令的用途是什么、还有一个常数发生器寄存器链接到这些指令。 我们真的需要这些 CGS 和仿真指令吗?

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

    用户指南第4.3.4.1节指出:

    MSP430的 RISC 指令集只有27条指令。 但是、常数发生器允许 MSP430汇编器支持24个额外的仿真指令。 例如、单操作数指令:

    CLR dst

    由具有相同长度的双操作数指令仿真:

    MOV R3、dst

    其中#0被汇编器替换、R3与 AS = 00一同使用。

    INC dst

    替换为:

    ADD#1、dst

    CG 寄存器非常有用(它们可以节省大量闪存空间和时间)。

    上面的 MOV/ADD 指令与 CLR/INC 指令一样小且快速(如果它们实际存在的话)、所以仿真指令被仿真、这是因为它们实际上并不需要。

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

    没关系、但当我编写 CLR DST 指令时、汇编器如何发现它是一个仿真指令、因为仿真指令没有操作码...这就是我需要的...有人知道这一点吗?? 请说明...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    汇编器如何知道 CLR dst 是 MOV R3、dst...的仿真指令??
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    汇编器是实现 CLR"运算代码"而不是 CPU 的代码。 反汇编器通过识别该模式进行合作。

    严格地说、"MOV"不是运算代码、0x4是;汇编器会识别前者、CPU 仅识别后者。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    汇编器 的操作码表 仅包含两个条目、一个用于 INC、一个用于 ADD、这两个条目都映射到相同的指令编号。
    (但某些仿真指令仍需要 特殊处理。)