微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM乘法指令

ARM乘法指令

时间:11-26 来源:互联网 点击:
  ARM乘法指令:一类为32位的乘法指令,即乘法操作的结果为32位;另一类为64位的乘法指令,即乘法操作的结果为64位。

  (1)MUL 32位乘法指令

  MUL提供32位整数乘法。如果操作数是有符号的,则可以假定结果也是有符号的。

  (2)MLA 32位带加法的乘法指令

  MLA的行为同MUL,但它把操作数3的值加到结果上,这在求总和时有用。

  (3)SMULL 64位有符号数乘法指令

  SMULL指令实现两个32位的有符号数的乘积,乘积结果的高32位存放到一个32位的寄存器<RdHi>中,低32位存放到另一个32位的寄存器(RdLo>中,同时可以根据运算结果设置CPSR寄存器中相应的条件标志位。考虑指令执行的效率,指令中所有操作数都放在寄存器中。

  (4)SMLAL 64位带加法的有符号数乘法指令

  SMLAL指令将两个32位有符号数的64位乘积结果与<RdLo>和<RdHi>中的64位数相加,相加结果的高32位存放到一个32位的寄存器<RdHi)中,低32位存放到另一个32位的寄存器(RdLo>中,同时可以根据运算结果设置∷CPSR寄存器中相应的条件标志位。

  (5)UMULL 64位无符号数乘法指令

  UMULL指令实现两个32位有符号数的乘积,乘积结果的高32位存放到一个32位的寄存器<RdHi)中,乘积结果的低32位存放到另一个32位的寄存器(RdLo>中,同时可以根据运算结果设置CPSR寄存器中相应的条件标志位。考虑指令执行的效率,指令中所有操作数都放在寄存器中。

  (6)UMLAL 64位带加法的无符号数乘法指令

  UMLAL指令将两个32位无符号数的64位乘积结果与<RdLo>和<RdHi>中的64位无符号数相加,相加结果的高32位存放到一个32位的寄存器(RdHi)中,低32位存放到另一个32位的寄存器<RdLo>中,同时可以根据运算结果设置CPSR寄存器中相应的条件标志位。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top