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

SPARC汇编

ProtractorNinja 全部

为Sublime Text 2/3提供SPARC汇编语法高亮和代码片段。

标签 语言语法

详细信息

  • 2014.01.08.16.32.29
  • github.​com
  • github.​com
  • 11年前
  • 3小时前
  • 11年前

安装量

  • 总计 3K
  • Win 2K
  • Mac 749
  • Linux 730
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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

读我

源代码
raw.​githubusercontent.​com

Sublime Text 2/3的SPARC语法

本软件包提供了SPARC汇编语言的语法高亮功能以及一些代码片段。

尽管SPARC在实践中不是很常见,但它仍然被某些大学用作教学语言。没有语法高亮的SPARC编写是一种凡人不应承受的痛苦。

有趣的是,我的SPARC课程是我大学在转向x86之前最后开设的SPARC课程。希望其他学生比我的同学发现这个更有用。

安装

获取文件

安装《SPARC汇编》包的最简单方法是通过Will Bond的Package Control插件。 安装它,重启Sublime Text,然后输入

=> Ctrl+Shift+P >> Package Control: Install Package >> SPARC Assembly => Enter

然后再次重启Sublime Text,完成!享受语法高亮带来的强大功能吧!

如果你希望通过Git安装,请通过终端转到你的Sublime Text 2 Packages目录…

  • OS X: ~/Library/Application\ Support/Sublime\ Text\ 2/Packages
  • Windows: %APPDATA%/Sublime Text 2/Packages/
  • Linux: ~/.config/sublime-text-2/Packages/

…然后粘贴(如果你不知道快捷键,可以尝试中间点击)以下命令

git clone [email protected]:ProtractorNinja/SPARC-sublime.git SPARC

要手动安装,请将此存档下载到Sublime Text 2 Packages目录中名为SPARC的文件夹内(首选项 -> 浏览程序包...)。

完成操作后,务必重启Sublime Text 2。

设置SPARC为默认语言

其他语言包括SPARC文件扩展名,分别是.s.m(分别对应R和Objective-C)。为了应对这个问题,我已经包括一个sparc.sublime-settings文件,理论上应该会改变自动语法偏好为SPARC。如果我没有做到,那么您可以手动更改,方法是打开一个.s.m文件,然后点击查看 -> 语法 -> 将当前扩展名所有内容打开为... -> SPARC

语法说明

语法高亮应该大多数都很直观,但我想指出某些操作码之间的重要区别:涉及到延迟插槽的操作码——分支指令、跳转和子程序调用——与不涉及这些操作码的颜色不同。完整的列表位于sparc.JSON-tmLanguage中的constant.other.sparc下。nop也会有自己的颜色,因为我认为当使用nop时,它应该凸显出来。

常规机器寄存器(%r0-31%i0-7%o0-7%l0-7%g0-7)都有自己的颜色,与神秘的%lo%hi%fp%sp不同。所有跟随%符号(例如宏定义的寄存器,如从define(my_register, l0)而来的%my_register)的东西都有一种独特的颜色。Monokai不会为变量着色。

片段

SPARC包提供7个片段,以简单插入某些代码结构。以下列出它们。

main创建一个基本的空程序模板,包括代码和额外数据部分。

subr插入一个基本的非叶子子程序,它有自己的寄存器窗口。

while等待时,while可以扩展成一个简单的循环结构!

for方便起见,for类似于while,但已经包含了一个迭代寄存器。

arr提供对一维数组元素(无论是ld还是st)的访问,前提是已经知道数组的起始地址。

arr2d可能看起来很复杂,但它只是与arr相同,只是它用于二维数组。

如果您需要条件块,请使用if。如果您不需要else部分(if_not_condition: ...),请随时删除。

屏幕截图

每个截图都使用美丽的、精彩(而且免费!)的Adobe Source Code Pro Light。它在放大显示上效果极佳。

使用Timmfin的Monokai变种Monokai Timmfin
使用Carl Calderon的Calydon LightCalydon Light
使用Dayle Rees的Github方案Dayle Rees' Github