NASM Language Support
Language features for NASM Assembly.
Features
This extension provides syntax highlighting and diagnostics for assembly files (.asm
, .nasm
, .s
). Your system's nasm
executable is used to detect compile-time errors and warnings such as invalid syntax or likely incorrect code.
This extension does provide:
- Syntax highlighting & language configuration
- Code validation on save
This extension does not provide:
- Autocomplete or Intellisense
Shown above: NASM Language Support + Error Lens, Theme: Github Dark Default
Requirements
While syntax highlighting can always be used, you must have a nasm
binary referenced in your PATH
environment variable to view code diagnostics.
Getting a NASM binary on Unix-like systems
Your operating system might have a nasm
package.
For example:
- macOS (Homebrew):
brew install nasm
[^1]
- Arch Linux:
pacman -S nasm
- Debian/Ubuntu:
apt-get install nasm
- Fedora/RPM-based:
dnf install nasm
, yum install nasm
Downloading a NASM binary
You can also download NASM from their website. Find a link to the latest version and download the executable for your platform. Then, add it to a folder that's referenced in your PATH, such as /usr/local/bin
.
Extension Setting
This extension contributes the following settings:
nasm.validate
: If enabled, NASM Language Support will validate your assembly files. This is dependent on you having a nasm
executable in your PATH
.
nasm.outputFormat
: Changes the executable output format to assemble for. This is neccesary to provide correct errors based on your build target.
nasm.reportWarnings
: If disabled, warnings will be supressed.
nasm.extraFlags
: Extra flags (for example, -w+all
) that will be appended when running nasm
when validating assembly files
nasm.nasmPath
: The name or path of the nasm executable (e.g. /opt/homebrew/bin/nasm
, /usr/local/bin/nasm
)
nasm.checkOnType
: If enabled, validates assembly files as you type rather than after saving.bb
[^1]:
You may need to add set the nasm.nasmPath
option to /opt/homebrew/bin/nasm
for the extension to work properly.