Proc Directive with Uses Option and Nine Registers

ID Number: Q35214

5.10 | 5.10

MS-DOS | OS/2

buglist5.10

Summary:

The assembler fragment (for MASM Version 5.10) below displays two

problems when assembled.

The problem seems to be the use of more than eight registers in a

"proc uses" clause.

A workaround for this problem is to specify only eight registers in

the uses option and include in your procedure the pushes and pops for

any other registers to be saved.

Microsoft has confirmed this to be a problem in Version 5.10. We are

researching this problem and will post new information as it becomes

available.

More Information:

The following assembler fragment demonstrates this problem:

foo proc uses ax bx cx dx ds cs ss bp

foo endp

end

When assembled as is, MASM returns an out of memory error:

Microsoft Ò Macro Assembler Version 5.10

Copyright Ó Microsoft Corp 1981, 1988. All rights reserved.

masm.err(12): Out of memory

When assembled as a part of the complete module, it returns the error:

Microsoft Ò Macro Assembler Version 5.10

Copyright Ó Microsoft Corp 1981, 1988. All rights reserved.

rd.ASM(84): warning A4016: Reserved word used as symbol: BP

rd.ASM(89): error A2009: Symbol not defined: BP(ASCII 016)

47898 Bytes symbol space free

1 Warning Errors

1 Severe Errors