[ARM-assembly]-A64指令集合总结
★★★個人博客導(dǎo)讀首頁—點擊此處 ★★★
A64指令集合總結(jié)
- 1、Instructions that move System or Special-purpose registers to or from a general-purpose register
- 2、Floating-point moves between a SIMD&FP register and a general-purpose register
- 3、SIMD moves between a SIMD&FP register and a general-purpose register
- 4、Barriers
- 5、Memory access instructions at various access sizes
- 6、Move immediate to general-purpose register
- 7、System instructions, Send Event, NOP, and Clear Exclusive
- 8、Memory Tagging Extension Instructions(ARMv8.5-MemTag)
- 9、Exception-generating instructions
- 10、Instructions that explicitly write to the PC (branches)
- 11、Exception return and related instructions
- 12、Instructions that request entry to a low-power state
- 13、Instructions that read the PC
- 14、Instructions that explicitly modify PSTATE, other than DCPS and DRPS
- 15、Instructions that read PSTATE.{N, Z, C, V} or other PSTATE fields
★★★ 友情鏈接 : 個人博客導(dǎo)讀首頁—點擊此處 ★★★
1、Instructions that move System or Special-purpose registers to or from a general-purpose register
MRS MSR
2、Floating-point moves between a SIMD&FP register and a general-purpose register
? FMOV (between a general-purpose register and a half-precision register).
? FMOV (between a general-purpose register and a single-precision register).
? FMOV (between a general-purpose register and a double-precision register).
? FMOV (between a general-purpose register and a SIMD element).
3、SIMD moves between a SIMD&FP register and a general-purpose register
? INS (from a general-purpose register to a SIMD element).
? UMOV (from a SIMD element to a general-purpose register).
4、Barriers
? DMB.
? DSB.
? ESB, when the RAS Extension is implemented.
? ISB.
? PSB, when the Statistical Profiling Extension is implemented.
? SB, when ARMv8.0-SB is implemented.
5、Memory access instructions at various access sizes
? LDR, LDRB, LDRH, LDRSB, LDRSH, LDRSW (immediate, not literal).
? LDUR, LDURB, LDURH, LDURSB, LDURSH, LDURSW (immediate).
? LDTR, LDTRB, LDTRH, LDTRSB, LDTRSH, LDTRSW (immediate).
? LDAR, LDARB, LDARH, LDXR, LDXRB, LDXRH, LDAXR, LDAXRB, LDAXRH.
? LDXP, LDAXP.
? STR, STRB, STRH (immediate)
? STUR, STURB, STURH (immediate).
? STTR,STTRB, STTRH (immediate).
? STLR, STLRB, STLRH, STXR, STXRB, STXRH, STLXR, STLXRB, STLXRH.
? STXP, STLXP.
? LDLAR, LDLARB, LDLARH - Armv8.1 instructions.
? STLLR, STLLRBB, STLLRH - Armv8.1 instructions.
? CAS, CASB, CASH, CASP - Armv8.1 instructions.
? SWP, SWPB, SWPH - Armv8.1 instructions.
? LDADD, LDADDB, LDADDH - Armv8.1 instructions.
? LDCLR, LDCLB, LDCLRH - Armv8.1 instructions.
? LDEOR, LDEORB, LDEORH - Armv8.1 instructions.
? LDSET, LDSETB, LDSETH - Armv8.1 instructions.
? LDSMAX, LDSMAXB, LDSMAXH - Armv8.1 instructions.
? LDSMIN, LDSMINB, LDSMINH - Armv8.1 instructions.
? LDUMAX, LDUMAXB, LDUMAXH - Armv8.1 instructions.
? LDUMIN, LDUMINB, LDUMINH - Armv8.1 instructions.
? STADD, STADDB, STADDH - Armv8.1 instructions.
? STCLR, STCLB, STCLRH - Armv8.1 instructions.
? STEOR, STEORB, STEORH - Armv8.1 instructions.
? STSET, STSETB, STSETH - Armv8.1 instructions.
? STSMAX, STSMAXB, STSMAXH - Armv8.1 instructions.
? STSMIN, STSMINB, STSMINH - Armv8.1 instructions.
? STUMAX, STUMAXB, STUMAXH - Armv8.1 instructions.
? STUMIN, STUMINB, STUMINH - Armv8.1 instructions.
? LDAPR, LDAPRB, LDAPRH - Armv8.3 instructions.
? LDAPURH, LDAPURSH, LDAPUR, LDAPURSW, LDAPURSB, LDAPURB - Armv8.4 instructions.
? STLUR, STLURH, STLURB - Armv8.4 instructions.
6、Move immediate to general-purpose register
? MOVZ, MOVN, MOVK (immediate).
? MOV (between a general-purpose register and the stack pointer)
7、System instructions, Send Event, NOP, and Clear Exclusive
? IC.
? DC.
? TLBI.
? AT.
? SEV, SEVL.
? NOP.
? CLREX.
8、Memory Tagging Extension Instructions(ARMv8.5-MemTag)
? ADDG <Xd|SP>, <Xn|SP>, #, #
? SUBG <Xd|SP>, <Xn|SP>, #, #
? STG , [<Xn|SP>{, #}], signed offset.
? STZG , [<Xn|SP>{, #}], signed offset.
? ST2G , [<Xn|SP>{, #}], signed offset.
? STZ2G , [<Xn|SP>{, #}], signed offset.
? LDG , [<Xn|SP>{, #}]
? LDGM , [<Xn|SP>]
? STGM , [<Xn|SP>]
? STZGM , [<Xn|SP>]
? STGP , , [<Xn|SP>{, #}]
9、Exception-generating instructions
? SVC.
? HVC.
? SMC.
? BRK.
? HLT.
10、Instructions that explicitly write to the PC (branches)
B, B.cond, BL, BLR, BR, CBZ, CBNZ, RET, TBZ, TBNZ
11、Exception return and related instructions
? ERET.
12、Instructions that request entry to a low-power state
? WFE, WFI.
13、Instructions that read the PC
? LDR (literal), LDRSW (literal).
? ADR, ADRP.
? PRFM (literal).
14、Instructions that explicitly modify PSTATE, other than DCPS and DRPS
? ADDS, SUBS, ADCS, SBCS, ANDS, BICS, CCMN, CCMP.
? FCMP, FCMPE, FCCMP, FCCMPE.
? MSR DAIFSet (immediate), MSR DAIFClr (immediate), MSR SPSel (immediate).
? MSR NZCV (register), MSR DAIF (register), MSR SPSel (register).
15、Instructions that read PSTATE.{N, Z, C, V} or other PSTATE fields
? CSEL, CSINC, CSINV, CSNEG, CCMN, CCMP, FCSEL, FCCMP, FCCMPE.
? ADC, ADCS,SBC, SBCS.
? CFINV.
? MRS NZCV, MRS DAIF, MRS SPSel, MRS CurrentEL.
總結(jié)
以上是生活随笔為你收集整理的[ARM-assembly]-A64指令集合总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux kernel同步方法的总结
- 下一篇: [optee_os]-optee中的内核