新聞中心

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.13比較指令CMN

(1)編碼格式

比較指令CMN的編碼格式如圖11.19所示。

圖11.19CMN指令的編碼格式

比較指令CMN將一個(gè)寄存器的值和另一個(gè)寄存器的值取負(fù)做比較,并根據(jù)比較結(jié)果更新程序狀態(tài)字的標(biāo)志位。程序中比較指令后通常跟條件執(zhí)行指令。

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

CMNRn>,Rm>

①Rn>

操作數(shù)寄存器。用于存放指令的第一個(gè)操作數(shù)。

②Rm>

操作數(shù)寄存器。用于存放指令的第二個(gè)操作數(shù)。

(3)指令操作的偽代碼

Alu_out=Rn+Rm

NFlag=alu_out[31]

ZFlag=ifalu_out==0then1else0

CFlag=NOTBorrowFrom(Rn+Rm)

VFlag=OverflowFrom(Rn+Rm)

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

CMNRn>,Rm>

11.4.14比較指令CMP(1)

(1)編碼格式

比較指令CMP(1)的編碼格式如圖11.20所示。

圖11.20CMP(1)指令的編碼格式

比較指令CMP(1)將一個(gè)寄存器的值和8位立即數(shù)做比較,并根據(jù)比較結(jié)果更新程序狀態(tài)字的標(biāo)志位。程序中比較指令后通常跟條件執(zhí)行指令。

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

CMPRn>,#immed_8>

①Rn>

操作數(shù)寄存器。

②immed_8>

8位常數(shù)。將與寄存器Rn>的值做比較。

(3)指令操作的偽代碼

Alu_out=Rn–immed_8

NFlag=alu_out[31]

ZFlag=ifalu_out==0then1else0

CFlag=NOTBorrowFrom(Rn–immed_8)

VFlag=OverflowFrom(Rn–immed_8)

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

CMPRn>,#immed_8>

11.4.15比較指令CMP(2)

(1)編碼格式

比較指令CMP(2)的編碼格式如圖11.21所示。

圖11.21CMP(2)指令的編碼格式

比較指令CMP(2)將兩個(gè)寄存器的值做比較,并根據(jù)比較結(jié)果更新程序狀態(tài)字的標(biāo)志位。程序中比較指令后通常跟條件執(zhí)行指令。

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

CMPRn>,Rm>

①Rn>

操作數(shù)寄存器,存放比較的第一個(gè)操作數(shù)。

②Rm>

操作數(shù)寄存器,存放比較的第二個(gè)操作數(shù)。

(3)指令操作的偽代碼

alu_out=Rn–Rm

NFlag=alu_out[31]

ZFlag=ifalu_out==0then1else0

CFlag=NOTBorrowFrom(Rn-Rm)

VFlag=OverflowFrom(Rn-Rm)

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

CMPRn>,Rm>



評(píng)論


相關(guān)推薦

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

關(guān)閉