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