Advertisement

Quick Links

STMicrolectronics
ST7 Assembler
Linker
UM0144
User manual
Rev 2
June 2005

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the ST7 Assembler Linker and is the answer not in the manual?

Questions and answers

Summary of Contents for STMicrolectronics ST7 Assembler Linker

  • Page 1 STMicrolectronics ST7 Assembler Linker UM0144 User manual Rev 2 June 2005...
  • Page 2 BLANK...
  • Page 3 UM0144 User Manual ST7 Assembler Linker Introduction Thanks for choosing ST7! This manual describes how to use the ST7 Assembler-Linker to develop applications for ST7 microcontrollers. The assembly tools described in this book form a development system that assembles, links and formats your source code.
  • Page 4 ST7 Assembler Linker Note: The utility file asli.bat automatically runs ASM, LYN, and OBSEND one after the other for you. Use this batch file only if you have only one assembly source file ".ASM". About the user manuals... This manual provides information about producing an application executable for ST7 from your application source code in Assembly language.
  • Page 5: Table Of Contents

    ST7 Assembler Linker Contents Getting Started ..........7 ST7 Addressing Modes .
  • Page 6 ST7 Assembler Linker Librarian ........... . 45 Overview .
  • Page 7: Getting Started

    ST7 Assembler Linker 1 Getting Started Getting Started Installing the ST7 Assembler-Linker The ST7 Assembler-Linker is delivered as part of the ST7 toolset. A free installation package is available at www.st.com/mcu. To install it: Select ST7>ST7 toolchain from the main menu of the “Microcontroller Development Tools”...
  • Page 8: St7 Addressing Modes

    ST7 Assembler Linker 2 ST7 Addressing Modes ST7 Addressing Modes Overview of ST7 addressing modes The ST7 assembler instruction set incorporates the following different addressing modes: Table 2. ST7 Addressing modes Instruction Set Addressing Mode Example Inherent Immediate ld A,#$F5...
  • Page 9: Short And Long Addressing Modes

    ST7 Assembler Linker 2 ST7 Addressing Modes Two-operand instructions are coded with destination operand appearing at first position. For example: lab01 ld A,memory ; load accumulator A with memory contents lab02 ld memory,A ; load memory location with A contents ld X,A ;...
  • Page 10: Immediate Operands

    ST7 Assembler Linker 2 ST7 Addressing Modes Immediate operands Immediate operands permit you to input a specific value for use with an instruction. They are signaled by the use of a sharp sign (#) before the value. Examples: lab08 A,#1 ;...
  • Page 11: Indexed Modes

    ST7 Assembler Linker 2 ST7 Addressing Modes Indexed modes The ST7 hardware supports four types of indexed mode: ● indexed without offset, ● indexed with a 8-bit unsigned offset (range [0 ,255]), ● indexed with a 16-bit offset, The source coding syntax is: (X) or (Y) for no-offset indexing.
  • Page 12 ST7 Assembler Linker 2 ST7 Addressing Modes Examples: lab12 $0012 A,#lab12.h ; load A with $00 A,#lab12.l ; load A with $12 For more information about each instruction and the various addressing modes, refer to the ST7 Programming Manual , which can be downloaded from the Internet at www.st.com/mcu.
  • Page 13: St7 Assembler

    ST7 Assembler Linker 3 ST7 Assembler ST7 Assembler Overview The ST7 Assembler program is a cross-assembler, meaning that it produces code for a target machine—an ST7 microprocessor—which is different from the host machine. The assembler turns your source code files into relocatable object modules ready for linking.
  • Page 14 ST7 Assembler Linker 3 ST7 Assembler For example: examp A,$ffff ; long addressing mode separator comments opcode label operand The next sections describe the main components of a source code file. 3.3.1 About labels Label structure Labels must start in column one. A label may contain up to 30 of any of the following characters: ●...
  • Page 15 ST7 Assembler Linker 3 ST7 Assembler For example: ; word-size label (default) equ 0 ; byte-size label label1.b equ 5 ; long label label2.l equ 123 segment byte at: 80 ‘ram’ ; force the size of the label to bytes ;...
  • Page 16 ST7 Assembler Linker 3 ST7 Assembler Label scope Often, in multi-module programs, a piece of code will need to refer to a label that is actually defined in another module. To do this, the module that exports the label must declare it PUBLIC, and the module which imports the label must declare it EXTERN.
  • Page 17 ST7 Assembler Linker 3 ST7 Assembler As a short cut, labels may be declared as PUBLIC by preceding them with a '.' at their definition. If this is done the label name need not be given in a PUBLIC directive. For example,...
  • Page 18 ST7 Assembler Linker 3 ST7 Assembler You can change the Motorola format representation by using directives (.INTEL, .TEXAS) to indicate the new setting format. For more information, refer to on page 48. Addresses for SEGMENT definition are always given in hexadecimal:...
  • Page 19 ST7 Assembler Linker 3 ST7 Assembler Up to 4 characters may be used within a single pair of quotes to give a long constant. The following special sequences are used to denote special characters: ‘\b’ backspace ‘\f’ formfeed ‘\n’ linefeed ‘\r’...
  • Page 20 ST7 Assembler Linker 3 ST7 Assembler Operators have 4 levels of precedence. Operators in level #1 (listed in Table 4 ) take precedence over operators in level #2 (listed in Table 5 ), and so on. In each level, operators have same precedence—they are evaluated from left to right.
  • Page 21 ST7 Assembler Linker 3 ST7 Assembler Table 7. Level 4 operators Operation Result, level #4 a minus b a plus b Operator names longer than one character must be followed by a space character. For example, '1 AND 2' is correct, '1AND2' is not.
  • Page 22: Segmentation

    ST7 Assembler Linker 3 ST7 Assembler segment word at: FFFC 'code' WORD start Don't worry if some directives don't make sense yet; they will be covered soon. Also, take special notice of the SEGMENT directive. Segmentation Segments are very important. You have to understand segments before you can use the assembler.
  • Page 23 ST7 Assembler Linker 3 ST7 Assembler FILE2: st7/ segment ‘RAM0’ serialtemp ds.b serialcou ds.b WORDS segment ‘eprom’ serial_in ld A,#0 In the preceding example, FILE1 and FILE2 are two separate modules belonging to the same program. FILE1 introduces two classes: 'RAM0' and 'eprom'. The class-names may be any names you choose up to 30 characters.
  • Page 24 ST7 Assembler Linker 3 ST7 Assembler Table 8. Alignment types Type Description Examples byte Any address word Next address on boundary 1001->1002 para Next address on 16-byte boundary 1001->1010 Next address on 64-byte boundary 1001->1040 Next address on 128-byte boundary 1001->1080...
  • Page 25 ST7 Assembler Linker 3 ST7 Assembler For example: st7/ dat1 segment byte at: 10 'DATA' ds.w com1 segment common 'DATA' .lab1 ds.w 4 com1 segment common 'DATA' .lab2 ds.w 2 com2 segment common 'DATA' .lab3 ds.w com2 segment common 'DATA' .lab4...
  • Page 26: Macros

    ST7 Assembler Linker 3 ST7 Assembler If one class is introduced with a [cod] field of 1, though, then all code produced under that class is sent instead to a file prog_1.cod. The code produced under the other classes is sent on as usual to prog.cod.
  • Page 27 ST7 Assembler Linker 3 ST7 Assembler The true use of macros is in small snippets of code that you use repeatedly— perhaps with different arguments—which can be formalized into a 'template' for the macros' definition. 3.5.1 Defining macros Macros are defined using three directives: MACRO, MEND and LOCAL.
  • Page 28 ST7 Assembler Linker 3 ST7 Assembler For example: getio MACRO LOCAL loop loop ld A,$C000 jra loop MEND This macro creates the code for a loop to await IO port at $C000 to go low. Without the LOCAL directive, the label 'loop' would be defined as many times as the macro is called, producing syntax errors at assembly time.
  • Page 29: Conditional Assembly

    ST7 Assembler Linker 3 ST7 Assembler Conditional assembly Conditional assembly is used to choose to ignore or select whole areas of assembler code. This is useful for generating different versions of a program by setting a particular variable in an INCLUDE file that forces the use of certain pieces of code instead of others.
  • Page 30: Running The Assembler

    ST7 Assembler Linker 3 ST7 Assembler As you can see, conditionals may be nested—the #ELSE and #ENDIF directive are assumed to apply to the most recent unterminated #IF. Table 12 Other special #IF directives are available as shown in Table 12.
  • Page 31 ST7 Assembler Linker 3 ST7 Assembler 3.7.2 About options Options are always preceded with a minus sign '-'. Upper and lower cases are accepted to define options. Supported options are listed in Table 13 Table 13. Command line options Option...
  • Page 32 ST7 Assembler Linker 3 ST7 Assembler OBJ option Description: You can specify the pathname for the generated .OBJ file, using the following option: Format: ASM <file> -obj=<pathname> Example: ASM prog -obj=obj\prog Forces the assembler to generate the object file obj\prog.obj.
  • Page 33 ST7 Assembler Linker 3 ST7 Assembler D option Description: option allows you to specify a string that is to be replaced by another during the assembly. A blank space or = is required between the string to be replaced and the replacement string.
  • Page 34 ST7 Assembler Linker 3 ST7 Assembler M option Description: The -M option tells the ST7 assembler to output a rule suitable for make, describing the dependencies to make an object file. For a given source file, the ST7 assembler outputs one make rule whose target is the object file name for that source file and whose dependencies are all the included (#include) source files and loaded (#load) binary files it uses.
  • Page 35: Linker

    ST7 Assembler Linker 4 Linker Linker What the linker does After having separately assembled all the component modules in your program, the next step is to link them together into a .COD file which can then be sent on to its final destination using OBSEND.
  • Page 36: Linking In Detail

    ST7 Assembler Linker 4 Linker Linking the same modules in the same environment, but generating a .cod file named prog.cod requires: LYN game+scores+keys+game1+game2+game3,prog; 4.3.1 Response files Response files are text files that replace the command line to generate the arguments required. Although they can be used on the assembler and linker, it only really makes sense to use them on the linker.
  • Page 37 ST7 Assembler Linker 4 Linker 4.4.2 Segments in the linker A typical system may look like the diagram alongside: a good candidate for four different segments, perhaps named 'RAM0', 'RAM1', 'EPROM' and 'ROM'. If the reset and interrupt vectors live at the end of the map, perhaps from FFEE-FFFF then we might mark a fifth segment called 'vectors' at those addresses and truncate 'ROM' to end at FFED;...
  • Page 38 ST7 Assembler Linker 4 Linker For example: grafix segment byte at: 100-027F 'RAM1' cursor_buf ds.b 64 ; buffer for map under cursor segment byte at: 8000-BFFF 'ROM' show_page segment 'RAM1' field-buf ds.b {{256 mult 256}/8} segment 'ROM' dump_buf ld A,field_buffer...
  • Page 39: The Linker In More Detail

    ST7 Assembler Linker 4 Linker each routine. Put another way, each link must have entry fixed points to all its routine, otherwise re-linking one 'lump' of a program could make references to its addresses in other modules out of date.
  • Page 40 ST7 Assembler Linker 4 Linker Segment Address List: prog [1] ‘RAM0' [void] prog [2] 100- 'RAM1' [void] main [1] 8000- 875B 'eprom' prog [4] 282- C000- C508 'rom' main [2] 568- 1456 C509- F578 'rom' monitor [1] F579- FFF9 'rom'...
  • Page 41: Obsend

    ST7 Assembler Linker 5 OBSEND OBSEND What OBSEND does for you After your program has been assembled and linked to form a '.COD' file it needs to be sent on to the place where it will be executed. Right now, your code is just stored as a file on a disk where the target system can't get at it.
  • Page 42 ST7 Assembler Linker 5 OBSEND 5.2.3 Format definitions <format> specifies the output format. Output format options are listed in Table 14 Table 14. Output formats Output Format <format> straight binary, i.e., a bit for bit image <none> Intel Hex Intel Hex with 32-byte data per line Intel Hex extended Motorola S-record (1 byte per address, e.g.
  • Page 43 ST7 Assembler Linker 5 OBSEND The first thing to note is that every thing is in printable ASCII. Eight bit numbers are converted into two-characters hexadecimal representation. Each line begins with an ASCII ':' ($3A) character. The next two characters form a byte that declares how many data bytes follow in the data byte section little further along.
  • Page 44 ST7 Assembler Linker 5 OBSEND including the byte count field until the checksum itself. In this context, 'real value' means the value of the byte before it is expanded into two ASCII characters. The record is concluded by a CR-LF combination $0A, $0D. The S0, S8 and S9 (i.e., header...
  • Page 45: Librarian

    ST7 Assembler Linker 6 Librarian Librarian Overview If you do a lot of work on similar boards especially those with the same processor, it makes a great deal of sense to reuse lumps of code you've already written to do the same task in a different program. At the simplest level, you could just copy the source code as a block of text into the new program.
  • Page 46: Adding Modules To A Library

    ST7 Assembler Linker 6 Librarian Table 15 Pressing ENTER gives you access to the options shown in Table 15. Library file options Operation Description add/update object module to/in library +filename delete object module from library -filename update object module in library...
  • Page 47: Copying Modules From A Library

    ST7 Assembler Linker 6 Librarian Copying modules from a library To make a copy of a .OBJ module located in a library back to your hard disk, use, for example: *board This will check the existence of board.obj in the current library, if not it'll report the failure and abort the operation prompt.
  • Page 48: Appendix A Assembler Directives

    ST7 Assembler Linker Appendix A Assembler Directives Introduction Each directive has been given a new section to itself, and an entry in the index. The name of the directive, which will always appear in the second field is given in the heading at the top of the section.
  • Page 49 ST7 Assembler Linker BYTE Purpose: Define byte in object code. Format: BYTE <exp or “string”>,[,<exp or “string”>...] Description: This directive forces the byte(s) in its argument list into the object code at the current address. The argument may be composed of complex expressions, which may even include external labels.
  • Page 50 ST7 Assembler Linker CEQU Purpose: Equate pre-existing label to expression. Format: label CEQU <exp> Description: This directive is similar to EQU, but allows to change the label's value. Used in macros and as counter for REPEAT / UNTIL. Example: lab1 CEQU {lab1+1} ;...
  • Page 51 ST7 Assembler Linker DC.B Purpose: Define byte(s) in object code. Format: DC.B <exp or "string">,[,<exp or "string">] Description: This directive forces the byte(s) in its argument list into the object code at the cur- rent address. The argument may be composed of complex expressions, which may even include external labels.
  • Page 52 ST7 Assembler Linker A.10 DC.L Purpose: Define long word(s) in object code. Format: DC.L <exp>[,<exp>...] Description: This directive forces the long word(s) argument list into the object code at the current address. The arguments may be composed of complex expressions, which may even include external labels.
  • Page 53 ST7 Assembler Linker A.12 DS.B Purpose: Define byte space in object code. Format: DS.B [optional number of bytes] Description: This directive is used to 'space out' label definitions. For example let's say we need a set of byte-sized temporary storage locations to be defined in RAM, starting at address $4000.
  • Page 54 ST7 Assembler Linker A.13 DS.W Purpose: Define word space in object code. Format: DS.W [optional number of words] Description: This directive is used to 'space out' label definitions. For example let's say we need a set of word-sized temporary storage locations to be defined in RAM, starting at address $4000.
  • Page 55 ST7 Assembler Linker A.14 DS.L Purpose: Define long space in object code. Format: DS.L [optional number of long words] Description: This directive is used to 'space out' label definitions. For example let's say we need a set of long-word-sized temporary storage locations to be defined in RAM, starting at address $4000.
  • Page 56 ST7 Assembler Linker A.16 EQU Purpose: Equate the label to expression. Format: label EQU <EXPRESSIONS> Description: Most labels created in a program are attached to a source code line that generates object code, and are used as a target for jumps or memory references. The rest are labels used as 'constants', used for example, to hold the IO port number for the sys- tem keyboard: a number that will remain constant throughout the program.
  • Page 57 ST7 Assembler Linker A.18 #ELSE Purpose: Conditional ELSE. Format: #ELSE Description: Forces execution of the statements until the next #ENDIF if the last #IF statement was found false or disables execution of the statements until the next #ENDIF if the last #IF statement was found true.
  • Page 58 ST7 Assembler Linker A.20 FCS Purpose: Form constant string. Format: FCS <"string"> |<bytes> [<“string”> |<bytes>]... Description: This directive works in the same way as the common STRING directive, except that the last character in any string argument has bit 7 (e.g. MSB) forced high. Numeric arguments in the same list are left untouched.
  • Page 59 ST7 Assembler Linker A.23 #IF Purpose: Start conditional assembly. Format: #IF <exp> Description: Sometimes it is necessary to have different versions of a program or macro. This can be achieved by completely SEPARATE programs / macros, but this solution has the associated problem that changes to any part of the program common to all the versions requires all of them being changed, which can be tedious.
  • Page 60 ST7 Assembler Linker A.25 #IF2 Purpose: Conditional on being in pass #2. Format: #IF2 Description: This directive works just like #IF except it has no argument and evaluates itself as true only if the assembler is on its second pass through the source code.
  • Page 61 ST7 Assembler Linker A.27 #IFIDN Purpose: Conditional on arguments being identical. Format: #IFIDN <arg-1> <arg-2> Description: This directive works just like #IF except it compares two strings separated by a space. If identical, the result is true. Example: check MACRO param1 #IFIDN param1 HELLO %OUT “Hello”...
  • Page 62 ST7 Assembler Linker A.29 #IFLAB Purpose: Conditional on argument being a label. Format: #IFLAB <arg> Description: This directive works just like #IF except it tests that its argument is a valid, pre- defined label. Example: check MACRO param1 #IFLAB param1 %OUT “LABEL”...
  • Page 63 ST7 Assembler Linker A.31 INTEL Purpose: Force Intel-style radix specifier. Format: INTEL Description: The Intel style: Hexadecimal 0ABh Octal 17o or 17q Binary 100b Decimal (default) Current program counter This directive forces the Intel format to be required during the assembly.
  • Page 64 ST7 Assembler Linker A.34 .LIST Purpose: Enable listing (default). Format: .LIST Description: This directive switches on the listing if a previous .NOLIST has disabled it. The -'pa' or -'li' options must also have been set from the command line to generate a listing.
  • Page 65 ST7 Assembler Linker A.36 LOCAL Purpose: Define labels as local to macro. Format: LOCAL <arg> Description: A macro that generates loop code gives rise to an assembly problem since the loop label would be defined as many times as the macro is called. The LOCAL directive enables you to overcome this difficulty.
  • Page 66 ST7 Assembler Linker A.38 LONGS Purpose: Default new label length long. Format: LONGS Description: When a label is defined, four SEPARATE attributes are defined with it: scope (inter- nally or externally defined), value (actual numerical value of the label), relativity (absolute or relative), and lastly, length (BYTE, WORD or LONG).
  • Page 67 ST7 Assembler Linker A.40 MEND Purpose: End of macro definition. Format: MEND Description: End of macro definition. Example: cmp16 MACRO first,second,result LOCAL trylow ld A,first add A,second cp A,#0 jreq trylow cpl A trylow ld result,A MEND See Also: MACRO A.41 MOTOROLA...
  • Page 68 ST7 Assembler Linker A.42 NEAR Purpose: Specifies to debuggers that the return address in the stack for functions using this directive is written over two bytes. Format: NEAR <"string"> Description: This directive is used with functions called by CALL or CALLR, whose return stack address spans two bytes.
  • Page 69 ST7 Assembler Linker A.45 %OUT Purpose: Output string to the console. Format: %OUT string Description: This directive prints its argument (which does not need to be enclosed in quotes) to the console. This directive does not generate assembly code or data.
  • Page 70 ST7 Assembler Linker A.48 REPEAT Purpose: Assembly-time loop initiator. Format: REPEAT Description: Used together with UNTIL to make assembly-time loops; it is useful for making tables etc. This directive should not be used within macros. Example: REPEAT See Also: CEQU, UNTIL A.49 .SALL...
  • Page 71 ST7 Assembler Linker A.50 SEGMENT Purpose: Start of new segment. Format: [<name>] SEGMENT <align> <combine> '<class>' [cod] Description: The SEGMENT directive is very important: every module in your program will need at least one. The <name> field may be up to 11 characters in length, and may include under- scores.
  • Page 72 ST7 Assembler Linker A.51 .SETDP Purpose: Set base address for direct page. Format: .SETDP <base address> Description: If you have used an ST7 processor, you'll be aware of its 'zero-page' or 'direct' addressing modes. These use addresses in the range 00..FF in shorter, faster instructions than the more general 0000..FFFF versions.
  • Page 73 ST7 Assembler Linker A.53 STRING Purpose: Define a byte-level string. Format: STRING <exp or “string”>,[,<exp or “string”>...] Description: This directive forces the byte(s) in its argument list into the object code at the current address. The arguments may be composed of complex expressions, which may even include external labels.
  • Page 74 ST7 Assembler Linker A.55 .TAB Purpose: Set listing field lengths. Format: .TAB <label>,<Opcode>,<operand>,<comment> Description: Sets the size of the four source code fields for listings. The defaults of 0, 8, 16, 24 are for 80-column printer; if yours can go wider, you need to tell the assembler using this directive.
  • Page 75 ST7 Assembler Linker A.57 TITLE Purpose: Define main title for listing. Format: TITLE “<Title string>” Description: The first fifty-nine characters of the argument (which must be enclosed in double- quotes) will be included on the first line of each page in a listing as the main title for the listing.
  • Page 76 ST7 Assembler Linker A.59 WORD Purpose: Define word in object code. Format: WORD <exp>[, <exp>...] Description: This directive forces the word(s) in its argument list into the object code at the cur- rent address. The arguments may be composed of complex expressions that may even include external labels.
  • Page 77 ST7 Assembler Linker A.61 .XALL Purpose: List only code producing macro lines. Format: .XALL Description: This directive forces a reduced listing of a macro expansion each time a macro is in- voked. Only those lines of the macro that generated object code are listed. This in- struction itself is not listed.
  • Page 78: Appendix B Error Messages

    ST7 Assembler Linker Appendix B Error Messages Format of error messages There are two classes of errors trapped by the assembler: fatal and recoverable. A fatal error stops the assembly there and then, returning you to the caller (which may or may not be DOS;...
  • Page 79 ST7 Assembler Linker This error should never occur; it implies you have a disk fault of some kind. After a #include, the assembler returns to the line after the #include itself. If it cannot return to that line this error is produced.
  • Page 80 ST7 Assembler Linker Run out of #define storage space (1) See Error 20. #define has no second argument #define requires a space between the two parts of its argument to delimit it. Run out of #define storage space (2) See Errors 20 and 21 above; you've reached the limit of the storage space set aside for the second argument of #defines.
  • Page 81 ST7 Assembler Linker No REPEAT for this UNTIL An UNTIL directive is found with no matching REPEAT directive. Couldn't return to old place in Source Similar to Error 3 but generated by UNTIL instead of #include. Syntax Error in SKIP arguments SKIP expects two numeric arguments, separated by a comma.
  • Page 82 ST7 Assembler Linker Can't match Addressing Mode This error is a catchall for the assembler if it cannot see anything wrong with your line but cannot match it to a known addressing mode either. There are two main causes of errors: significant ordering and numeric range errors. The significant ordering error is a simple typographical error: what should have been (val),y was coded as (valy, or whatever.
  • Page 83 ST7 Assembler Linker Currently Unknown Numeric type An error in your Tabgen File, or a corrupted .TAB file: the numeric handler was asked to check a number against an undefined numeric type. Are you using the latest version of ASM.EXE and your .TAB file? Improper Characters Unusual characters have been spotted in the source file, of value >127.
  • Page 84 ST7 Assembler Linker No string given on FCS line? FCS is used for defining strings. Why is there no string on this line? Did you intend that? If so, use DC.B or BYTE. Address not on WORD boundary For 68000 and certain other genuine 16-bit, Opcodes must be on word boundary. This error occurs if you have assembled an instruction at an odd address.
  • Page 85 ST7 Assembler Linker once throughout your code, do it there, and declare the result with its own public label. Then refer to these PUBLICs using simple EXTERNs in each module. 7, 19 Corrupted Object File Disk Nastiness. Reassemble. There may be an object code inconsistency: re-assemble all the files, and link again.
  • Page 86: Appendix C Revision History

    ST7 Assembler Linker Appendix C Revision History Date Revision Description of changes 1-Jul-2001 • Initial release 30-Jun-2005 • Updated Introduction Getting Started • Updated installation procedure • Added Revision History 86/92 UM0144...
  • Page 87: Appendix D Product Support

    ST7 Assembler Linker Appendix D Product Support If you experience any problems with this product, or contact the distributor or the STMicroelectronics sales office where you purchased the product. Phone numbers for major Contact List sales regions are provided in the , below.
  • Page 88 ST7 Assembler Linker Index attributes byte ................14 externally..............14 internally..............14 linker relative or absolute ..........14 long ................14 Symbols relativity ..............14, 15 scope..............14, 16 .asm ..................13 size................14 .cod ..............3, 25, 35, 41 word ................
  • Page 89 ST7 Assembler Linker DS.L ................55 Doubly Defined label ........... 81 DS.W................54 Empty file ..............78 END................55 EOF before line terminator.......... 79 EQU ................56 EOF while in Macro Definition........78 EXTERN............16, 36, 56 File capture Error ............79 FCS ................
  • Page 90 ST7 Assembler Linker expressions ................. 19 f ................... 42 extended S-record format ........... 44 g .................. 42 external label list ..............40 i ................... 42 i32 ................42 ix.................. 42 s .................. 42 x .................. 42 files Opcodes................17 asli.bat................4 Operands ................
  • Page 91 ST7 Assembler Linker SKIP aborted............... 81 software updates..............87 source files ................13 ST S-record................. 42 ST S-record format.............. 44 straight binary format ............42 string constants ..............18 suffixes .asm ................13 .cod ............. 3, 25, 35, 41 .fin ................3, 41 .lib................
  • Page 92 ST7 Assembler Linker nformation furnished is believed to be accurate and reliable. However, STMicroelectronics assumes no responsibility for the consequences of use of such information nor for any infringement of patents or other rights of third parties which may result from its use. No license is granted by implication or otherwise under any patent or patent rights of STMicroelectronics.

Table of Contents