【发布时间】:2021-11-02 13:23:26
【问题描述】:
Multiplier = 0xffffffff
Multiplicand = 0xffffffff
Result = 0xFFFFFFFE 00000001 (multiplier * multiplicand)
mulh 指令应根据 RISC-Vs pec 给出结果的高 XLEN 位。但是当我在a0 中使用乘数和a1 中的乘数运行mulh t0, a0, a1; 时,t0 中的结果为0。有人可以解释为什么吗?我在 RV32IMAC(FE310 内核)中运行它。
汇编和C代码如下:
mulh_asm:
mulh t0, a0, a1;
addi a0, x0, 0; // **Break point here to watch t0 value**
ret;
mrest[0] = mulh_asm(0xffffffff, 0xffffffff);
【问题讨论】:
-
请编辑您的帖子以包含重现该行为的最小可编译示例。