汇编vim语法高亮

pxy2qtax  于 2023-06-06  发布在  其他
关注(0)|答案(4)|浏览(487)

默认的汇编语法文件不能很好地工作,在网上搜索gas汇编,我没有找到任何关于vim的gas(AT&T)语法文件。有人发现这个了吗?我不能写自己的语法文件。
http://img168.imageshack.us/img168/46/nasm.png ft=nasm
http://img160.imageshack.us/img160/5857/asm.png ft=asm(默认)
http://img164.imageshack.us/img164/8476/tasm.png ft=tasm

i86rm4rw

i86rm4rw1#

This may让你开始。这是你要找的吗
刚刚进行了一次快速搜索-看起来有几种不同类型的汇编语法突出显示内置。你用的是哪一个?
复制粘贴自:帮助语法

Currently these syntax
files are included:
    asm     GNU assembly (the default)
    asm68k      Motorola 680x0 assembly
    asmh8300    Hitachi H-8300 version of GNU assembly
    ia64        Intel Itanium 64
 fasm Flat assemlby http://flatassembler.net
    masm        Microsoft assembly (probably works for any 80x86)
    nasm        Netwide assembly
    tasm        Turbo Assembly (with opcodes 80x86 up to Pentium, and
            MMX)
    pic     PIC assembly (currently for PIC16F84)

The most flexible is to add a line in your assembly file containing:
    :asmsyntax=nasm
Replace "nasm" with the name of the real assembly syntax.  This line must be
one of the first five lines in the file.

此附加syntax script来自vim.org
看起来你的屏幕截图使用的是默认的asm文件类型。试试看

:set ft=nasm

你应该得到一些颜色的变化,按照这些截图。

从上面的截图中,我对fasm vim语法做了一些快速修改,并将其命名为gasm。可以在pastebin上找到here
将其复制并粘贴到您的个人.vim/syntax或vimfiles/syntax目录中,并将其命名为gasm.vim然后在汇编文件中:
这个vim脚本依赖于包含空格的% comment形式的注解。您可以在脚本的第116行看到这一点(如果愿意,也可以更改它)。
请注意:不要复制行号。

flvtvl50

flvtvl502#

我从零开始编写一个完整的GNU as语法。
语法文件可从www.example.com获得vim.org:GNU as syntax for X86
直接在GitHub上:GNU as syntax for X86
除了基本指令外,它还将识别以下扩展Intel / AMD指令:

  • X86通用指令集(8086 - 686)
  • Katmai Streaming SIMD指令(SSE - a.k.a. KNI、XMM、MMX2)
  • 在Deschutes中引入,但对于SSE支持是必要的
  • XSAVE组(AVX和扩展状态)
  • 通用内存操作
  • Katmai中引入了新的MMX指令
  • AMD Enhanced 3DNow!(Athlon)说明
  • Willamette SSE 2可缓存性说明
  • Willamette MMX指令(SSE 2 SIMD整数指令)
  • Willamette Streaming SIMD指令(SSE 2)
  • Prescott新指令(SSE 3)
  • VMX指令
  • 扩展页表VMX说明
  • Tejas新指令(SSSE 3)
  • AMD SSE4A
  • 巴塞罗那的新指示
  • Penryn新指令(SSE4.1)
  • Nehalem新说明(SSE4.2)
  • AMD SSE 5指令
  • 英特尔SMX
  • Geode(Cyrix)3DNow!附加物
  • 英特尔AES指令
  • 英特尔AVX AES指令
  • 英特尔AVX指令
  • 英特尔无进位乘法指令(CLMUL)
  • 英特尔AVX无进位乘法指令(CLMUL)
  • 英特尔融合乘加指令(FMA)
  • VIA(Centaur)安全说明
  • AMD XOP、FMA 4和CVT 16指令(SSE 5)
  • 提示nop指令的系统名称

它看起来像这样:

djp7away

djp7away3#

.vimrc中放入这一行,将使您在打开.asm文件时使用intel语法:

autocmd BufNew,BufRead *.asm set ft=nasm
iszxjhcz

iszxjhcz4#

Vim/Nvim如果无法检测到特定的文件类型,可以通过文件本身的实际宏来告诉它是什么,而不必在每次打开文件时都运行:set ft=nasm命令。
要做到这一点,找出文件类型的注解语法是什么,并在文件的末尾添加一行:(例如NASM

; vim:ft=nasm

此图像显示了语法高亮显示的效果以及添加了行的文件的外观。

相关问题