Microsoft 64 bit MASM > MASM64 SDK

Feedback on masm64 Version 2 Beta.

(1/7) > >>

hutch--:
This is very close to being a release version, a new editor, examples tidied up, everything seems to work OK and I hope there are few if any errors. Feedback would be very useful to ensure it is all working OK.

jj2007:
Hi Hutch,

Your example at \Masm64\Examples\Simple\dlltest is slightly confusing: it seems not a dynamic load but rather a static link to a library.

Otherwise fine so far, everything works as expected except the print macro:

  print chr$("Hello World")


--- Code: ---00000001400010FF | FF15 DF100000          | call [<&WriteFile>]      |
0000000140001105 | 4C:8B75 88             | mov r14,[rbp-78]         |
0000000140001109 | 4C:8B7D 80             | mov r15,[rbp-80]         |
000000014000110D | 48:8B45 90             | mov rax,[rbp-70]         | [rbp-70]:"È€"
0000000140001111 | C9                     | leave                    |
0000000140001112 | C3                     | ret                      |
...
0000000140001120 | 4C:8BC9                | mov r9,rcx               |
0000000140001123 | 48:8BCA                | mov rcx,rdx              |
0000000140001126 | 4D:03C8                | add r9,r8                |
0000000140001129 | 48:C7C0 FFFFFFFF       | mov rax,FFFFFFFFFFFFFFFF |
0000000140001130 | 48:83C0 01             | add rax,1                |
0000000140001134 | 48:0FB61401            | movzx rdx,[rcx+rax]      | <<<<<<<<<<<<<<<<< chokes
0000000140001139 | 41:881401              | mov [r9+rax],dl          |
000000014000113D | 48:85D2                | test rdx,rdx             |
0000000140001140 | 75 EE                  | jne 140001130            |
0000000140001142 | 49:03C0                | add rax,r8               |
0000000140001145 | C3                     | ret                      |
--- End code ---

Digging deeper, I find this:

--- Code: ---mcat MACRO pbuff:REQ,args:VARARG
LOCAL acnt
acnt = argcount(args)
invoke szmulticat,pbuff,acnt,args
ENDM

print MACRO pmem:REQ,args:VARARG
ifnb <args>            ; *** my suggestion ***
mcat pmem, args
endif
invoke StdOut,pmem
ENDM
--- End code ---

It would be nice if \Masm64\help\MasmHelp.exe were searchable; so far, I couldn't find the print documentation.

hutch--:
Its in the macro file. As you can imagine, the documentation is a genuine joy to produce but for the library, there is the configured text browser. Macros have to be searched in the macro file.

As per the makeit.bat file,

\masm64\bin64\polink.exe /SUBSYSTEM:WINDOWS /ENTRY:entry_point /LARGEADDRESSAWARE %appname%.obj dll\test.lib

As you would be aware, a DLL can be either dynamically linked or statically linked.

jj2007:

--- Quote from: hutch-- on July 02, 2022, 09:31:29 PM ---Its in the macro file
--- End quote ---

That's where I found it. Still, a print "hello" works fine with the Masm32 SDK but will produce an access violation with the Masm64 SDK. N00bs might be put off by such behaviour...


--- Quote ---As per the makeit.bat file,

\masm64\bin64\polink.exe /SUBSYSTEM:WINDOWS /ENTRY:entry_point /LARGEADDRESSAWARE %appname%.obj dll\test.lib

As you would be aware, a DLL can be either dynamically linked or statically linked.
--- End quote ---

I know. However, test.lib doesn't sound like dynamically linked library, but I don't want to argue.

TimoVJL:

--- Quote from: hutch-- on July 02, 2022, 09:31:29 PM ---
\masm64\bin64\polink.exe /SUBSYSTEM:WINDOWS /ENTRY:entry_point /LARGEADDRESSAWARE %appname%.obj dll\test.lib

As you would be aware, a DLL can be either dynamically linked or statically linked.

--- End quote ---
with Win64 linking, linker option /LARGEADDRESSAWARE is useless.
dll can be used with run-time dynamic linking or with import library, and sometimes using COM interface.

Navigation

[0] Message Index

[#] Next page

Go to full version