home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / 100UTILI / MASM.ZIP / README.DOC < prev    next >
Text File  |  1985-10-16  |  8KB  |  199 lines

  1.                                                 October 16, 1985
  2.  
  3.                 Microsoft Macro Assembler Package
  4.                           Version 4.00
  5.  
  6. ==( MASM.EXE )==================================================
  7.  
  8. New Feature 
  9.  
  10.     The following error message has been added to MASM: 
  11.  
  12.       102   Segment near (or at) 64K limit. 
  13.  
  14.     This is a warning, not a severe error, so the object module 
  15.     is not deleted.  It occurs when a code segment has grown to 
  16.     a large size (within 36 bytes of 64K) and is detected when 
  17.     the segment is closed with the ENDS directive.  It does not 
  18.     occur with data segments.  A code segment is a segment which 
  19.     contains at least one instruction.  
  20.  
  21. Clarification 
  22.  
  23.     The statements "DW ?" and "DW 1 DUP(?)" are not identical; 
  24.     they cause MASM to generate different object files.  The 
  25.     first form is "indeterminate," meaning MASM places the 
  26.     default value 0 in the object module.  The second form is 
  27.     "undefined," meaning MASM does not generate a value for the 
  28.     declaration in the object module.  The only indication that 
  29.     an undefined value has been processed is that records placed 
  30.     in the object module following the declaration have their 
  31.     offsets adjusted forward.  In most cases, the distinction is 
  32.     trivial, but in segments with the COMMON combine type, the 
  33.     distinction is very important.  
  34.  
  35.     Note that if two modules contain definitions for a variable, 
  36.     one with "?" and one with an explicit value, the variable in 
  37.     the executable file will have either 0 or the value, 
  38.     depending on the order of linking.  If the modules had 
  39.     "n dup (?)" and "n dup (m)" where n and m are numbers, the 
  40.     value would be "n dup (m)" regardless of the link order.  
  41.     When COMMON segments are involved, "1 dup (?)" should always 
  42.     be used instead of "?". 
  43.  
  44. Clarification
  45.  
  46.     The occurrence of square brackets ([]) in the address field 
  47.     of instructions indicates a memory reference only when at 
  48.     least one of the registers BX, BP, SI, or DI is contained in 
  49.     the brackets.  For all other purposes, the square brackets 
  50.     indicate addition.  For example, "mov ax,[bx]" moves the 
  51.     word to which BX points into AX, but "mov ax,[2]" moves the 
  52.     immediate value 2 into AX.  To generate a memory reference 
  53.     to an absolute offset, use "mov ax,ds:[2]".  Since DS is the 
  54.     default segment register for memory references, the segment 
  55.     override will not be put in the object file, but it does 
  56.     tell MASM that "[2]" is a memory reference, not an immediate 
  57.     value.  
  58.  
  59. Clarification 
  60.  
  61.     If neither the /R nor the /E option is used during assembly, 
  62.     MASM defaults to the Microsoft real number format.  See 
  63.     Chapter 2 of the Reference Manual for information on the 
  64.     syntax for declaring real numbers.  
  65.  
  66. Clarification 
  67.  
  68.     The definition of names on page 15 and 16 of the Reference 
  69.     Manual is incomplete.  A name is a sequence of characters 
  70.     consisting of letters, digits, and the following special 
  71.     characters: underscore (_), percent sign (%), question mark 
  72.     (?), dollar sign ($), at sign (@), or period (.).  These 
  73.     limitations apply: 
  74.  
  75.          o  A name cannot begin with digit, though a digit can 
  76.             be imbedded (sym1 but not 1sym).  
  77.  
  78.          o  A name may begin with a period, but cannot have an 
  79.             imbedded period (.sym1 but not sym.1). 
  80.  
  81.          o  A name cannot correspond to a reserved word or 
  82.             symbol (for example, AX, ?, $, mov, and PAGE are 
  83.             illegal).  
  84.  
  85. Correction
  86.  
  87.     The description for assembler error 49, "Illegal use of 
  88.     register," should read: 
  89.  
  90.       Use of a register with an instruction where no valid 
  91.       register is possible.  
  92.  
  93. ==( SYMDEB.EXE )================================================
  94.  
  95. Clarification
  96.  
  97.     The WO and BY operators in expressions assume DS as the 
  98.     segment; the BP and SP registers in expressions assume SS as 
  99.     the segment.  
  100.  
  101. Clarification
  102.  
  103.     The MS-DOS terminate function (4Ch) will terminate SYMDEB 
  104.     and return to MS-DOS if you use the Assemble command (A) to 
  105.     assemble the function call, and then try to execute it from 
  106.     inside SYMDEB.  This is because SYMDEB executes the function 
  107.     directly instead of executing the program containing the 
  108.     function.  
  109.  
  110.     For example, if you assemble the sample program BELL.COM 
  111.     shown on page 102 of the User's Guide, and then execute it 
  112.     from inside the debugger, SYMDEB will terminate.  However, 
  113.     if you save the program (as shown on page 162 of the User's 
  114.     Guide), then restart with BELL.COM as the executable file, 
  115.     SYMDEB will execute the program without terminating.  
  116.  
  117. Clarification
  118.  
  119.     Microsoft reserves certain software interrupts for special
  120.     uses.  SYMDEB understands some of these special uses, and
  121.     interprets surrounding bytes as data for the interrupts.
  122.     If you use a reserved interrupt value, you should be aware
  123.     that SYMDEB may disassemble nearby code based on its
  124.     special understanding of the use of that interrupt.
  125.  
  126. Clarification
  127.  
  128.     When using the Breakpoint Set command (BP), the optional 
  129.     quoted command string cannot exceed 29 characters.  
  130.  
  131. ==( MAPSYM.EXE )================================================
  132.  
  133. Clarification 
  134.  
  135.     Mapsym has a limitation of 10,000 source lines per source 
  136.     file.  If your source file has more than 10,000 source 
  137.     lines, MAPSYM will truncate the number of lines that go into 
  138.     the symbol (.SYM) file to 10,000.  If you require the source 
  139.     line information, break the source file into two or more 
  140.     parts.  
  141.  
  142. ==( MAKE.EXE )==================================================
  143.  
  144. Correction 
  145.  
  146.     In the description of MAKE inference rules on page 210 of 
  147.     the User's Guide, the order of the target and dependent 
  148.     extensions is reversed in both the syntax description and 
  149.     the example.  
  150.  
  151.     The syntax description should read:
  152.  
  153.       .dependentextension.targetextension:
  154.             command1
  155.             [command2]
  156.             .
  157.             .
  158.             .
  159.  
  160.     The sample description file at the bottom of the page should 
  161.     read: 
  162.  
  163.       .asm.obj:
  164.             MASM $*.asm,,;
  165.  
  166.       test1.obj: test1.asm
  167.  
  168.       test2.obj: test2.asm
  169.             MASM test2.asm;
  170.  
  171.     Note that the syntax for inference rules (dependent 
  172.     extension given first) is different than the syntax for 
  173.     target/dependent descriptions (target file given first).  
  174.  
  175. ==( General Information )=======================================
  176.  
  177.     When reporting problems with any program in the Macro 
  178.     Assembler package, please provide the following information 
  179.     to help us in tracking down the problem:
  180.  
  181.       o  The program version number from the logo that is 
  182.          printed out when you invoke the program 
  183.  
  184.       o  The version of DOS you are running (use the DOS VER 
  185.          command) 
  186.  
  187.       o  Your system configuration (your machine, total memory, 
  188.          total free memory at execution time, etc.) 
  189.  
  190.       o  The command line, responses to prompts, or response 
  191.          file used to invoke the program 
  192.  
  193.       o  Appropriate source, include, listing, library, or map 
  194.          files for the program you were working on when the 
  195.          problem occurred
  196.  
  197.     Please use the Software Problem Report at the back of the 
  198.     manual to send the information to Microsoft.  
  199.