In 1980 Intel has introduced
the 8051 as the first member of the
MCS-51 family of microcontrollers.
Today hundreds of cheap 8051 derivatives are available from dozens of
manufacturers. This makes the MCS-51 architecture so
interesting for professionals and hobbyists.
Intel had also defined an 8051 assembly language with bells and whistles
for all the subtle peculiarities of the MCS-51 core, and
offered a well-designed 8051 assembler, the legendary ASM51.
Unfortunately, Intel obsoleted all its MCS-51 development tools
in December 1993. The original (and IMHO best) 8051 assembler was gone
and no longer available.
At this time, I began to write my own 8051 assembler
with Turbo-Pascal on a 286 under MS-DOS.
In summer 1994 I felt that it was ready to use now, and good
enough to give it away. I named it ASEM-51
and tried to publish version 1.0 in the UseNet, but failed miserably.
Through the years I improved my skills in distributing software.
Since December 1999 ASEM-51 is distributed over the web,
which is certainly the best way in the 21st century.
ASEM-51 is a two-pass macro assembler for the
Intel MCS-51 family of microcontrollers.
It is running on the PC under MS-DOS, Windows and Linux.
The ASEM-51 assembly language is a rich subset of the Intel standard
that guarantees maximum compatibility with existing 8051 assembler sources.
ASEM-51 can generate two sorts of object files:
Intel-HEX format, which is directly accepted by
most EPROM programmers, and absolute OMF-51
format, which is required for many simulators, emulators and target debuggers.
Thus ASEM-51 is suitable for small and medium MCS-51-based
microcontroller projects in hobby, education and business.
However, ASEM-51 has been designed to process also very large
programs! Its most important features are:
- fast, compact, reliable, easy to use, and well-documented
- easy installation, almost no configuration required
- command line operation, batch and networking capability
- DOS (RM and PM), Win32 and Linux binaries available
- Intel-compatible syntax
- five location counters, one for each of the MCS-51 address spaces
- assembly-time evaluation of arithmetic and logical expressions
- segment type checking for instruction operands
- automatic code optimization of generic jumps and calls
- macro processing (that really works)
- nested include file processing
- nested conditional assembly
- absolute OMF-51 module output (with debug information)
- Intel-HEX file output
- hex-to-binary conversion utility
- built-in symbols for 8051 special function registers (can be disabled)
- direct support for more than two hundred 8051 derivatives
- support of user-defined 8051 derivatives
- special support for the Philips P83C75x family
- 8051 register bank support
- detailed assembler listing with symbol table or cross reference
- further fancy printing facilities
- documentation in ASCII and HTML format
- bootstrap program for testing on the MCS-51 target board
- support for easy integration into the popular Borland IDE (for DOS)
- limited update service by the author
The DOS real-mode assembler ASEM.EXE requires only 256 kB
of free DOS memory and MS-DOS 3.0 (or higher).
The protected-mode assembler ASEMX.EXE requires a 286 CPU
(or better), and at least 512 kB of free XMS memory.
The Win32 console-mode assembler ASEMW.EXE requires a 386 CPU
(or better) and Windows 95, 98, NT, 2000, XP, Vista, or 7.
The Linux assembler asem requires an x86-based Linux system.
The HTML documentation set requires a web browser conforming to HTML 4.01.
The ASEM-51 software package has been developed with:
Borland-Pascal mit Objekten 7.0 © Borland International 1992
Delphi 2.0 Client/Server Suite © Borland International 1996
FreePascal 1.0.6 © Florian Klämpfl 2002
Copyright © 1994, 1996, 2002, 2008 by
Last revised: July 31, 2012