• Stars
    star
    141
  • Rank 259,347 (Top 6 %)
  • Language Batchfile
  • License
    GNU Lesser Genera...
  • Created over 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Provides Visual Studio integration for the NASM assembler.

VSNASM

Github All Releases GitHub release GitHub issues license donate

About

This project provides a set of build customisations that can be used within Visual Studio to compile assembly code using NASM. Provides Visual Studio integration for the NASM assembler. Supports Visual Studio 2010, 2012, 2013, 2015, 2017, 2019 and 2022.

NASM

The Netwide Assembler (NASM) is an assembler and disassembler for the Intel x86 architecture. It can be used to write 16-bit, 32-bit (IA-32) and 64-bit (x86-64) programs. For more information on NASM refer to the official site: www.nasm.us.

Installation

The project provides a basic installer script that can automatically detect any installed Visual Studio 2013, 2015, 2017, 2019 and 2022 installation and then install the required components. To use this script simply run 'install_script.bat' from an elevated (i.e administrator) command prompt.

Manual Installation (optional)

Alternatively, to manually install the extension you will first need to download the required win32 or win64 binary (depending on your system) from the official NASM website www.nasm.us.

From the download archive you will need to extract nasm.exe into a location that Visual Studio can see. To tell Visual Studio where to find nasm.exe you have several options:

  1. Find the directory where the Visual Studio C++ compiler is installed. This can be determined from within Visual Studio by checking the contents of the VCInstallDir macro. For example the location for Visual Studio 2015 would be:

    1. C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ -- For a 64 bit system
    2. C:\Program Files\Microsoft Visual Studio 14.0\VC\ -- For a 32 bit system
  2. You can install nasm to any directory and then set environment variable NASMPATH to point to the absolute directory of the installed nasm.exe (this path should include the final backslash).

To use the build customisation in Visual Studio you need to copy the 3 provided files (nasm.props, nasm.xml, nasm.targets) into a location where they can be found by the Visual Studio build customisation processes. There are several ways to do this:

  1. Copy these files to the MSBuild customisations directory. This can be determined from within Visual Studio by checking the contents of the VCTargetsPath macro. For example the location for various Visual Studio versions on a 64 bit system would be:

    1. Visual Studio 2013: C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations
    2. Visual Studio 2015: C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations
    3. Visual Studio 2017: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\BuildCustomizations
    4. Visual Studio 2019: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations
  2. Copy these files to a convenient location and set that path in the 'Build Customisations Search Path' in the Visual Studio 'Projects and Solutions|VC++ Project Settings' item in the 'Tools|Options' menu.

  3. Copy these files to a convenient location and set this path in the 'Build Customisation dialogue (discussed later).

To use NASM in a project you must enable the customisation by right clicking on the project in the Solution Explorer and select 'Build Customisations..'. This will give you a dialog box that allows you to select NASM as an assembler (note that your assembly files need to have the extension '.asm'). If you have used option 3 above, you will need to let the dialogue find them using the 'Find Existing' button below the dialogue.

To assemble a file with NASM, select the Property Page for the file and ensure that 'Nasm Assembler' is selected in the Tool dialog entry. The additional NASM property page can then be used to change various options supported by NASM.

More Repositories

1

x264

Unofficial X264 with added custom native Visual Studio project build tools. X264: A free software library and application for encoding video streams into the H.264/MPEG-4 AVC format.
C
183
star
2

FFVS-Project-Generator

A program that can scan existing FFmpeg/LibAV source files and dynamically generate a Visual Studio project file.
C++
173
star
3

gmp

Unofficial GMP with added custom native Visual Studio project build tools. GMP: GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers.
C
82
star
4

VSYASM

Provides Visual Studio integration for the YASM assembler.
Batchfile
57
star
5

libvpx

Unofficial LibVPX with added custom native Visual Studio project build tools. LibVPX: VP8/VP9 Codec SDK.
C
38
star
6

libbluray

Unofficial LibBluray with added custom native Visual Studio project build tools. LibBluray: libbluray is an open-source library designed for Blu-Ray Discs playback for media players.
Java
32
star
7

x265

Unofficial X265 with added custom native Visual Studio project build tools. X265: x265 is an open-source project and free application library for encoding video streams into the H.265/High Efficiency Video Coding (HEVC) format.
Assembly
30
star
8

libgcrypt

Unofficial LibGCrypt with added custom native Visual Studio project build tools. LibGCrypt: Libgcrypt is a general purpose cryptographic library based on the code from GnuPG.
C
27
star
9

libssh

Unofficial LibSSH with added custom native Visual Studio project build tools. LibSSH: Mulitplatform C library implementing the SSHv2 and SSHv1 protocol for client and server implementations.
C
27
star
10

gnutls

Unofficial GnuTLS with added custom native Visual Studio project build tools. GnuTLS: GnuTLS is a secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them.
C
23
star
11

nettle

Unofficial Nettle with added custom native Visual Studio project build tools. Nettle: Nettle is a cryptographic library that is designed to fit easily in more or less any context.
C
23
star
12

libcdio

Unofficial LibCDIO with added custom native Visual Studio project build tools. LibCDIO: The GNU Compact Disc Input and Control library (libcdio) contains a library for CD-ROM and CD image access.
C
18
star
13

liblzma

Unofficial LibLZMA with added custom native Visual Studio project build tools. LibLZMA: liblzma is a lzma compression library with API similar to that of zlib.
C
18
star
14

xvid

Unofficial XVid with added custom native Visual Studio project build tools. Xvid: A high performance and high quality MPEG-4 video de-/encoding solution.
C
15
star
15

libiconv

Unofficial Libiconv with added custom native Visual Studio project build tools. Libiconv: An iconv() implementation, for use on systems which don't have one, or whose implementation cannot convert from/to Unicode.
C
14
star
16

soxr

Unofficial Soxr with added custom native Visual Studio project build tools. Soxr: A library for performing one-dimensional sample-rate conversion.
C
13
star
17

rtmpdump

***This project is no longer updated***. Unofficial RTMPdump with added custom native Visual Studio project build tools. RTMPdump: A toolkit for RTMP streams.
C
13
star
18

fontconfig

Unofficial Fontconfig with added custom native Visual Studio project build tools. Fontconfig: Fontconfig is a library for configuring and customizing font access.
C
13
star
19

game-music-emu

Unofficial LibGME with added custom native Visual Studio project build tools. LibGME: Game_Music_Emu is a collection of video game music file emulators.
C++
12
star
20

libbdplus

Unofficial LibBDPlus with added custom native Visual Studio project build tools. LibBDPlus: libbdplus is a research project to implement the BD+ System Specifications. This research project provides, through an open-source library, a way to understand how the BD+ works.
C
11
star
21

SDL

Unofficial SDL with added custom native Visual Studio project build tools. SDL: SDL Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.
C
10
star
22

libaacs

Unofficial LibAACS with added custom native Visual Studio project build tools. LibAACS: libaacs is a research project to implement the Advanced Access Content System specification. This research project provides, through an open-source library, a way to understand how the AACS works.
C
10
star
23

freetype2

Unofficial Freetype with added custom native Visual Studio project build tools. FreeType2: A freely available software library to render fonts.
C
9
star
24

libxml2

Unofficial LibXML2 with added custom native Visual Studio project build tools. LibXML2: Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), it is free software available under the MIT License.
C
8
star
25

libdvdcss

Unofficial LibDVDCSS with added custom native Visual Studio project build tools. LibDVDCSS : libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption.
C
8
star
26

bzip2

Unofficial BZip2 with added custom native Visual Studio project build tools. BZip2: A freely available, patent free, high-quality data compressor.
C
7
star
27

ShiftMediaProject.github.io

CSS
6
star
28

libgpg-error

Unofficial LibGPG-Error with added custom native Visual Studio project build tools. LibGPG-Error: Libgpg-error is a small library with error codes and descriptions shared by most GnuPG related software.
C
6
star
29

modplug

Unofficial Modplug with added custom native Visual Studio project build tools. Modplug: A ModPlug audio rendering engine.
C++
5
star
30

libdvdread

Unofficial LibDVDRead with added custom native Visual Studio project build tools. LibDVDRead: libdvdread provides a simple foundation for reading DVD video disks. It provides the functionality that is required to access many DVDs.
C
5
star
31

libdvdnav

Unofficial LibDVDNav with added custom native Visual Studio project build tools. LibDVDNav: libdvdnav is a library for developers of multimedia applications. It allows easy use of sophisticated DVD navigation features such as DVD menus, multiangle playback and even interactive DVD games.
C
5
star
32

expat

***This project is no longer updated (in favour of LibXML2)***. Unofficial Expat with added custom native Visual Studio project build tools. Expat: Expat is an XML parser library written in C.
C
3
star