News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

A new version of ml with the new WDK ?

Started by ToutEnMasm, September 08, 2009, 09:33:16 AM

Previous topic - Next topic

ToutEnMasm


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 ?.

BlackVortex

Sad thing is, even if it's version 35.92083.4 , it's still gonna be bad for assembler programming.   :tdown

sinsi

Microsoft (R) Macro Assembler Version 9.00.30729.207
Light travels faster than sound, that's why some people seem bright until you hear them.

ToutEnMasm


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

japheth

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!

ToutEnMasm

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

Vortex

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

ToutEnMasm

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


????????????????????????????????????????????????


ToutEnMasm

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

hutch--

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.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

japheth

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.


ToutEnMasm


BOOLEAN is defined as follow in:
Quote
Microsoft Platform SDK for Windows XP SP2\Include\WinNT.h
line 749   : typedef BYTE  BOOLEAN;

ToutEnMasm


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.

japheth


> 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.

ToutEnMasm


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.