2016-01-06 09:13:05 +00:00
#+TITLE : asm layer
2016-01-12 03:58:57 +00:00
[[file:img/asm.png ]]
2016-01-06 09:13:05 +00:00
2016-03-31 02:59:55 +00:00
* Table of Contents :TOC_4_gh:noexport:
- [[#description ][Description ]]
- [[#install ][Install ]]
- [[#layer ][Layer ]]
- [[#pdfs ][PDFs ]]
- [[#key-bindings ][Key bindings ]]
2016-01-06 09:13:05 +00:00
* Description
2016-01-12 03:58:57 +00:00
This layer adds support for Assembly code. The built-in major mode for
editing assembly code in Emacs is =asm-mode= .
2016-01-06 09:13:05 +00:00
2016-01-12 03:58:57 +00:00
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~ .
2016-01-06 09:13:05 +00:00
2016-01-12 03:58:57 +00:00
_Features_ :
- Improved syntax highlighting.
- Automatic indentation.
2016-01-06 09:13:05 +00:00
- Auto-completion for symbol in opened buffers.
- Look up documentation for current instruction at cursor.
- Imenu integration.
* Install
2016-01-12 03:58:57 +00:00
*** 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.
2016-01-06 09:13:05 +00:00
2016-01-12 03:58:57 +00:00
*** PDFs
2016-01-06 09:13:05 +00:00
To look up the x86 instructions, two things are required:
2016-01-12 03:58:57 +00:00
- the =pdftotext= command line tool from Poppler:
2016-01-06 09:13:05 +00:00
2016-01-12 03:58:57 +00:00
#+begin_src sh
2016-01-06 09:13:05 +00:00
sudo apt-get install poppler-utils
#+end_src
- [[http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html ][Intel® 64 and IA-32 Architectures Software Developer Manuals ]]. Any PDF that
contains the full instruction set reference will work, though volume 2 is the
best choice for x86-lookup.
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:
#+begin_src emacs-lisp
(setq x86-lookup-pdf "~/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf")
#+end_src
2016-01-12 03:58:57 +00:00
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.
2016-01-06 09:13:05 +00:00
* Key bindings
| Key Binding | Description |
|-------------+----------------------------------------------------|
2016-01-12 03:58:57 +00:00
| ~SPC m h h~ | Look up the documentation for instruction at point |
| ~;~ | Insert a comment |
2016-01-06 09:13:05 +00:00
_Note_ : Quoted from the docstring of =asm-comment= , the command bound to ~;~ :
#+begin_src text
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.
#+end_src