アセンブラ(ARM)
命令
add
足し算
add x0, x1, x2 @ x0=x1+x2
sub
Subtractの略.引き算
sub x0, x1, x2 @ x0=x1-x2 sub x0, x1, #3 @ x0=x1-3
mov
Moveの略.値のコピー
mov x0, #1 @ x0=1
ldr
Load registerの略
ldr x0, [x1] @ x1番地の値を,x0レジスタにロード
ldr x0, =0x1000 @ 0x1000を,x0レジスタにロード
ldr x0, [x1], #8 @ x1番地の値を,x0レジスタにロードした後,x1=x1+8に更新される
str
Store registerの略
str x0, [x1] @ x0レジスタの値を,x1番地にストア
str x0, [x1, #8] @ x0レジスタの値を,x1+8番地にストア
str x0, [x1], #8 @ x0レジスタの値を,x1番地にストアした後,x1=x1+8に更新される
bl
Branch and linkの略
b.gt
Branch if greater thanの略
subs x1, x1, #8 b.gt label @ x1が0より大きければ,ラベルlabelへジャンプ
lsr
Logical shift rightの略
lsr x0, x0, #2 @ x0を右に2ビット分シフト
stp
Store pair of registersの略
stp x0, x1, [sp, #48] @ x0, x1をsp+48番地に格納(spの値は変わらない)
ldp
Load pair of registersの略
ldp x0, x1, [sp, #48] @ sp+48番地からの128ビットをx0, x1に格納