新聞中心

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

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

作者: 時間:2013-09-30 來源:網(wǎng)絡 收藏

本文引用地址:http://m.butianyuan.cn/article/257041.htm

11.4.4寄存器加法指令ADD(3)

(1)編碼格式

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

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

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

(2)指令的語法格式

ADDRd>,Rn>,Rm>

①Rd>

加法操作的目標寄存器。

②Rn>

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

③Rm>

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

(3)指令操作的偽代碼

Rd=Rn+Rm

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=CarryFrom(Rn+Rm)

VFlag=OverflowFrom(Rn+Rm)

11.4.5寄存器加法指令ADD(4)

(1)編碼格式

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

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

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

注意

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

(2)指令的語法格式

ADDRd>,Rm>

①Rd>

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

②Rm>

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

(3)指令操作的偽代碼

Rd=Rd+Rm

11.4.6PC相關(guān)加法指令ADD(5)

(1)編碼格式

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

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

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

(2)指令的語法格式

ADDRd>,PC,#immed_8>×4

①Rd>

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

②PC

PC相關(guān)地址。

③immed_8>

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

(3)指令操作的偽代碼

Rd=(PCAND0xfffffffc)+(immed_82)



評論


相關(guān)推薦

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

關(guān)閉