News:

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

New specs for ML64

Started by hutch--, April 19, 2005, 02:59:31 AM

Previous topic - Next topic

hutch--

With thanks to mistronr1 for posting the link in the win32asm forum, here is some later specifications for the new version of ML64.

http://msdn2.microsoft.com/library/xw102cyh(en-us,vs.80).aspx

It REAL DOES pay to pass feedback back to the development team as this is a more powerful version that has PROC and INVOKE built into it.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

MichaelW

I can't find any clear statement that INVOKE is supported. The PROC page states that INVOKE can be used, but the linked INVOKE page does not contain '64' anywhere. There is a note that the PROC directive has been updated, but given the previous "excuses" for not supporting INVOKE, it seems likely that it would also require updating (unless, of course, they were just excuses :bg ), and there is no mention of this.
eschew obfuscation

hutch--

Michael,

I just clicked on the PROC link on the page for the following.

PROC

Marks start and end of a procedure block called label. The statements in the block can be called with the CALL instruction or INVOKE directive.

INVOKE

Calls the procedure at the address given by expression, passing the arguments on the stack or in registers according to the standard calling conventions of the language type.

INVOKE expression [[, arguments]]

Remarks

Each argument passed to the procedure may be an expression, a register pair, or an address expression (an expression preceded by ADDR).
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

Ghirai

MASM32 Project/RadASM mirror - http://ghirai.com/hutch/mmi.html

Vortex

At the end, they are convinced to support invoke  :U

hutch--

Here is a PDF set of specifications on the AMD64 processors.

http://www.amd.com/us-en/assets/content_type/DownloadableAssets/dwamd_AMD64_Porting_FAQ.pdf

Among the interesting things is that with the exclusion of x87 floating point code the sse maths capacity has been enhanced to ensure the accuracy so that al maths operations are done in 64 bit sse. I don't know if it handles the 80 bit fp with a replacement but as sse can handle 128 bit, this may be the case.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

Bieb

Not sure I like this.  Proc and Invoke are useful, no doubt, but not too difficult to replace with pneumonics.  .IF is what we really need.  Any one up for handling Windows messages with CMP's and Jx's? :eek

Mark Jones

I saw a piece of Hutch's code somewhere which used SWITCH and BREAK... think those might be macros. I need to learn more about that. :)
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

Vortex

Hi Mark,

The Switch/Case emulation macros can be found in C:\masm32\macros\macros.asm

Infro_X

About message handling, JmpTable For the Win!

BuildTable proc
mov ecx,2047
@@:
mov [MessageTable+ecx*4],DEFPROC
sub ecx,1
jns @b
mov [MessageTable+WM_CLOSE*4],WMCLOSE
etc.etc.
endp

WndProc proc hwnd,uMsg,wParam,lParam
mov eax,uMsg
cmp eax,2048
jg DEFPROC
jmp [MessageTable+ecx*4]
WM*:
blahblahblah
ret or jmp return
DEFPROC:
invoke DefWindowProc,blahblahblah
ret
;return:
xor eax,eax
ret
endp


basic rundown


Glad they kept the features. :)