📄 targ_arm.aco
字号:
# ASM Coloring file for RVDEBUG
# This files contains the instruction format information for the
# the ARM micro-processor.
# the format of the file is:
# - a line starting with "!" contains information tuples for case=B, pref=c,
# col1=c, cmnt=c, lab1=B, lcol=B. Where, c means a character and B
# means Boolean (1/0 or T/F). Case is for case-sensitive, Pref is
# number prefix char if any, col1 is character in column 1 that means
# comment (if any), cmnt is comment char, lab1 is True if a string in
# column 1 is a label, lcol is True if a label ends in colon (:).
# - a line starting with "." defines an extension list for files to use
# this format. The list is comma separated and contains just extensions.
# - lines starting with "$" define macros to be substituted in the opcodes.
# a macro is a single letter that yields a string of any length. The
# line format is $n=string where n is a letter. The opcodes then refer
# to this using $n anywhere.
# - lines starting with "=" define extra strings to match for color. The
# most common would be register names and/or directives.
!case=F pref=# col1=* cmnt=; lab1=T lcol=F
.asm,s,src,arm
=R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15
=A1,A2,A3,A4,V1,V2,V3,V4,AP,V5,V6,V7,V8,V9,IP,SP,LR,PC
=C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15
=P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15
=F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15
=S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15
=S16,S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30,S31
=D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15
=D16,D17,D18,D19,D20,D21,D22,D23,D24,D25,D26,D27,D28,D29,D30,D31
=Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15
=CPSR,CPSR_ALL,CPSR_FLG,SPSR,SPSR_ALL,SPSR_FLG
## for arm shifts
=asr,lsl,lsr,ror,rrx
## for it.... instr
=eq,ne,cs,cc,mi,pl,vs,vc,hi,ls,ge,lt,gt,le,lo,hs,al,nv
$C={eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|lo|hs}
$F=[eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|lo|hs|al]
$K=[eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|lo|hs]
b[l|x|lx|xj]$F
mov$F[s]
mov{t|w}$F
mvn$F[s]
cmp$F
cmn$F
teq$F
tst$F
and$F[s]
eor$F[s]
sub$F[s]
rsb$F[s]
add$F[s]
adc$F[s]
sbc$F[s]
rsc$F[s]
orr$F[s]
bic$F[s]
mrs$F
msr$F
mul$F[s]
mla$F[s]
umull$F[s]
umlal$F[s]
smull$F[s]
smlal$F[s]
ldr$F[b|h|sh|sb][t]
str$F[b|h][t]
str$F{sh|sb}
ldm$F{fd|ed|fa|ea|ia|ib|da|db}
stm$F{fd|ed|fa|ea|ia|ib|da|db}
swp$F[b]
swi$F
cdp$F
cdp2
ldc$F[l]
stc$F[l]
mcr$F
mrc$F
adc
add
and
asr
bic
lsl
lsls
ldsb
ldsh
lsr
lsrs
neg
pop
push
ror
# Additional ARM.
bkpt
clz$F
cps[ie|id]
cpy$F
ldc2[l]
mcr2
mrc2
stc2[l]
bf{c|i}$F
# DSP.
ldr$F[d]
mcrr2
mcrr$F
mrrc$F
mrrc2
pld
qadd$F
qdadd$F
qdsub$F
qsub$F
smlal{b|t}{b|t}$F
smlaw{b|t}$F
smul{b|t|w}{b|t}$F
str$Fd
# VFP.
fabs{d|s}$F
fadd{d|s}$F
fcmpd$F
fcmpe{d|s}$F
fcmpez{d|s}$F
fcmps$F
fcmpz{d|s}$F
fcpy{d|s}$F
fcvtds$F
fcvtsd$F
fdiv{d|s}$F
fldd$F
f{ld|st}md{bd|bs|bx}$F
f{ld|st}mf{dd|ds|dx}$F
f{ld|st}{me|mi}{ad|as|ax}$F
flds$F
fmac{d|s}$F
fmd{h|l}r$F
fmrd{h|l}$F
fmr{s|x}$F
fmsc{d|s}$F
fmsr$F
fmstat$F
f[n]mul{d|s}$F
fmxr$F
fneg{d|s}$F
fnm{a|s}c{d|s}$F
fsqrt{d|s}$F
fst{d|s}$F
fsub{d|s}$F
fto{u|s|is}i[z]{d|s}$F
f{u|s}ito{d|s}$F
fdvd
fldm{d|s}
fm{d|s}rr$F
fmov{d|s}
fmrr{d|s}$F
frde
fstms
# FPA.
$D={d|e|s}
$E=[m|p|z]
$A={bs|cs|df|sn|tn}
$L={gn|og}
$M={nf|uf|vf}
$P={ol|ow}
$R={df|mf|nd|pw|sf}
$S={in|qt|uf}
a$A$D$E
a$A$C$D$E
cos$D$E
cos$C$D$E
dvf$D$E
dvf$C$D$E
exp$D$E
exp$C$D$E
flt$D$E
flt$C$D$E
l$L$D$E
l$L$C$D$E
m$M$D$E
m$M$C$D$E
p$P$D$E
p$P$C$D$E
r$R$D$E
r$R$C$D$E
s$S$D$E
s$S$C$D$E
urd$D$E
urd$C$D$E
c[m|n]f[e]$K
lfm$K[ea|fd]
rf{c|s}$K
sfm$K[ea|fd]
wf{c|s}$K
fdv$Ks$E
fix$K$E
f[ml|rd]$Ks$E
ldf$K[d|e|p|s]
stf$K[d|e|p|s]
$Q={d|dm|dp|dz|e|em|ep|ez|sm|sp|sz}
nrm$K$Q
tan$K$Q
#vfpv3
fto{s|u}{l|h}{s|d}
f{s|u}{l|h}to{s|d}
# v6 architecture
sxth$F
sxtb$F
sxtb16$F
uxth$F
uxtb$F
uxtb16$F
sxtah$F
sxtab$F
sxtab16$F
uxtah$F
uxtab$F
uxtab16$F
smi$F
# wrist
addw
asrs
czb$C
it[t|e][t|e][t|e][t|e]
# v7 architecture
ldrex[b|h|d]$F
strex[b|h|d]$F
clrex
sev
wfi
wfe
#
nop[16|32]
sdiv
udiv
sel$F
setend
# neon
vaba$F
vabd$F
vadd$F
vbic$F
vca$F
vc$F[z]
vcnt$F
vcvt$F
vdtl{1|2|3|4}$F
vext$F
vld{1|2|4}$F
vldm{db|ia}$F
vldr$F
vmla$F
vmls$F
vmov$F
vmul$F
vmvh$F
vmvn$F
vorr$F
vqdmul$F
vqmov$F
vqrshl$F
vqrshr$F
vqshl$F
vshl$F
vshr$F
vsli$F
vsma$F
vsri$F
vst{1|2|3|4}$F
vstm{ia|db}$F
vstr$F
vsub$F
vsum$F
vswp$F
vtbl$F
vtst
## to sort into the right place
mls$F
nrms
orn[s]
pkh{tb|bt}$F
qadd[8|16|subx]$F
qsub[8|16|addx]$F
u[h|q]add[8|16|subx]$F
u[h|q]sub[8|16|addx]$F
s[h]add[8|16|subx]$F
s[h]sub[8|16|addx]$F
rbit$F
rev[16|sh]
rfe{da|db|ea|ia|ib}
rors
sbfx
smla{bb|bt|dx|d|ld|ldx|tb|tt}$F
smls{d|dx|ld|ldx}$F
smml{a|s}[r]$F
smmul[r]$F
smu{a|s}d[x]$F
srs{db|ea|fd|ia}
ssat$F
ssat16
subw
tans
tbb
tbh
ubfx$F
umaal$F
usad[a]8
usat[16]$F
#pseudo instructions
adr
dci
dcd
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -