一、arm指令基本格式
1.指令的基本格式及說明
`{},
其中<>號內的項是必須的,{}號內的項是可選的。各項說明如下:
opcode: 指令助記符;
cond: 執行條件;
s:是否影響cpsr暫存器的值;
rd: 目標暫存器;
rn: 第乙個運算元的暫存器;
operand2: 第二個運算元;
條件碼「cond」的使用可以實現高效的邏輯操作(節省跳轉和條件語句),提高**效率。所有的arm指令都可以條件執行,
而thumb指令只有b(跳轉)指令具有條件執行功能。如果指令不標明條件**,將預設為無條件(al)執行。
2.指令的條件域
操作碼條件助記符
標誌含義
0000
eqz = 1
相等0001
nez = 0
不相等0010
cs/hs
c = 1
無符號數大於或等於
0011
cc/lo
c = 0
無符號數小於
0100
min = 1
負數0101
pln = 0
正數或零
0110
vsv = 1
溢位0111
vcv = 0
沒有溢位
1000
hic = 1, z = 0
無符號數大於
1001
lsc = 0, z = 1
無符號數小於或等於
1010
gen = v
有符號數大於或等於
1011
ltn != v
有符號數小於
1100
gtz=0, n = v
有符號數大於
1101
lez = 1, n != v
有符號數小於或等於
1110
al任何
無條件執行(指令預設條件)
1111
nv任何
從不執行(不要使用)
示例:if( a > b)
a++;
}else{
b++;
對應的彙編指令實現:
cmpr0, r1 ;r0(a)與r1(b)
addhir0, r0,#1
addlsr1,r1,#1
ARM指令格式和定址方式
原文 arm指令的編碼格式 實際指令語法格式為 addeqs r0,r1,r2 該指令的編碼格式為 arm指令的助記符 arm指令在匯程式設計序中用助記符表示,一般arm指令的助記符格式為 其中 操作碼,如add表示算術加操作指令 決定指令執行的條件域 決定指令執行是否影響cpsr暫存器的值 目的暫...
arm指令 ldr指令
ldr指令ldr作為指令 偽指令在arm彙編中。ldr指令格式 ldr 目的暫存器,儲存器位址 ldr r0,r1 將儲存器位址為r1的字資料讀入暫存器r0。ldr r0,r1,r2 將儲存器位址為r1 r2的字資料讀入暫存器r0。ldr r0,r1,8 將儲存器位址為r1 8的字資料讀入暫存器r0...
ARM彙編指令
b或bl指令引起處理器轉移到 子程式名 也就是位址 處開始執行,這兩個指令都是相對跳轉指令。兩者的不同之處在於bl指令在轉移到子程式執行之前,將其下一條指令的位址拷貝到r14 lr,鏈結暫存器 由於bl指令儲存了下條指令的位址,因此使用指令 mov pc lr 即可實現子程式的返回。而b指令則無法實...