×
单片机 > 单片机程序设计 > 详情

ARM乘法指令

发布时间:2020-06-02 发布时间:
|
  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寄存器中相应的条件标志位。

关键字:ARM  乘法指令  UMLAL 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何升级STM32单片机的代码