“M” Extension for Integer Multiplication and Division
本文章介绍标准整数乘法和除法指令扩展,它名为“M”,包含对两个整数寄存器中的值进行乘法或除法的指令。
1、乘法运算
MUL指令(得到整数32位乘积(64位中的低32位)) MUL 指令用于执行两个带符号或无符号整数之间的乘法运算。其语法如下: mul rd, rs1, rs2 它将寄存器 rs1 和 rs2中的值相乘,并将结果写入寄存器 rd 中。如果 rs1 和 rs2 都是有符号整数,则结果也是有符号整数;如果 rs1 和 rs2都是无符号整数,则结果也是无符号整数。 需要注意的是,MUL操作可能会产生溢出,因此需要在程序设计时进行处理。
MULH 指令(得到整数32位乘积(64位中的高32位)) MULH 指令用于执行两个带符号或无符号整数之间的乘法运算,并返回高位 32 位的结果。其语法如下: mulh rd, rs1, rs2 它将寄存器 rs1 和 rs2 中的值相乘,并将结果的高位 64 位写入寄存器 rd 中。如果 rs1 和 rs2 都是有符号整数,则结果也是有符号整数;如果 rs1 和 rs2 都是无符号整数,则结果也是无符号整数。
MULHU 指令 (得到整数32位乘积(64位中的高32位)) MULHU