ARM指令格式

一、ARM指令基本格式


1.指令的基本格式及說明

ARM是三地址指令格式,指令的基本格式爲:

<opcode>  `{<cond>} {s} <Rd>, <Rn> {,<operand2>}

其中<>號內的項是必須的,{}號內的項是可選的。各項說明如下:

opcode: 指令助記符;

cond: 執行條件;

s: 是否影響CPSR寄存器的值;

Rd: 目標寄存器;

Rn: 第一個操作數的寄存器;

operand2: 第二個操作數;

條件碼“cond”的使用可以實現高效的邏輯操作(節省跳轉和條件語句),提高代碼效率。所有的ARM指令都可以條件執行,

而THUMB指令只有B(跳轉)指令具有條件執行功能。如果指令不標明條件代碼,將默認爲無條件(AL)執行。


2.指令的條件域

操作碼 條件助記符 標誌 含義
0000 EQ Z = 1 相等
0001 NE Z = 0 不相等
0010 CS/HS C = 1 無符號數大於或等於
0011 CC/LO C = 0 無符號數小於
0100 MI N = 1 負數
0101 PL N = 0 正數或零
0110 VS V = 1 溢出
0111 VC V = 0 沒有溢出
1000 HI C = 1, Z = 0 無符號數大於
1001 LS C = 0, Z = 1 無符號數小於或等於
1010 GE N = V 有符號數大於或等於
1011 LT N !=  V 有符號數小於
1100 GT Z=0, N = V 有符號數大於
1101 LE Z = 1, N != v 有符號數小於或等於
1110 AL 任何 無條件執行(指令默認條件)
1111 NV 任何 從不執行(不要使用)

示例:

if( a > b)

{

a++;

}else{

b++;

}

對應的彙編指令實現:

CMP R0, R1 ;R0(a)與R1(b)

ADDHI R0, R0,#1

ADDLS R1,R1,#1



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章