Dear Macro Assembler Customer,
This incremental update provides fixes for the problems
described below. In general, the problems
fixed are the ones most frequently reported to us. The next
full update of Macro Assembler will address other problems.
If you find any other problems with the Macro Assembler,
please contact us at (206) 454-2030. We are very interested
in tracking all problems found with MASM to ensure that they
are fixed in future releases. Your feedback is invaluable!
Sincerely,
System Languages Group
Microsoft Product Support Services
Problems Fixed in MASM 5.10a
o Modified alignment constraints for variables
allocated with the LOCAL directive.
Padding bytes are used to enforce the following
constraints:
Type Specifier Align Type
BYTE BYTE
WORD WORD
DWORD DWORD
FWORD WORD
QWORD DWORD
TBYTE WORD
Offset for local variables whose size is greater
than WORD is now correctly calculated.
o With /Zi, Codeview information is now generated
for all symbols defined with the LOCAL directive.
o The text macros for parameters and locals with the
PROC directive are generated with surrounding
parentheses. This aids in their correct
evaluation in expressions.
o USES clauses in PROC directives no longer
generates internal assembler errors.
o Open procedures no longer cause listing file
errors.
o SUBSTR can now be used with the same label as both
source and destination.
o EXTRN ABS when C language is specified prepends
name with an underscore.
o Parameter alignment in 32 bit mode has been
adjusted. 6 bytes were previously allocated for
the return address, but 8 bytes are pushed by the
calling program.
o 32 bit fixup records are now being output in 16
bit code segments.
o Unintentionally redefining a code label in a PROC
no longer causes the assembler to hang.
o MASM will now run in a VIO window under
Presentation Manager.
Problems Fixed in MASM 5.10a, Cont.
o .CONST now generates a 'CONST' class segment as
documented. Previously, it was generating class
'DATA'.
o /Z switch is no longer ignored after an include
file is processed.
o Can now mix / and \ in the command line source
file path specification, i.e.:
masm -t \masm/src/file.asm;
o Fixed GP fault on command line longer than 127
characters.
o Fixed bug which caused errors to be reported with
the wrong line numbers.
o Fixed a phase-error problem with:
MOV BX, forward-reference expression
o Fixed improper behavior when type missing on LABEL
directive.
o Real number initialization now works when .RADIX
16. Previously, a false "non-digit in number"
error was generated.
o Can now initialize a structure field to a segment
address. Previously, initializing a DD to a
segmentName generated an invalid object file.
o % operator no longer inconsistently causes "symbol
not defined" errors when used with text equates.
o Text macro expansions no longer cause GP faults.