LOCAL Directive Incorrect for Large Types

ID Number: Q32773

5.10 | 5.10

MS-DOS | OS/2

buglist5.10 fixlist5.10A

Summary:

The LOCAL directive allocates two bytes too few when applied to

data items with type larger than word.

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

The 5.10A MASM update is available as an applications note, from

Microsoft Product Support Services.

More Information:

The following source example demonstrates the problem:

.model large

.code

foo proc

local l1:byte

local l2:word

local l4:dword

local l6:fword

local l8:qword

local l10:tword

ret

foo endp

end

The listing file below illustrates the incorrect offsets generated:

L1 ........................ TEXT BYTE PTR [BP]-2

L10........................ TEXT TBYTE PTR [BP]-24

L2......................... TEXT WORD PTR [BP]-4

L4......................... TEXT DWORD PTR [BP]-6

L6......................... TEXT FWORD PTR [BP]-10

L8......................... TEXT QWORD PTR [BP]-16