There is a new version of the wdk here.
http://www.microsoft.com/downloads/details.aspx?FamilyID=2105564e-1a9a-4bf4-8d74-ec5b52da3d00&displaylang=en
He is really bigger than the last one.
perhaps someone can have a look at it to see the ml version he have on it ?.
Sad thing is, even if it's version 35.92083.4 , it's still gonna be bad for assembler programming. :tdown
Microsoft (R) Macro Assembler Version 9.00.30729.207
Thanks for answer ,it's new (too bigger for me to download).
Stay to know if it have less internal error than the 9.00.30729.01 downloadable here.
http://d01.megashares.com/?d01=2552924
Quote from: ToutEnMasm on September 08, 2009, 01:34:32 PM
Thanks for answer ,it's new (too bigger for me to download).
Stay to know if it have less internal error than the 9.00.30729.01 ...
Could you tell a bit more details about those "internal errors", please!
Quote
Could you tell a bit more details about those "internal errors", please!
OK,I explain.
In header files Internal structures and unions are allowed,but in some files those provided an internal error of ml depending of the used version of ml .6.15 have the less internal errors.
As a sample , in winioctl.h , some unions must be extracted of the structure as follow.
Quote
;winioctl.sdk internal error
EXPORT_PARTITION_INFORMATION_EX UNION
Mbr PARTITION_INFORMATION_MBR <>
Gpt PARTITION_INFORMATION_GPT <>
EXPORT_PARTITION_INFORMATION_EX ENDS
PARTITION_INFORMATION_EX STRUCT
PartitionStyle DWORD ?
StartingOffset LARGE_INTEGER <>
PartitionLength LARGE_INTEGER <>
PartitionNumber DWORD ?
RewritePartition BYTE ?
export_union EXPORT_PARTITION_INFORMATION_EX <>
PARTITION_INFORMATION_EX ENDS
EXPORT_DRIVE_LAYOUT_INFORMATION_EX UNION
Mbr DRIVE_LAYOUT_INFORMATION_MBR <>
Gpt DRIVE_LAYOUT_INFORMATION_GPT <>
EXPORT_DRIVE_LAYOUT_INFORMATION_EX ENDS
DRIVE_LAYOUT_INFORMATION_EX STRUCT
PartitionStyle DWORD ?
PartitionCount DWORD ?
export_union EXPORT_DRIVE_LAYOUT_INFORMATION_EX <>
;union
;Mbr DRIVE_LAYOUT_INFORMATION_MBR <>
;Gpt DRIVE_LAYOUT_INFORMATION_GPT <>
;ENDS
PartitionEntry PARTITION_INFORMATION_EX 1 dup (<>)
DRIVE_LAYOUT_INFORMATION_EX ENDS
This source couldn't be compiled with ml 9
http://www.masm32.com/board/index.php?topic=11637.msg87596#msg87596
Hi ToutEnMasm,
There is a newer version shipped with Visual Studio 2010 Professional :
Microsoft (R) Macro Assembler Version 10.00.20506.01
Running Visual Studio 2010 Professional Beta 1 development tools on Windows XP (http://www.masm32.com/board/index.php?topic=11599.0)
Hello,
After a big download,I have tested ml 10 on the source code given in the upper link.
Quote
ml.exe /Zp4 talkback.asm
F:\talkback
Assembling: talkback.asm
MASM : fatal error A1016: Internal error
Version 10.00.20506.01
ExceptionCode = C0000005
ExceptionFlags = 00000000
ExceptionAddress = 00422D1F (00400000) "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\ml.exe"
NumberParameters = 00000002
ExceptionInformation[ 0] = 00000000
ExceptionInformation[ 1] = 038E0004
CONTEXT:
Eax = 0045167C Esp = 0012F648
Ebx = 0012F7F4 Ebp = 0012F988
Ecx = 00C8687D Esi = 038E0004
Edx = 00000001 Edi = 0012F664
Eip = 00422D1F EFlags = 00010202
SegCs = 0000001B SegDs = 00000023
SegSs = 00000023 SegEs = 00000023
SegFs = 0000003B SegGs = 00000000
Dr0 = 00000000 Dr3 = 00000000
Dr1 = 00000000 Dr6 = 00000000
Dr2 = 00000000 Dr7 = 00000000
????????????????????????????????????????????????
I have made the same test with the ml provided by the new WDK,it's OK.
the Microsoft (R) Macro Assembler Version 9.00.30729.207 seems better than ml 10.
Tests have been made on this machine
Quote
Intel(R) Celeron(R) CPU 2.80GHz
Microsoft Windows XP Professional Build Service Pack 3 2600
It would be interesting to see what it has spat the dummy on. I wonder if the code could be selectively commented to find out what it crashes on.
Quote from: hutch-- on September 09, 2009, 08:48:50 AM
It would be interesting to see what it has spat the dummy on. I wonder if the code could be selectively commented to find out what it crashes on.
I didn't test, but Masm always had (has?) problems if it must align an embedded struct. This part
RewritePartition BYTE ?
export_union EXPORT_PARTITION_INFORMATION_EX <>
seems the critical one. Btw, the C counterpart is
BOOLEAN RewritePartition;
union {
PARTITION_INFORMATION_MBR Mbr;
PARTITION_INFORMATION_GPT Gpt;
and, AFAIR, BOOLEAN is a DWORD in the Win32 API. So the ASM definition seems to be wrong.
BOOLEAN is defined as follow in:
Quote
Microsoft Platform SDK for Windows XP SP2\Include\WinNT.h
line 749 : typedef BYTE BOOLEAN;
Here is two files to made tests.
It's an extract (enough short) of the winioctl.h and is translate.
The translate can be added to any source code.
> Liine 749 : typedef BYTE BOOLEAN;
Ok, BOOLEAN is a byte.
OT: But then there are some alignment problems with this STRUCT, because when I display the size of PARTITION_INFORMATION_EX in a C program, it tells it is 144. For assembly, the size is shorter.
Later,
I used the Version 10.00.30319.01 (Vc++ 10 express) from a few days and those defaults have disappeared.
I still have Internals errors with incompatible debug libraries and bad use of reserved words (GROUP).
This will be perhaps corrected in the next version.