| I. Introduction 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 DOS real-mode assembler ASEM.EXE requires only 256 kB of free DOS memory and MS-DOS 3.0 (or higher). The new protected-mode assembler ASEMX.EXE requires a 286 CPU (or better), and at least 512 kB of free XMS memory. The new Win32 console-mode assembler ASEMW.EXE requires a 386 CPU (or better) and Windows 9x, NT, 2000 or XP. The new Linux assembler asem requires a 386-based Linux system. The new HTML documentation set requires a 90 MHz Pentium (or better) and a web browser. 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 fully year 2000 compliant 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 of more than seventy 8051 derivatives support of user-defined 8051 derivatives special support of the Philips 83C75x 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 limited update service by the author 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