Ⅰ. 插件描述
GNU as (AT&T) syntax for *86 CPUsⅡ. 基本信息
|
Ⅲ. 安装方法
使用Vundle管理器安装
在你的.vimrc下添加:Plugin '/gnu-as-syntax'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall
对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。
使用NeoBundle管理器安装
在你的.vimrc下添加:NeoBundle '/gnu-as-syntax'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall
使用VimPlug管理器安装
在你的.vimrc下添加:Plug '/gnu-as-syntax'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall
使用Pathogen管理器安装
在终端中运行以下命令:cd ~/.vim/bundle
git clone https://github.com/vim-scripts/GNU-as-syntax
Ⅳ. 文档说明
This file defines a (almost) complete syntax for GNU as assembler.
My motivation in writing this was the lack of a complete, working syntax for this
common assembler.
For now the basic as directives as well as the Intel / AMD instruction sets are included.
Opcodes supporting a size suffix are recognized plain as well as suffixed with b/w/l/q.
== NOTE ON UPDATES
Please note that the whole project is now hosted on github - see https://github.com/Shirk/vim-gas/
I will try to keep the latest version available on vim.org however there is no 100% guarantee.
Github offers the flexibility for everyone to easily participate and help me enhance this project.
== Supported instructions a per version 0.6:
-- X86 common instruction set (8086 - 686)
-- Katmai Streaming SIMD instructions (SSE -- a.k.a. KNI, XMM, MMX2)
-- Introduced in Deschutes but necessary for SSE support
-- XSAVE group (AVX and extended state)
-- Generic memory operations
-- New MMX instructions introduced in Katmai
-- AMD Enhanced 3DNow! (Athlon) instructions
-- Willamette SSE2 Cacheability Instructions
-- Willamette MMX instructions (SSE2 SIMD Integer Instructions)
-- Willamette Streaming SIMD instructions (SSE2)
-- Prescott New Instructions (SSE3)
-- VMX Instructions
-- Extended Page Tables VMX instructions
-- Tejas New Instructions (SSSE3)
-- AMD SSE4A
-- New instructions in Barcelona
-- Penryn New Instructions (SSE4.1)
-- Nehalem New Instructions (SSE4.2)
-- AMD SSE5 instructions
-- Intel SMX
-- Geode (Cyrix) 3DNow! additions
-- Intel AES instructions
-- Intel AVX AES instructions
-- Intel AVX instructions
-- Intel Carry-Less Multiplication instructions (CLMUL)
-- Intel AVX Carry-Less Multiplication instructions (CLMUL)
-- Intel Fused Multiply-Add instructions (FMA)
-- VIA (Centaur) security instructions
-- AMD XOP, FMA4 and CVT16 instructions (SSE5)
-- Systematic names for the hinting nop instructions
You can set different highlighting for each set listed above by adding a line like this to you .vimrc:
hi def link gasOpcodeX86_PENT_SSE <some_highlighting>
screenshot here: http://skitch.com/shirkrin/neq8c/gnu-as-syntax-for-vim
== per-file opcode enable / disable
Since version 0.6 it is possible to disable sets of opcodes by either CPU they where introduced in or by their extension name.
This is done by setting a special variable recognized by gas.vim to the list of disabled opcodes.
E.g.
" globally disable all x86_64 opcodes
:let g:gasDisableOpcodes='x86_64'
" disable SSE and SSE2 for this buffer
let b:gasDisableOpcodes='sse sse2'
Disabled opcodes will be highlighted as errors.
recognized CPU groups:
186, 286, 386, 3862, 486, 8086, amd, future, ia64, katmai, nehalem,
p6, pentium_m, pentium, prescott, sandybridge, x64, x642, x86_64
recognized extension groups:
base, 3dnow, mmx, mmx2, sse, sse2, sse3, ssse3, sse4.1, sse4.2, sse4a,
sse5, avx, fma, vmx
I hope this syntax file will be useful to other people
- but don't blame me if it doesn't suit your needs.