ID Number: Q40292
5.00
MS-DOS
buglist5.00
Summary:
The include file, mixed.inc, in Microsoft Macro Assembler Version 5.00
provides the definitions of the high-level-language interface macros.
The macro "pushReg" is defined in the same file and used internally by
other macros such as "hProc" to save registers during the
initialization of a procedure. "pushReg" is defined to push the
maximum of six registers. When "hProc" is called in an assembly
program with the number of registers to be saved is more than six, the
assembled code only saves the first six registers.
More Information:
The following is an example:
INCLUDE mixed.inc
.model small
.data
.code
hProc _proc1, <USES ax bx cx dx si di bp ds es>
; only ax, bx, cx, dx, si, di are pushed onto stack.
......
hRet ; only pop six registers.
hEndp
end
To save more than six registers when initializing a procedure, the
include file mixed.inc should be modified as follows.
The following is the original version:
.....
pushReg macro use,b,c,d,e,f,g
regPushed equ <>
irp reg, <b,c,d,e,f,g>
.....
The following is the modified version:
.....
pushReg macro use,b,c,d,e,f,g,h,i,j,k,l,m
regPushed equ <>
irp reg, <b,c,d,e,f,g,h,i,j,k,l,m>
......
The modified macro "pushReg" can push the maximum of 11 registers. All
the pushed registers will be popped upon exit from the procedure.
More Information:
The include file mixed.inc is in the directory "mixed" in disk 1 of
the Microsoft Macro Assembler Version 5.00. The file mixed.doc in the
same directory contains specific information for using the
High-Level-Language Interface Macros.
There are considerable changes on those macros from MASM Version 5.00
to 5.10. Please refer to the file mixed.doc contained within the MASM
Version 5.10 package for more specific information.