spacemacs/layers/+lang/asm/README.org
2016-01-11 22:35:37 -05:00

2.8 KiB

asm layer

logo

/TakeV/spacemacs/media/commit/4675760cf537a93a1a0a125902bc33b15ec07242/layers/+lang/asm/img/asm.png

Description

This layer supports for writing Assembly code. The built-in major mode for editing assmebly code in Emacs is asm-mode. The layer adds nasm-mode, which understands NASM-specific syntax. Also nasm-mode is intended for NASM, it actually works well with other variants of Assembly in general, and provides Imenu integration (so you can jump around with SPC s j).

Features:

  • Improved syntax highllighting.
  • Automatic indentatation.
  • Auto-completion for symbol in opened buffers.
  • Look up documentation for current instruction at cursor.
  • Imenu integration.

Install

To use this contribution add it to your ~/.spacemacs

  (setq-default dotspacemacs-configuration-layers '(asm))

To look up the x86 instructions, two things are required:

  • pdftotext command line program from Poppler:

#+being_src sh sudo apt-get install poppler-utils

#+end_src

Then, set x86-lookup-pdf to the location of your PDF document (Tip: If you use Helm as your completion of choice, you can use SPC f f to navigate to the file, and press C-c i to insert the path). For example, something like this:

  (setq x86-lookup-pdf "~/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf")

The first time you launch the command, it took a while for indexing. After that, the result is cached and the next time you start in an instant.

Key bindings

Key Binding Description
<SPC> m h Look up the documentation for instruction at point
; Insert a comment

Note: Quoted from the docstring of asm-comment, the command bound to ;:

Convert an empty comment to a `larger' kind, or start a new one.
These are the known comment classes:

   1 -- comment to the right of the code (at the comment-column)
   2 -- comment on its own line, indented like code
   3 -- comment on its own line, beginning at the left-most column.

Suggested usage:  while writing your code, trigger asm-comment
repeatedly until you are satisfied with the kind of comment.