新聞中心

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.4寄存器加法指令A(yù)DD(3)

(1)編碼格式

寄存器加法指令A(yù)DD(3)的編碼格式如圖11.10所示。

圖11.10ADD(3)指令的編碼格式

此種形式的加法指令將兩個(gè)寄存器的值相加,將結(jié)果放入第三個(gè)目標(biāo)寄存器,并根據(jù)操作結(jié)果更新標(biāo)志位。

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

ADDRd>,Rn>,Rm>

①Rd>

加法操作的目標(biāo)寄存器。

②Rn>

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

③Rm>

操作數(shù)寄存器。存放加法操作的第二個(gè)操作數(shù)。

(3)指令操作的偽代碼

Rd=Rn+Rm

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=CarryFrom(Rn+Rm)

VFlag=OverflowFrom(Rn+Rm)

11.4.5寄存器加法指令A(yù)DD(4)

(1)編碼格式

寄存器加法指令A(yù)DD(4)的編碼格式如圖11.11所示。

圖11.11ADD(4)指令的編碼格式

此種形式的加法指令將兩個(gè)寄存器的值相加,將結(jié)果放入第三個(gè)目標(biāo)寄存器。該指令不更新程序狀態(tài)字的標(biāo)志位。

注意

該指令與ADD(3)的區(qū)別在于其操作數(shù)寄存器。該指令的操作數(shù)寄存器為r8~r14和PC高寄存器。操作結(jié)果對(duì)程序狀態(tài)字的標(biāo)志位沒(méi)有影響。

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

ADDRd>,Rm>

①Rd>

指令的操作數(shù)寄存器,其中保存加法操作的一個(gè)操作數(shù),并將指令的操作結(jié)果放入該寄存器。取值范圍為r0~r15。

②Rm>

操作數(shù)寄存器。存放加法操作的第二個(gè)操作數(shù)??梢詾閞0~r15的任意寄存器。

(3)指令操作的偽代碼

Rd=Rd+Rm

11.4.6PC相關(guān)加法指令A(yù)DD(5)

(1)編碼格式

寄存器加法指令A(yù)DD(5)的編碼格式如圖11.12所示。

圖11.12ADD(5)指令的編碼格式

該指令將一個(gè)立即數(shù)和PC值相加,并將PC相關(guān)地址寫(xiě)入目標(biāo)寄存器。立即數(shù)可以是0~1020范圍內(nèi)的任意數(shù)值的4倍。該指令不更新程序狀態(tài)字的標(biāo)志位。

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

ADDRd>,PC,#immed_8>×4

①Rd>

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

②PC

PC相關(guān)地址。

③immed_8>

加到PC值上的8位立即數(shù)。

(3)指令操作的偽代碼

Rd=(PCAND0xfffffffc)+(immed_82)



評(píng)論


相關(guān)推薦

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

關(guān)閉