News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

HJWasm Releases

Started by johnsa, January 16, 2016, 08:24:52 AM

Previous topic - Next topic

johnsa

Hi all,

With a big thanks to Habran for his immense efforts I'd like to share with you all the release of HJWasm 2.13pre.

There is a huge list of new features and improvements over JWasm and previous interim HJWasm posts:


  • Added support for AVX512F, ZMM registers and EVEX encoding.
  • RIP register support.
  • .FOR high level macro support and enhancements.
  • MOVQ and VMOVQ to supplement MOVD and bring instructions in line with Intel and AMD reference guides.
  • Fixed bug requiring the use of xmmword ptr and ymmword ptr.
  • Additional unsigned flag comparison predicates added for HLL syntax (ABOVE,BELOW)
  • Removed warnings relating to alignment by 32 (as this is a requirement for AVX vectors), leads to clean builds.
  • New instructions added: RDRAND, RDSEED, F16C(VCVTPH2PS, VCVTPS2PH)
  • VEX encoded general purpose instructions added ANDN, MULX, FMA, BMI and more...
  • Support for more optimised stack and invoke usage as well as stack alignment and RSP stack base.

http://www.terraspace.co.uk/hjwasm.html is the new home for binary image downloads, as well as a home for h2incx and wininc.
Source code will be available and maintained in a git repo on bitbucket once all feedback and testing is complete and we're satisfied the version is completely stable.

Enjoy!
John / Habran

fearless


Grincheux

Thanks for your job and thanks to share it.
This morning I replaced JWasm with he new HJWasm64 version.
Yestirday I had no error when compiling,
This morning it gaves errors for the following include files :
Quoteindows.inc

SECURITY_NULL_SID_AUTHORITY equ {0,0,0,0,0,0}
SECURITY_WORLD_SID_AUTHORITY equ {0,0,0,0,0,1}
SECURITY_LOCAL_SID_AUTHORITY equ {0,0,0,0,0,2}
SECURITY_CREATOR_SID_AUTHORITY equ {0,0,0,0,0,3}
SECURITY_NON_UNIQUE_AUTHORITY equ {0,0,0,0,0,4}
SECURITY_CREATOR_OWNER_SERVER_RID equ (00000002h)
SECURITY_CREATOR_GROUP_SERVER_RID equ (00000003h)
SECURITY_NT_AUTHORITY equ {0,0,0,0,0,5}   
SYSTEM_LUID equ { 3E7h, 0h }
ANONYMOUS_LOGON_LUID equ { 3e6h, 0h }
Winextra.inc
MAPI_ONE_OFF_UID equ { 81h, 2bh, 1fh, 0a4h, 0beh, 0a3h, 10h, 19h,09dh, 6eh, 0h, 0ddh, 01h, 0fh, 54h, 02h }
MAPI_ONE_OFF_UID equ { 81h, 2bh, 1fh, 0a4h, 0beh, 0a3h, 10h, 19h,09dh, 6eh, 0h, 0ddh, 01h, 0fh, 54h, 02h }

My command line :

QuoteC:\JWasm\Bin\JWASM.EXE -9 -Fl -c -zlf -zlp -zls -W3 -coff -Cp -nologo /I"C:\JWasm\Include" "ASD.asm"

I transformed the line to comment and no problem but there is work for you I think.

Merci beaucoup
Kenavo (Bye)
----------------------
Help me if you can, I'm feeling down...

habran

Thanks for reporting Grincheux  :t
It happened because of EVEX {sae}
Fixed version will be uploaded in a few hours

Please test it :biggrin:
Cod-Father

jj2007

Builds fine with (almost) all assemblers ;)

include \masm32\include\masm32rt.inc ; plain Masm32 for the fans of pure assembler

.code
minput MOUSEINPUT <>

start: print "Hello World"
exit

end start

Grincheux

QuoteC:\JWasm\Bin\JWASM.EXE -9 -Fl -c -zlf -zlp -zls -W3 -coff -Cp -nologo /I"C:\JWasm\Include" "ASD.asm"

***********
ASCII build
***********

\masm32\include\Windows.inc(20234) : Error A2209: Syntax error: 0,0,0,0,0,0
\masm32\include\Windows.inc(20234): Included by
  ASD.inc(3): Included by
   ASD.asm(6): Main line code
\masm32\include\Windows.inc(20235) : Error A2209: Syntax error: 0,0,0,0,0,1
\masm32\include\Windows.inc(20235): Included by
  ASD.inc(3): Included by
   ASD.asm(6): Main line code
\masm32\include\Windows.inc(20236) : Error A2209: Syntax error: 0,0,0,0,0,2
\masm32\include\Windows.inc(20236): Included by
  ASD.inc(3): Included by
   ASD.asm(6): Main line code
\masm32\include\Windows.inc(20237) : Error A2209: Syntax error: 0,0,0,0,0,3
\masm32\include\Windows.inc(20237): Included by
  ASD.inc(3): Included by
   ASD.asm(6): Main line code
\masm32\include\Windows.inc(20238) : Error A2209: Syntax error: 0,0,0,0,0,4
\masm32\include\Windows.inc(20238): Included by
  ASD.inc(3): Included by
   ASD.asm(6): Main line code
\masm32\include\Windows.inc(20241) : Error A2209: Syntax error: 0,0,0,0,0,5
\masm32\include\Windows.inc(20241): Included by
  ASD.inc(3): Included by
   ASD.asm(6): Main line code
\masm32\include\Windows.inc(20254) : Error A2209: Syntax error:  3E7h, 0h
\masm32\include\Windows.inc(20254): Included by
  ASD.inc(3): Included by
   ASD.asm(6): Main line code
\masm32\include\Windows.inc(20255) : Error A2209: Syntax error:  3e6h, 0h
\masm32\include\Windows.inc(20255): Included by
  ASD.inc(3): Included by
   ASD.asm(6): Main line code
\masm32\include\winextra.inc(3959) : Error A2209: Syntax error:  81h, 2bh, 1fh, 0a4h, 0beh, 0a3h, 10h, 19h,09dh, 6eh, 0h, 0ddh, 01h, 0fh, 54h, 02h
\masm32\include\winextra.inc(3959): Included by
  \masm32\include\Windows.inc(26889): Included by
   ASD.inc(3): Included by
    ASD.asm(6): Main line code
\masm32\include\winextra.inc(4111) : Error A2209: Syntax error: 098h, 15h, 0ACh, 08h, 0AAh, 0B0h, 10h, 1Ah,8Ch, 093h, 08h, 0h, 2Bh, 2Ah, 56h, 0C2h
\masm32\include\winextra.inc(4111): Included by
  \masm32\include\Windows.inc(26889): Included by
   ASD.inc(3): Included by
    ASD.asm(6): Main line code
Utils.asm(86) : Warning A4265: Procedure argument or local not referenced: _hWnd
Utils.asm(86): Included by
  ASD.inc(97): Included by
   ASD.asm(6): Main line code
Disassembly_Dlg.asm(43) : Warning A4265: Procedure argument or local not referenced: __hWnd
Disassembly_Dlg.asm(43): Included by
  ASD.inc(99): Included by
   ASD.asm(6): Main line code
Disassembly_Dlg.asm(100) : Warning A4265: Procedure argument or local not referenced: __lParam
Disassembly_Dlg.asm(100): Included by
  ASD.inc(99): Included by
   ASD.asm(6): Main line code
Disassembly_Dlg.asm(109) : Warning A4265: Procedure argument or local not referenced: _szTmp
Disassembly_Dlg.asm(109): Included by
  ASD.inc(99): Included by
   ASD.asm(6): Main line code
ASD.asm(315) : Warning A4265: Procedure argument or local not referenced: __cmdshow
ASD.asm(315) : Warning A4265: Procedure argument or local not referenced: __lpszCmdline
ASD.asm(315) : Warning A4265: Procedure argument or local not referenced: __hPrevInstance
ASD.asm: 353 lines, 1 passes, 203 ms, 7 warnings, 10 errors

Make error(s) occured.
Total compile time 312 ms
Kenavo (Bye)
----------------------
Help me if you can, I'm feeling down...

johnsa

Hi,

New binaries are uploaded onto the site which include the fix for types declared with { }

Regards,
John

johnsa

Hi,

Binary packages have been updated again and the "pre" status removed. From our testing all appears to be in order but we shall await the final feedback from users / forum members to confirm that we're all happy with this release. Upon this milestone we will publish all source code and update the Git repository and supply relevant links / updated docs.

Cheers!
John

jj2007

Same as before with version 19 January.

Quote from: jj2007 on January 16, 2016, 09:58:25 PM
Builds fine with (almost) all assemblers ;)

include \masm32\include\masm32rt.inc ; plain Masm32 for the fans of pure assembler

.code
minput MOUSEINPUT <>

start: print "Hello World"
exit

end start


The problem is here, and it's a known problem. Of course, it's not a problem if you can convince several hundred forum members to modify their Windows.inc, and adjust their existing sources (4,000+ in my case) accordingly  ;)

line 12948:
MOUSEINPUT STRUCT
   _dx                    DWORD ?
   dy                     DWORD ?
   mouseData              DWORD ?
   dwFlags                DWORD ?
   time                   DWORD ?
   dwExtraInfo            DWORD ?
MOUSEINPUT ENDS

line 19062:
NMLVSCROLL STRUCT
   hdr                    NMHDR <>
   _dx                    DWORD ?
   dy                     DWORD ?
NMLVSCROLL ENDS

nidud

#9
deleted

johnsa

I've just double checked the archive and dumpbin'ed the executable image:


D:\HJWasm\hjwasm213_x86>hjwasm32
HJWasm v2.13.32bit., Jan 17 2016, Masm-compatible assembler.
Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.

usage: HJWasm [ options ] filelist [@env_var]
Run "HJWasm -?" or "HJWasm -h" for more info

D:\HJWasm\hjwasm213_x86>dumpbin -headers hjwasm32.exe
Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file hjwasm32.exe

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
             14C machine (x86)
               5 number of sections
        569B245E time date stamp Sun Jan 17 05:19:26 2016
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
             102 characteristics
                   Executable
                   32 bit word machine

OPTIONAL HEADER VALUES
             10B magic # (PE32)
           12.00 linker version
           4F200 size of code
           2D200 size of initialized data
               0 size of uninitialized data
           41D81 entry point (00441D81)
            1000 base of code
           51000 base of data
          400000 image base (00400000 to 00480FFF)
            1000 section alignment
             200 file alignment
            6.00 operating system version
            0.00 image version
            6.00 subsystem version
               0 Win32 version


Could it be antivirus possibly? Which version of Windows are you running?

Grincheux

mov Byte Ptr [1234h],cl

QuoteError A2049: Invalid instruction operands

But this one
Quotemov cl,Byte Ptr [1234h]
is OK!

I don't understand why?
Kenavo (Bye)
----------------------
Help me if you can, I'm feeling down...

johnsa

Habran could you check out the dy issue again,

It shouldn't cause a problem anymore JJ2007, we had agreed to remove that (based on a previous thread) in favour of using equates if required. So it might just have been missed somewhere, we'll sort it out :)

johnsa

Quote from: Grincheux on January 20, 2016, 02:44:37 AM
mov Byte Ptr [1234h],cl

QuoteError A2049: Invalid instruction operands

But this one
Quotemov cl,Byte Ptr [1234h]
is OK!

I don't understand why?

Is this in a 32bit or 64bit application?

nidud

#14
deleted