<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > MSP430x54x學(xué)習筆記--硬件乘法器MPY

MSP430x54x學(xué)習筆記--硬件乘法器MPY

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò ) 收藏
硬件乘法器MPY:(平臺:MSP430F5418)

·16位乘法器使用方法:

本文引用地址:http://dyxdggzs.com/article/201611/322783.htm

1.無(wú)符號數相乘 result="n1"*n2。第一操作數n1(16位無(wú)符號)賦給MPY寄存器,第二操作數n2(16位無(wú)符號)賦給OP2寄存器,賦值完成后,結果result(32位無(wú)符號)就可以在RESLO(低16位)和RESHI(高165位)中讀取。
代碼如下:
MPY = n1; // Load first operand -unsigned mult
OP2 = n2; // Load second operand


result = RESHI; // Load RESHI word result
result = (result<<16)|RESLO; // Shift RESHI left and concat with

2.無(wú)符號數乘加操作 result="n1"*n2+n3*n4。第一操作數n1(16位無(wú)符號)賦給MPY寄存器,第二操作數n2(16位無(wú)符號)賦給OP2寄存器,第三操作數n3(16位無(wú)符號)賦給MAC寄存器,第四操作數n4(16位無(wú)符號)賦給OP2寄存器,結果result(32位無(wú)符號)就可以在RESLO(低16位)和RESHI(高165位)中讀取。SUMEXT寄存器中保存進(jìn)位標志。
代碼如下:
MPY = n1; // Load first operand -unsigned mult
OP2 = n2; // Load second operand
MAC = n3;// Load 3rd operand -unsigned mult
OP2 = n4;// Load 4rd operand
result = RESHI; // Load RESHI word result
result = (result<<16)|RESLO; // Shift RESHI left and concat with

3.有符號數相乘 result="n1"*n2。第一操作數n1(16位有符號)賦給MPYS寄存器,第二操作數n2(16位有符號)賦給OP2寄存器,賦值完成后,結果result(32位有符號)就可以在RESLO(低16位)、RESHI(高165位)和SUMEXT(符號)中讀取。SUMEXT=0xffff則結果為負,SUMEXT=0則結果為正。
代碼如下:
MPYS = n1; // Load first operand -signed mult
OP2 = n2; // Load second operand

result = RESHI; // Load RESHI word result
result = (result<<16)|RESLO; // Shift RESHI left and concat with

4.有符號乘加操作 result="n1"*n2+n3*n4。第一操作數n1(16位無(wú)符號)賦給MPY寄存器,第二操作數n2(16位無(wú)符號)賦給OP2寄存器,第三操作數n3(16位有符號)賦給MAC寄存器,第四操作數n4(16位有符號)賦給OP2寄存器,結果result(32位有符號)就可以在RESLO(低16位)和RESHI(高165位)中讀取。SUMEXT寄存器中保存進(jìn)位和正負標志。
代碼如下:
MPY = n1; // Load first operand -unsigned mult
OP2 = n2; // Load second operand
MACS = n3;
OP2 = n4;
result = RESHI; // Load RESHI word result
result = (result<<16)|RESLO; // Shift RESHI left and concat with

·32位乘法器使用方法:

1.無(wú)符號相乘 result="n1"*n2。n1(32位無(wú)符號)低16位賦給MPY32L寄存器,n1高16位賦給MPY32H寄存器,n2(32位無(wú)符號)低16位賦給OP2L寄存器,n2高16位賦給OP2H寄存器,賦值完成后,結果result(64位無(wú)符號)就可以在RES0(低位), RES1, RES2 和 RES3(高位)中讀取。
代碼如下:
MPY32L = 0x1234; // Load lower 16 bits of operand 1
MPY32H = 0x1234; // Load upper 16 bits of operand 1


OP2L = 0x5678; // Load lower 16 bits of operand 2
OP2H = 0x5678; // Load upper 16 bits of operand 2
result_L = RES1;
result_L = (result_L<<16)|RES0;
result_H = RES3;
result_H = (result_H<<16)|RES2;


其他情況依次類(lèi)推,與16位情況類(lèi)似。


定點(diǎn)小數部分還有待研究~~



關(guān)鍵詞: MSP430x54x硬件乘法器MP

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>