Thumb指令集之:Thumb數(shù)據(jù)處理指令
11.4.7SP相關(guān)加法指令A(yù)DD(6)
(1)編碼格式
寄存器加法指令A(yù)DD(6)的編碼格式如圖11.13所示。
圖11.13ADD(6)指令的編碼格式
該指令將一個(gè)立即數(shù)和SP值相加,并將SP相關(guān)地址寫入目標(biāo)寄存器。立即數(shù)可以是0~1020范圍內(nèi)的任意4的倍數(shù)。該指令不更新程序狀態(tài)字的標(biāo)志位。
(2)指令的語(yǔ)法格式
ADDRd>,SP,#immed_8>×4
①Rd>
指令的目的寄存器,存放指令的操作結(jié)果。
②SP
SP相關(guān)地址。
③immed_8>
該立即數(shù)的4倍將與SP值相加。
(3)指令操作的偽代碼
Rd=SP+(immed_82)
11.4.8SP相關(guān)加法指令A(yù)DD(7)
(1)編碼格式
寄存器加法指令A(yù)DD(6)的編碼格式如圖11.14所示。
該指令將一個(gè)立即數(shù)和SP值相加,并將SP相關(guān)地址寫回SP寄存器。立即數(shù)可以是0~508范圍內(nèi)的任意數(shù)值的4倍。該指令不更新程序狀態(tài)字的標(biāo)志位。
圖11.14ADD(7)指令的編碼格式
(2)指令的語(yǔ)法格式
ADDSP,#immed_7>×4
①SP
SP相關(guān)地址,同時(shí)也為指令的目標(biāo)寄存器。
②immed_7>
指定的7位立即數(shù),該立即數(shù)的4倍將與SP值相加。
11.4.9邏輯與指令A(yù)ND
(1)編碼格式
邏輯與指令A(yù)ND的編碼格式如圖11.15所示。
圖11.15AND指令的編碼格式
AND指令實(shí)現(xiàn)兩個(gè)寄存器值的按位“與”操作。程序狀態(tài)字的標(biāo)志位根據(jù)指令的執(zhí)行結(jié)果更新。
(2)指令的語(yǔ)法格式
ANDRd>,Rm>
①Rd>
操作數(shù)寄存器,包含指令的第一個(gè)操作數(shù)。同時(shí)也為指令操作結(jié)果的目的寄存器。
②Rm>
操作數(shù)寄存器,保護(hù)指令的第二個(gè)操作數(shù)。
(3)指令操作的偽代碼
Rd=RdANDRm
NFlag=Rd[31]
ZFlag=ifRd==0then1else0
CFlag=unaffected
VFlag=unaffected
(4)對(duì)應(yīng)的ARM指令
ANDSRd>,Rd>,Rm>
評(píng)論