Table of Contents

asm layer

Table of ContentsClose


1 Description

This layer adds support for Assembly code. The built-in major mode for editing assembly code in Emacs is asm-mode.

The layer also adds nasm-mode for NASM-specific syntax. Although 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.


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

2 Install

2.0.1 Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add asm to the existing dotspacemacs-configuration-layers list in this file.

2.0.2 PDFs

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

  • the pdftotext command line tool from Poppler:
sudo apt-get install poppler-utils

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 can take a while for indexing, this is a one time operation and the result is cached for later use.

3 Key bindings

Key Binding Description
SPC m h 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.

Author: Sylvain Benner

Created: 2016-10-03 Mon 00:56