mulw、prodl 和 prodh 在汇编程序中如何协同工作?

How does mulw, prodl and prodh work together in assembler programming?

我不明白指令MULLW 和寄存器PRODL 和PRODH 是如何工作的。我有这段代码:

        MOVLW 0x0D
        MULLW 0x09
        MOVF PRODL,W

实际发生了什么?我一直在尝试对值进行 AND,这在乘法方面似乎是合乎逻辑的:

0000 1101

0000 1001

但这会给出错误的 0x09。移至 PRODL 的答案是 0x75。我不知道它是如何变成 0x75 的,我已经尝试了所有关于值的门,但没有任何意义。在 Internet 上,我找到的关于 mullw、PRODL 和 PRODH 的所有信息都是汇编程序的手册,它没有显示解释为什么答案变成现在的样子的每一步。

我只知道有一些16位的初始操作,结果的低值和高值(不知道过程)分别放在PRODL和PRODH中。

了解 PRODL、PRODH 和 MULLW 的人可以举例并详细解释一下吗?

谢谢。

        MOVLW 0x0D
        MULLW 0x09     

0x0D x 0x09 = 0x0075

这条指令之后是PRODH = 0x00 and PRODL = 0x75
PRODLPRODH 都是 8 位寄存器,它们一起保存 16 位结果。只有 LSB 和 MSB。