[ << ] [ >> ]           [] [] [] [ ? ]

1.1 Introduction

vasm is a portable and retargetable assembler able to create linkable objects in different formats as well as absolute code. Different CPU-, syntax and output-modules are supported.

Many common directives/pseudo-opcodes are supported (depending on the syntax module) as well as CPU-specific extensions.

The assembler supports optimizations and relaxations (e.g. choosing the shortest possible branch instruction or addressing mode as well as converting a branch to an absolute jump if necessary).

The concept is that you get a special vasm binary for any combination of CPU- and syntax-module. All output modules, which make sense for the current CPU, are included in the vasm binary and you have to make sure to choose the output file format you need (refer to the next chapter and look for the -F option). The default is a test output, only useful for debugging or analyzing the output.


1.2 Legal

vasm is copyright in 2002-2017 by Volker Barthelmann.

This archive may be redistributed without modifications and used for non-commercial purposes.

An exception for commercial usage is granted, provided that the target CPU is M68k and the target OS is AmigaOS. Resulting binaries may be distributed commercially without further licensing.

In all other cases you need my written consent.

Certain modules may fall under additional copyrights.


1.3 Installation

The vasm binaries do not need additional files, so no further installation is necessary. To use vasm with vbcc, copy the binary to ‘vbcc/bin’ after following the installation instructions for vbcc.

The vasm binaries are named vasm<cpu>_<syntax> with <cpu> representing the CPU-module and <syntax> the syntax-module, e.g. vasm for PPC with the standard syntax module is called vasmppc_std.

Sometimes the syntax-modifier may be omitted, e.g. vasmppc.

Detailed instructions how to build vasm can be found in the last chapter.


[ << ] [ >> ]           [] [] [] [ ? ]