First commit 06/07/1996
This commit is contained in:
		
							
								
								
									
										395
									
								
								E/ASM.DOC
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										395
									
								
								E/ASM.DOC
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,395 @@
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
                               THE ARROWSOFT ASSEMBLER
 | 
			
		||||
                                          
 | 
			
		||||
                             Public Domain Version 1.00D
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                                    User's Guide
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                                          
 | 
			
		||||
                 The Arrowsoft Assembler Program and Manual are both
 | 
			
		||||
                    Copyright (C) 1986 by Arrowsoft Systems, Inc.
 | 
			
		||||
                                554 West Sixth Avenue
 | 
			
		||||
                                 Larkview, MO  66069
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          Arrowsoft Assembler v1.00                            User's Guide
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                    INTRODUCTION
 | 
			
		||||
          
 | 
			
		||||
          Thank  you  for  trying  out  the  public  domain  version of our
 | 
			
		||||
 | 
			
		||||
          Arrowsoft Assembler.  We feel that the best way to alert you, the 
 | 
			
		||||
 | 
			
		||||
          programmer, to our fine line of professional products is  to  let
 | 
			
		||||
 | 
			
		||||
          you use one.  Once you have experienced the high quality and ease 
 | 
			
		||||
 | 
			
		||||
          of  use  of  this  free product, we hope that you will contact us
 | 
			
		||||
 | 
			
		||||
          regarding our other software (our address is on the cover of this 
 | 
			
		||||
 | 
			
		||||
          manual).  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          You will no doubt notice that this manual is not  exhaustive;  in
 | 
			
		||||
 | 
			
		||||
          fact,  it  includes  the  least  amount of information we felt we
 | 
			
		||||
 | 
			
		||||
          could include without robbing  the  program  of  its  usefulness.
 | 
			
		||||
 | 
			
		||||
          There  are  two reasons for the brevity of this manual: First, we
 | 
			
		||||
 | 
			
		||||
          have targeted professional software developers with our products, 
 | 
			
		||||
 | 
			
		||||
          and we suspect that an  experienced  professional  will  have  no
 | 
			
		||||
 | 
			
		||||
          trouble  figuring out how to use the Arrowsoft Assembler with the
 | 
			
		||||
 | 
			
		||||
          information given; second, the program is, after all, free and we 
 | 
			
		||||
 | 
			
		||||
          feel that the quality of this assembler will more that compensate 
 | 
			
		||||
 | 
			
		||||
          you for the time you spend learning to use it.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          Please note that this is NOT a supported product.  If you contact 
 | 
			
		||||
 | 
			
		||||
          us, we will be happy to discuss our line of software but we  will
 | 
			
		||||
 | 
			
		||||
          NOT answer questions about the Arrowsoft Assembler.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          Again, we thank you for giving our product a try.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          (NOTE: 'Microsoft' and 'Microsoft Macro Assembler' are trademarks 
 | 
			
		||||
 | 
			
		||||
          of  Microsoft  Corporation.  'Arrowsoft', 'Arrowsoft Professional
 | 
			
		||||
 | 
			
		||||
          Assembler' and 'Super Link' are trademarks of Arrowsoft  Systems,
 | 
			
		||||
 | 
			
		||||
          Inc.) 
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
                                      OVERVIEW
 | 
			
		||||
          
 | 
			
		||||
          The  Arrowsoft Assembler takes as its input 8086, 8088, 80186 and
 | 
			
		||||
 | 
			
		||||
          80286 assembly language source  files  and  produces  relocatable
 | 
			
		||||
 | 
			
		||||
          object  modules  which may be linked and run under the MS-DOS and
 | 
			
		||||
 | 
			
		||||
          PC-DOS operating systems.  The syntax of the  input  files  is  a
 | 
			
		||||
 | 
			
		||||
          superset  of  that  accepted  by  the  Microsoft  Macro Assembler
 | 
			
		||||
 | 
			
		||||
          (versions 3.0 and later).  In fact, most programs written for the 
 | 
			
		||||
 | 
			
		||||
          Microsoft product should assemble without modification  with  the
 | 
			
		||||
 | 
			
		||||
          Arrowsoft Assembler.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          The  remaining sections of this manual will cover, in this order,
 | 
			
		||||
 | 
			
		||||
          assembler command line options,  input  language  specifications,
 | 
			
		||||
 | 
			
		||||
          linking  and execution of assembled object modules, and assembler
 | 
			
		||||
 | 
			
		||||
          error messages.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
                          INVOKING THE ARROWSOFT ASSEMBLER
 | 
			
		||||
          
 | 
			
		||||
          You may run the Arrowsoft  Assembler  interactively  or  directly
 | 
			
		||||
 | 
			
		||||
          from the   DOS   command   line.      To   invoke  the  assembler
 | 
			
		||||
 | 
			
		||||
          interactively, simply type 
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                         -1-
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          Arrowsoft Assembler v1.00                            User's Guide
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                   asm
 | 
			
		||||
          
 | 
			
		||||
          at the DOS prompt and follow the ensuing instructions.    To  run
 | 
			
		||||
 | 
			
		||||
          the assembler non-interactively, use the following syntax: 
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
                   asm source [,object] [,list] [,xref] [options] [;]
 | 
			
		||||
          
 | 
			
		||||
          where  'source'  is  a  filespec  for  the  source  file (default
 | 
			
		||||
 | 
			
		||||
          extension .ASM), 'object' is  a  filespec  for  the  object  file
 | 
			
		||||
 | 
			
		||||
          (default  extension  .OBJ),  'list' is a filespec for the listing
 | 
			
		||||
 | 
			
		||||
          file (default extension .LST) and 'xref' is a  filespec  for  the
 | 
			
		||||
 | 
			
		||||
          cross-reference  file  (default  extension  .CRF).  Note that all
 | 
			
		||||
 | 
			
		||||
          filespecs may consist of a drive letter, a pathname,  a  filename
 | 
			
		||||
 | 
			
		||||
          and an  extension.    If  the  object  file is not specified, the
 | 
			
		||||
 | 
			
		||||
          assembler will use the source filename with the  .OBJ  extension.
 | 
			
		||||
 | 
			
		||||
          If  the  list  and  cross-reference  files are not specified, the
 | 
			
		||||
 | 
			
		||||
          assembler will not produce them.  Finally, the semicolon (;) will 
 | 
			
		||||
 | 
			
		||||
          force the assembler to assume default values for any  unspecified
 | 
			
		||||
 | 
			
		||||
          parameters.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
                                    OPTION CODES
 | 
			
		||||
          
 | 
			
		||||
          The options  list  consists of a sequence of option codes.  These
 | 
			
		||||
 | 
			
		||||
          option codes consist of a slash (/) or dash (-) followed  by  one
 | 
			
		||||
 | 
			
		||||
          or more letters, case being insignificant.  Most of these options 
 | 
			
		||||
 | 
			
		||||
          are compatible with Microsoft conventions.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
                   /A             Write segments in alphabetical order
 | 
			
		||||
                   /Bnumber       Set buffer size
 | 
			
		||||
                   /Dsymbol       Define assembler symbol
 | 
			
		||||
                   /E             Generate 8087/80287 emulator code
 | 
			
		||||
                   /Ipath         Set 'include' search path
 | 
			
		||||
                   /ML            Case sensitive internal labels
 | 
			
		||||
                   /MX            Case sensitive external and public labels
 | 
			
		||||
                   /MU            Convert labels to uppercase
 | 
			
		||||
                   /R             Generate 8087/80287 floating point code
 | 
			
		||||
                   /S             Write segments in source code order
 | 
			
		||||
                   /X             Include false conditionals in listing
 | 
			
		||||
                   /Z             Display error lines on screen
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          Many  of  these  command  line  options are self explanatory; for
 | 
			
		||||
 | 
			
		||||
          whose which aren't, see the descriptions below: 
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          /B Set Buffer Size 
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          Sets the size of the buffer used to hold the source  file  during
 | 
			
		||||
 | 
			
		||||
          assembly.   The  'number'  is the number of 1K pages reserved for
 | 
			
		||||
 | 
			
		||||
          use as a buffer.  You may  set  the  buffer  size  to  any  value
 | 
			
		||||
 | 
			
		||||
          between  1K  and  63K;  default  buffer  size is 32K. Note that a
 | 
			
		||||
 | 
			
		||||
          larger buffer can speed assembly of large files considerably.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          /E Generate 8087/80287 Emulator Code 
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                         -2-
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          Arrowsoft Assembler v1.00                            User's Guide
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          If you are writing programs for use with the  8087/80287  numeric
 | 
			
		||||
 | 
			
		||||
          processor on a machine which does not have the processor, and you 
 | 
			
		||||
 | 
			
		||||
          have  an  8087/80287  emulator  library  available, the /E option
 | 
			
		||||
 | 
			
		||||
          directs the assembler to generate code for the emulator.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          /I Set 'include' file search paths 
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          You may direct the assembler to search up to  5  directories  for
 | 
			
		||||
 | 
			
		||||
          'include'  files  by  including  a  '/Ipath'  command for EACH of
 | 
			
		||||
 | 
			
		||||
          them.  For example,  to  set  the  search  paths  '\bin\lib'  and
 | 
			
		||||
 | 
			
		||||
          '\asm\lib',   include   the   following  in  your  options  list:
 | 
			
		||||
 | 
			
		||||
          /I\bin\lib/I\asm\lib.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          /R 
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          This option directs the assembler to generate floating point code 
 | 
			
		||||
 | 
			
		||||
          for the  8087/80287  numeric  processor.    Note  that   programs
 | 
			
		||||
 | 
			
		||||
          assembled  with  the  '/R' option will run ONLY on machines which
 | 
			
		||||
 | 
			
		||||
          have an 8087/80287 installed.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
                             ARROWSOFT ASSEMBLY LANGUAGE
 | 
			
		||||
          
 | 
			
		||||
          As we mentioned earlier, the Arrowsoft  Assembly  Language  is  a
 | 
			
		||||
 | 
			
		||||
          superset of the well-known Microsoft Macro Assembler Language. We 
 | 
			
		||||
 | 
			
		||||
          modeled  our system after Microsoft's for two reasons: First, the
 | 
			
		||||
 | 
			
		||||
          language has a flexible and moderately powerful  macro  facility;
 | 
			
		||||
 | 
			
		||||
          second,  and for this public domain project most important, there
 | 
			
		||||
 | 
			
		||||
          is a plethora of third-party books which explain how  to  program
 | 
			
		||||
 | 
			
		||||
          using the  Microsoft product.  We recommend that you purchase one
 | 
			
		||||
 | 
			
		||||
          of these guides if  you  are  not  familiar  with  8086  assembly
 | 
			
		||||
 | 
			
		||||
          language.   If  you  would  like  to  take  advantage of the many
 | 
			
		||||
 | 
			
		||||
          extensions to the Microsoft Language we have implemented  in  the
 | 
			
		||||
 | 
			
		||||
          Arrowsoft Assembler, you must do one of two things: Try to figure 
 | 
			
		||||
 | 
			
		||||
          them  out  for  yourself  (using  experimentation, disassembly or
 | 
			
		||||
 | 
			
		||||
          anything else you can think of); or  you  can  contact  us  about
 | 
			
		||||
 | 
			
		||||
          purchasing  the  Arrowsoft Professional Assembler, which includes
 | 
			
		||||
 | 
			
		||||
          the complete documentation.  Again, please DO NOT CALL  us  about
 | 
			
		||||
 | 
			
		||||
          the  Arrowsoft  Assembler;  we  will  not answer any questions or
 | 
			
		||||
 | 
			
		||||
          provide clues as  to  how  to  access  the  assembler's  advanced
 | 
			
		||||
 | 
			
		||||
          features.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
                   LINKING AND EXECUTING ARROWSOFT OBJECT MODULES
 | 
			
		||||
          
 | 
			
		||||
          The Arrowsoft Assembler produces relocatable object modules which 
 | 
			
		||||
 | 
			
		||||
          are  compatible  with  the Microsoft 8086 Object Linker (versions
 | 
			
		||||
 | 
			
		||||
          3.0 and later).   This  means  that  programs  assembled  by  the
 | 
			
		||||
 | 
			
		||||
          Arrowsoft   Assembler   may   be   linked  with  other  Microsoft
 | 
			
		||||
 | 
			
		||||
          Linker-compatible programs  generated  by  other  assemblers  and
 | 
			
		||||
 | 
			
		||||
          compilers.   If  you  need  more  information  on  how to use the
 | 
			
		||||
 | 
			
		||||
          Microsoft 8086 Object Linker, see your DOS or Microsoft  language
 | 
			
		||||
 | 
			
		||||
          manual.  
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                         -3-
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          Arrowsoft Assembler v1.00                            User's Guide
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user