Professional Documents
Culture Documents
AND{S} rd, rn, op2 rd = rn & op2 CCMN rn, #i5 , #f4 , cc if(cc) rn + i; else N:Z:C:V = f
Arithmetic Instructions ASR rd, rn, rm ¯ rm
rd = rn CCMN rn, rm, #f4 , cc if(cc) rn + rm; else N:Z:C:V = f
ADC{S} rd, rn, rm rd = rn + rm + C ASR rd, rn, #i6 ¯ i
rd = rn CCMP rn, #i5 , #f4 , cc if(cc) rn − i; else N:Z:C:V = f
ADD{S} rd, rn, op2 rd = rn + op2 S BIC{S} rd, rn, op2 rd = rn & ∼op2 CCMP rn, rm, #f4 , cc if(cc) rn − rm; else N:Z:C:V = f
ADR Xd, ±rel21 Xd = PC + rel± EON rd, rn, op2 rd = rn ⊕ ∼op2 CINC rd, rn, cc if(cc) rd = rn + 1; else rd = rn
ADRP Xd, ±rel33 Xd = PC63:12 :012 + rel±
33:12 :012 EOR rd, rn, op2 rd = rn ⊕ op2 CINV rd, rn, cc if(cc) rd = ∼rn; else rd = rn
CMN rd, op2 rd + op2 S LSL rd, rn, rm rd = rn rm CNEG rd, rn, cc if(cc) rd = −rn; else rd = rn
CMP rd, op2 rd − op2 S LSL rd, rn, #i6 rd = rn i CSEL rd, rn, rm, cc if(cc) rd = rn; else rd = rm
MADD rd, rn, rm, ra rd = ra + rn × rm LSR rd, rn, rm rd = rn rm CSET rd, cc if(cc) rd = 1; else rd = 0
MNEG rd, rn, rm rd = − rn × rm LSR rd, rn, #i6 rd = rn i CSETM rd, cc if(cc) rd = ∼0; else rd = 0
MSUB rd, rn, rm, ra rd = ra − rn × rm MOV rd, rn rd = rn S CSINC rd, rn, rm, cc if(cc) rd = rn; else rd = rm + 1
MUL rd, rn, rm rd = rn × rm MOV rd, #i rd = i CSINV rd, rn, rm, cc if(cc) rd = rn; else rd = ∼rm
NEG{S} rd, op2 rd = −op2 MOVK rd,#i16 {, sh} rdsh+15:sh = i CSNEG rd, rn, rm, cc if(cc) rd = rn; else rd = −rm
NGC{S} rd, rm rd = −rm − ∼C MOVN rd,#i16 {, sh} rd = ∼(i∅ sh)
SBC{S} rd, rn, rm rd = rn − rm − ∼C MOVZ rd,#i16 {, sh} rd = i∅ sh Load and Store Instructions
SDIV rd, rn, rm ¯ rm
rd = rn ÷ MVN rd, op2 rd = ∼op2 LDP rt, rt2, [addr] rt2:rt = [addr]2N
SMADDL Xd, Wn, Wm, Xa Xd = Xa + Wn × ¯ Wm ORN rd, rn, op2 rd = rn | ∼op2 LDPSW Xt, Xt2, [addr] Xt = [addr]± ±
32 ; Xt2 = [addr+4]32
SMNEGL Xd, Wn, Wm ¯
Xd = − Wn × Wm ORR rd, rn, op2 rd = rn | op2 LD{U}R rt, [addr] rt = [addr]N
SMSUBL ¯ Wm
Xd, Wn, Wm, Xa Xd = Xa − Wn × ROR rd, rn, #i6 rd = rn ≫ i LD{U}R{B,H} Wt, [addr] Wt = [addr]∅N
SMULH Xd, Xn, Xm ¯ Xm)127:64
Xd = (Xn × ROR rd, rn, rm rd = rn ≫ rm LD{U}RS{B,H} rt, [addr] rt = [addr]±
N
SMULL Xd, Wn, Wm Xd = Wn ׯ Wm TST rn, op2 rn & op2 LD{U}RSW Xt, [addr] Xt = [addr]±
32
SUB{S} rd, rn, op2 rd = rn - op2 S PRFM prfop, addr Prefetch(addr, prfop)
UDIV rd, rn, rm rd = rn ÷ rm Branch Instructions STP rt, rt2, [addr] [addr]2N = rt2:rt
UMADDL Xd, Wn, Wm, Xa Xd = Xa + Wn × Wm B rel28 PC = PC + rel±27:2 :02 ST{U}R rt, [addr] [addr]N = rt
UMNEGL Xd, Wn, Wm Xd = − Wn × Wm Bcc rel21 if(cc) PC = PC + rel± 20:2 :02 ST{U}R{B,H} Wt, [addr] [addr]N = WtN0
UMSUBL Xd, Wn, Wm, Xa Xd = Xa − Wn × Wm BL rel28 X30 = PC + 4; PC += rel± 27:2 :02
UMULH Xd, Xn, Xm Xd = (Xn × Xm)127:64 BLR Xn X30 = PC + 4; PC = Xn Addressing Modes (addr)
CBNZ rn, rel21 if(rn 6= 0) PC += rel∅21:2 :02 xxP,LDPSW [Xn], #i7+s addr=Xn; Xn+=i±
6+s:s :0s
Bit Manipulation Instructions CBZ rn, rel21 if(rn = 0) PC += rel∅21:2 :02 xxP,LDPSW [Xn, #i7+s ]! Xn+=i±
6+s:s :0s ; addr=Xn
BFI rd, rn, #p, #n rdp+n−1:p = rnn−1:0 PC = Xn xxR*,PRFM [Xn{, #i12+s }] addr = Xn + i∅11+s:s :0s
RET {Xn}
xxR* [Xn], #i9 addr = Xn; Xn += i±
BFXIL rd, rn, #p, #n rdn−1:0 = rnp+n−1:p TBNZ rn, #i, rel16 if(rni 6= 0) PC += rel±
15:2 :02
xxR* [Xn, #i9 ]! Xn += i± ; addr = Xn
CLS rd, rn rd = CountLeadingOnes(rn) TBZ rn, #i, rel16 if(rni = 0) PC += rel±
15:2 :02
CLZ rd, rn rd = CountLeadingZeros(rn) xxR*,PRFM [Xn,Xm{, LSL #0|s}] addr = Xn + Xm s