ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

GAS-x86 (或 x64) 突出显示方案

作者: calculuswhiz 全部

这是有史以来最伟大的语法定义

标签 语言语法x86x64x86_64AT&TGAS

详细信息

  • 1.3.9
  • github.​com
  • github.​com
  • 4年前
  • 2小时前
  • 10年前

安装次数

  • 总计 8K
  • Windows 3K
  • Mac 1K
  • Linux 3K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 2 0 0 0 1 0 0 0 0 1 0 1 2 1 0 1 0 0 0 0 1 1 0 2 1 0 0 0 1 1 0 0 1 0 0 0 2 0 1 0 0 0 0 0 0
Mac 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 2 1 1 0 0 0 0 0 0 0 1 0 1 2

阅读me

源代码
raw.​githubusercontent.​com

Sublime Text: x86 汇编语法定义 (AT&T/GAS)

这是有史以来最伟大的语法定义

Sublime Text 的 x86 汇编语法定义 (GAS/AT&T 语法)

我没有计划支持任何其他语法类型(如 Intel)。已经有足够的包存在。

涵盖了大量不同的 cpuid 标志指令,即使您没有这些指令也是如此。

目的:我在网上找不到很好的语法定义,所以我为 UIUC 的 ECE391 课程自己制作了一个。我找到的没有一个能够很好地突出显示正确的指令。这并不是说这个定义是完美的,但对于您的大学生级系统编程课程来说,它应该足够好了。

我在这个软件包的 'test/' 目录中包含了一些测试文件。如果喜欢,可以四处看看。我还包括了一个 gdb 反汇编输出,我认为这是一个很好的效果测试。

移植到其他编辑器

这已经成为一个为各种移植的父项目,所以以下是链接列表,其中包含我已制作的移植: - Atom. 同样的突出显示功能。这是直接 JSON->CSON 转换。没有代码段。 - Vim. 可能具有相同的功能。正则表达式语法有点难以固定。可能会在以后扩展代码段等功能。 - Gedit. 这是一个略显薄弱的移植,但它应该看起来相当接近。编写它有些令人沮丧,因为相关的文档很少。 - 可能还会有更多的移植。目前我没有任何计划将此移植到 Emacs。编写主模式似乎比 Vim 容易得多。我也不会做 Notepad++。

安装

  • 获取 Sublime Text。
  • 安装“软件包控制”:https://sublime.wbond.net/installation
  • 在您的 Sublime 窗口的菜单中,转到首选项>软件包控制并键入“安装”。
  • 键入“gasx”以查找软件包。
  • 如果捕获到错误,这将具备自动更新的优势。

手动安装

  • 下载此仓库的内容。
  • 将所有文件提取/复制/不论如何,都放到您的“软件包”目录中。
    • 这可以从“首选项”>“浏览软件包…”轻松访问。
    • 您总是可以在“软件包”目录中直接执行git pull
  • 如果上述方法都失败了,那就只能靠您自己了。祝好运。

Sublime会自动处理语法高亮,因此不需要重启。

如果您觉得说明不清楚,请告诉我。或者告诉Dennis,这样我们以后可以取笑您。

总是欢迎提交拉取请求和/或错误报告。

功能(秘密问答)

  • 忘记系统调用的编号?从您的架构(32/64)开始,输入您想要的调用(例如mmapread),按tab/enter键,然后让自动完成完成剩余的操作。
    • 例如,我想在x64上使用mmap。我输入64mmap,按回车键,然后展开为#define SYS_MMAP $9
  • 忘记了位移语法?只需输入“位移”,然后从自动完成中选择辅助选项。然后通过参数进行切换。
  • 如何启动独立的汇编程序?输入skel32skel64,然后进行自动完成。使用gcc -nostdlib进行编译。
  • 如何设置调用函数的栈帧?输入newframe32newframe64

在gdb反汇编日志中的演示:演示