Multiplier = 0xffffffff
Multiplicand = 0xffffffff
Result = 0xFFFFFFFE 00000001 (multiplier * multiplicand)
mulh
指令应根据 RISC-Vs pec 给出结果的高 XLEN 位。但是当我mulh t0, a0, a1;
使用 multiplier ina0
和 multiplicand in运行时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);