新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Thumb指令集之:Thumb數(shù)據(jù)處理指令

Thumb指令集之:Thumb數(shù)據(jù)處理指令

作者: 時(shí)間:2013-09-30 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://2s4d.com/article/257041.htm

11.4.25乘法指令MUL

(1)編碼格式

乘法指令MUL的編碼格式如圖11.31所示。

圖11.31MUL指令的編碼格式

MUL指令實(shí)現(xiàn)兩個(gè)數(shù)(可以為無(wú)符號(hào)數(shù),也可以為有符號(hào)數(shù))的乘積,并將指令的執(zhí)行結(jié)果存放到一個(gè)32位的寄存器中,同時(shí)可以根據(jù)運(yùn)算結(jié)果設(shè)置CPSR寄存器中相應(yīng)的條件標(biāo)志位。

(2)指令的語(yǔ)法格式

MULRd>,Rm>

①Rd>

目的寄存器,存放乘法操作的第一個(gè)乘數(shù)。

②Rm>

第二個(gè)乘數(shù)所在寄存器。

(3)指令操作的偽代碼

Rd=(Rm*Rd)[31:0]

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=unaffected

VFlag=unaffected

注意

如果乘法指令MUL的源和目的寄存器使用相同的寄存器,則指令的執(zhí)行結(jié)果不可預(yù)知;對(duì)于有符號(hào)數(shù)和無(wú)符號(hào)數(shù),指令的操作結(jié)果是一樣的。

(4)對(duì)應(yīng)的指令

MULSRd>,Rm>,Rd>

11.4.26傳送指令MVN

(1)編碼格式

傳送指令MVN的編碼格式如圖11.32所示。

圖11.32MVN指令的編碼格式

MVN指令將一個(gè)數(shù)的反碼傳送到目標(biāo)寄存器,并根據(jù)指令的執(zhí)行結(jié)果更新CPSR中相應(yīng)的條件標(biāo)志位。

(2)指令的語(yǔ)法格式

MVNRd>,Rm>

①Rd>

目的寄存器,存放指令的操作結(jié)果。

②Rm>

源寄存器,存放要傳送反碼的數(shù)據(jù)。

(3)指令操作的偽代碼

Rd=NOTRm

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=unaffected

VFlag=unaffected

(4)對(duì)應(yīng)的指令

MVNSRd>,Rm>

11.4.27取反指令NEG

(1)編碼格式

取反指令NEG的編碼格式如圖11.33所示。

圖11.33NEG指令的編碼格式

NEG取反指令將一個(gè)寄存器的值取反存入另一個(gè)寄存器。同時(shí)根據(jù)指令的操作結(jié)果更新CPSR中相應(yīng)的條件標(biāo)志位。

(2)指令的語(yǔ)法格式

NEGRd>,Rm>

①Rd>

目的寄存器,存放指令的操作結(jié)果。

②Rm>

源寄存器,包含將要被取反的數(shù)據(jù)。

(3)指令操作的偽代碼

Rd=0–Rm

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=NOTBorrowFrom(0-Rm)

VFlag=OverflowFrom(0-Rm)

(4)對(duì)應(yīng)的指令

RSBSRd>,Rm>,#0



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉