The A51 Assembler is a macro assembler for the family of microcontrollers. It supports all derivatives. It translates symbolic assembly language mnemonics into relocatable object code where the utmost speed, small code size, and hardware control are critical. The macro facility speeds development and conserves maintenance time since common sequences need only be developed once.
|Published (Last):||10 May 2010|
|PDF File Size:||18.39 Mb|
|ePub File Size:||10.42 Mb|
|Price:||Free* [*Free Regsitration Required]|
The A51 Assembler is a macro assembler for the microcontroller family. It translates symbolic assembler language mnemonics into executable machine code. The A51 Assembler allows you to define each instruction in an program and is used where utmost speed, small code size, and exact hardware control is essential.
The A51 Assembler translates an assembler source file into a relocatable object module. It generates a listing file optionally with symbol table and cross reference. The A51 Assembler supports two different macro processors:. The Standard Macro Processor is the easier macro processor to use.
It allows you to define and use macros in your assembly programs. The standard macro syntax is compatible with that used in many other assemblers. MPL has several predefined macro processor functions that perform many useful operations like string manipulation or number processing. Another powerful feature of the A51 Assembler macro processors is conditional assembly depending on command line directives or assembler symbols.
Conditional assembly of sections of code can help you achieve the most compact code possible. It also allows you to generate different applications from one assembly source file.
A51 produces a listing file with line numbers as well as the time and date of the translation. Information about assembler invocation and the object file generated is printed. The listing contains a source line number and the object code generated by each source line. Error messages and warning messages are included in the listing file. The position of each error is clearly marked.
The register banks used, and the total number of warnings and errors are at the end of the listing file. The linker resolves external and public references and assigns absolute addresses to relocatable programs segments.
The linker automatically selects the appropriate run-time library and links only those library modules that are required. However, it is easy for you to specify custom settings for your application. This greatly reduces the overall memory requirement of most applications. These directives are useful when using indirectly called functions or when disabling overlaying for debugging. Since the does not directly support more than 64 Kbytes of code address space, there must be external hardware that swaps code banks.
The hardware that does this must be controlled by software running on the This process is known as bank switching. Software support for the external bank switching hardware includes a short assembly file you can edit for your specific hardware platform. By carefully grouping functions in the different banks, you can create very large, efficient applications.
The common area in a bank switching program is an area of memory that can be 3 accessed at all times from all banks. The common area cannot be physically. The code in the common area is either duplicated in each bank if the entire program area is swapped or can be located in a separate area or EPROM if the common area is not swapped. The common area contains program sections and constants that must be available at all times. It may also contain frequently used code.
By default, the following code sections are automatically located in the common area:. When your C program calls a function located in a different bank, it switches the bank, jumps to the desired function, restores the previous bank when the function completes , and returns execution to the calling routine.
The bank switching process requires approximately 50 CPU cycles and consumes an additional 2 bytes of stack space. You can dramatically improve system performance by grouping interdependent functions in the same bank. Functions that are frequently invoked from multiple banks should be located in the common area. BL51 produces a MAP file extension.
Each input module and the library modules included in the application are listed. The overlay-map displays the structure of the program and the location of the bit and data segments of each function. Warning messages and error messages are listed at the end of the MAP file. Development Tools. Listing File Following is an example listing file generated by the assembler. Getting Started and Creating Applications Map File Following is an example listing file generated by BL BL51 displays the invocation line and the memory model.
The memory map 3 contains the usage of the physical memory. The A51 Assembler generates complete line number, symbol, and type. This allows exact display of program. A51 XREF. It is an endless.
A51 Macro Assembler
D. Assembler Differences