數(shù)據(jù)處理指令可分為數(shù)據(jù)傳送指令、算術邏輯運算指令和比較指令等。數(shù)據(jù)傳送指令用于在寄存器和存儲器之間進行數(shù)據(jù)的雙向傳輸。 算術邏輯運算指令完成常用的算術與邏輯的運算,該類指令不但將運算結(jié)果保存在目的寄存器
數(shù)據(jù)處理指令是在算術邏輯單元ALU中完成。ARM處理器一個顯著特征就是可以在操作數(shù)進入ALU之前,對操作數(shù)進行指定位數(shù)的左移或右移操作。這種功能明顯增強了數(shù)據(jù)處理操作的靈活性。
AND指令將表示的數(shù)值與寄存器的值按位(bitwise)做邏輯與操作,并將結(jié)果保存到目標寄存器中,同時根據(jù)操作的結(jié)果更新CPSR寄存器。
邏輯異或EOR(Exclusive OR)指令將寄存器中的值和的值執(zhí)行按位“異或”操作,并將執(zhí)行結(jié)果存儲到目的寄存器中,同時根據(jù)指令的執(zhí)行結(jié)果更新CPSR中相應的條件標志位。
SUB(Subtract)減操作指令,從寄存器中減去表示的數(shù)值,并將結(jié)果保存到目標寄存器中,并根據(jù)指令的執(zhí)行結(jié)果設置CPSR中相應的標志位。
RSB(Reverse Subtract)減操作指令,從寄存器中減去表示的數(shù)值,并將結(jié)果保存到目標寄存器中,并根據(jù)指令的執(zhí)行結(jié)果設置CPSR中相應的標志位。
ADD加操作指令,將寄存器的值加上表示的數(shù)值,并將結(jié)果保存到目標寄存器中,并根據(jù)指令的執(zhí)行結(jié)果設置CPSR中相應的標志位。
ADC加操作指令,將寄存器的值加上表示的數(shù)值,再加上CPSR中的C條件標志位的值,將結(jié)果保存到目標寄存器中,并根據(jù)指令的執(zhí)行結(jié)果設置CPSR中相應的標志位。
SBC(Subtract with Carry)帶進位的減操作指令,用于執(zhí)行操作數(shù)大于32位時的減法操作。該指令從寄存器中減去表示的數(shù)值,再減去寄存器CPSR中C條件標志位的反碼(NOT(Carry flag))。并將結(jié)果保存到目標寄存器中,并根據(jù)指令的執(zhí)行結(jié)果設置CPSR中相應的標志位。
RSC(Reverse Subtract with Carry)帶進位的翻轉(zhuǎn)減操作指令,從寄存器中減去表示的數(shù)值,再減去寄存器CPSR中C條件標志位的反碼(NOT(Carry Flag)),并將結(jié)果保存到目標寄存器中,并根據(jù)指令的執(zhí)行結(jié)果設置CPSR中相應的標志位。
RSC(Reverse Subtract with Carry)帶進位的翻轉(zhuǎn)減操作指令,從寄存器中減去表示的數(shù)值,再減去寄存器CPSR中C條件標志位的反碼(NOT(Carry Flag)),并將結(jié)果保存到目標寄存器中,并根據(jù)指令的執(zhí)行結(jié)果設置CPSR中相應的標志位。
TEQ(Test Equivalence)測試指令用于將一個寄存器的值和一個算術值做比較。條件標志位根據(jù)兩個操作數(shù)做“邏輯或”后的結(jié)果設置。以便后面的指令根據(jù)相應的條件標志來判斷是否執(zhí)行。
CMP(Compare)比較指令使用寄存器Rn的值減去operand2的值,根據(jù)操作的結(jié)果更新CPSR中相應的條件標志位,以便后面的指令根據(jù)相應的條件標志來判斷是否執(zhí)行。
CMN(Compare Negative)比較指令使用寄存器Rn的值減去operand2的負數(shù)值(加上operand2),根據(jù)操作的結(jié)果更新CPSR中相應的條件標志位,以便后面的指令根據(jù)相應的條件標志來判斷是否執(zhí)行。
ORR(Logical OR)為邏輯或操作指令,將第二個源操作數(shù)的值與寄存器Rn的值按位做邏輯或操作,結(jié)果保存到Rd中。
BIC(Bit Clear)位清零指令,將寄存器Rn的值與第二源操作數(shù)的值的反碼按位做“邏輯與”操作,結(jié)果保存到Rd中。