(1)Calendar Control
Error A2102: Symbol not defined : MCM_GETCURSEL
(2) Toolbar ;include CommCtrl.inc
Error A2102: Symbol not defined : TBN_QUERYINSERT
Symbol not defined : TBN_GETBUTTONINFO
Symbol not defined : TBNOTIFY.iItem
Symbol not defined : TBNOTIFY.tbButton
(3)
lea rdi,Buffer2048 ;hWinEdit box for display
push rdi
invoke SendMessage,hWinEdit,EM_REPLACESEL,TRUE,rdi
pop rdi
Run crash
Found that, as long as the line to perform push XXX command, run crash
push rax
invoke SetFilePointer,hFile,0,NULL,FILE_END ;Move files Tail
pop rax
Experiments show that this is also a problem
Not sure about radasm, but in general the stack needs to be aligned to 16 before invoking an API.
Your push will misalign the stack, Windows doesn't like it. As part of the ABI, Windows will save rdi so no need to push/pop it.
64-bit asm is a lot different to 32-bit, look at Overview of x64 Calling Conventions (http://msdn.microsoft.com/en-us/library/ms235286.aspx) for more info.
Hi cdn4753,
that link (http://software.intel.com/en-us/articles/introduction-to-x64-assembly/) might be of interest, too. And: welcome to the forum.
Gunther
A 32-bit executable programs, converted to 64, an increase of 1000%the code bytes
To include XXX.inc Symbol not defined the problem, you can refer to XXX.inc 32 can self-define or copy rows
push will misalign the stack
japheth in SOURCEFORGE in case said:
In 64-bit, you must be careful with push / pop if you used OPTION WIN64:. 2 in your source See warning in the documentation for more details.
Although incomplete understanding, but I know that can not be so used
Hi
In radasm3\jWasm\Projects\Win64Test is a 64 example with Jwasm