ARM乘法指令
?。?)MUL 32位乘法指令
MUL提供32位整數(shù)乘法。如果操作數(shù)是有符號(hào)的,則可以假定結(jié)果也是有符號(hào)的。
?。?)MLA 32位帶加法的乘法指令
MLA的行為同MUL,但它把操作數(shù)3的值加到結(jié)果上,這在求總和時(shí)有用。
?。?)SMULL 64位有符號(hào)數(shù)乘法指令
SMULL指令實(shí)現(xiàn)兩個(gè)32位的有符號(hào)數(shù)的乘積,乘積結(jié)果的高32位存放到一個(gè)32位的寄存器<RdHi>中,低32位存放到另一個(gè)32位的寄存器(RdLo>中,同時(shí)可以根據(jù)運(yùn)算結(jié)果設(shè)置CPSR寄存器中相應(yīng)的條件標(biāo)志位。考慮指令執(zhí)行的效率,指令中所有操作數(shù)都放在寄存器中。
?。?)SMLAL 64位帶加法的有符號(hào)數(shù)乘法指令
SMLAL指令將兩個(gè)32位有符號(hào)數(shù)的64位乘積結(jié)果與<RdLo>和<RdHi>中的64位數(shù)相加,相加結(jié)果的高32位存放到一個(gè)32位的寄存器<RdHi)中,低32位存放到另一個(gè)32位的寄存器(RdLo>中,同時(shí)可以根據(jù)運(yùn)算結(jié)果設(shè)置∷CPSR寄存器中相應(yīng)的條件標(biāo)志位。
?。?)UMULL 64位無(wú)符號(hào)數(shù)乘法指令
UMULL指令實(shí)現(xiàn)兩個(gè)32位有符號(hào)數(shù)的乘積,乘積結(jié)果的高32位存放到一個(gè)32位的寄存器<RdHi)中,乘積結(jié)果的低32位存放到另一個(gè)32位的寄存器(RdLo>中,同時(shí)可以根據(jù)運(yùn)算結(jié)果設(shè)置CPSR寄存器中相應(yīng)的條件標(biāo)志位??紤]指令執(zhí)行的效率,指令中所有操作數(shù)都放在寄存器中。
?。?)UMLAL 64位帶加法的無(wú)符號(hào)數(shù)乘法指令
UMLAL指令將兩個(gè)32位無(wú)符號(hào)數(shù)的64位乘積結(jié)果與<RdLo>和<RdHi>中的64位無(wú)符號(hào)數(shù)相加,相加結(jié)果的高32位存放到一個(gè)32位的寄存器(RdHi)中,低32位存放到另一個(gè)32位的寄存器<RdLo>中,同時(shí)可以根據(jù)運(yùn)算結(jié)果設(shè)置CPSR寄存器中相應(yīng)的條件標(biāo)志位。
評(píng)論