Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change
Quote from: zedd on June 11, 2025, 08:22:12 PMQuote from: jj2007 on June 11, 2025, 08:15:25 PMI've printed a very nice photo of myself, it works all the time![]()
![]()
![]()
![]()
Quote from: jj2007 on June 11, 2025, 08:15:25 PMI've printed a very nice photo of myself, it works all the time![]()
Quote from: daydreamer on June 11, 2025, 05:56:50 PMEspecially ml 6.14 bug that makes it take an eternity when using creating big arrays
include \masm32\include\masm32rt.inc
.data?
Buffersize=16777216 ; 16 MB
MyFatArray LABEL byte
ORG $+Buffersize-1
db ?
EndofArray db ?
.code
start:
mov EndofArray, "e"
mov ecx, Buffersize
mov al, "x"
mov edi, offset MyFatArray
int 3
rep stosb
MsgBox 0, "Buffer filled!", "Hi", MB_OK
exit
end start
Quote from: sinsi on June 10, 2025, 04:46:03 PMHi, so I did try out an updated version of ml.exe and it worked. I did have to do some tweakings with the \masm32\include\winextra.inc file as mentioned in this topic. Hopefully that's the only thing I have to do to make it work normally.Quote from: Quan on June 10, 2025, 02:07:24 PMAlso my ML.exe seems to be super outdated compared to yours. And I wasn't aware of a way to update ML.exe, where can I find that?I use ML from Visual Studio, the free community version.
Microsoft (R) Macro Assembler Version 6.14.8444
There is a link to download the tools somewhere on the forum.
Quote from: NoCforMe on June 10, 2025, 07:00:05 PMWell now that you've satisfied your curiosity I'd really, really recommend just sticking with the regular simplified segment directives.
Quote from: Vortex on June 11, 2025, 05:08:27 AMIt's preferable to use the simplified directives like .data and .codeYea, will do
QuoteI use ML from Visual Studio, the free community version.Yes there was at least One thread with references and links to it here .... somewhere ...
There is a link to download the tools somewhere on the forum.
.686
.model flat,stdcall
option casemap:none
MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD
MessageBox TEXTEQU <MessageBoxA>
ExitProcess PROTO :DWORD
PUBLIC start
_data SEGMENT 'DATA'
message1 db 'This is a test.',0
caption1 db 'Hello',0
_data ENDS
_text SEGMENT 'CODE'
start:
xor eax,eax
invoke MessageBox,eax,ADDR message1,ADDR caption1,eax
invoke ExitProcess,0
_text ENDS
.drectve SEGMENT BYTE 'CONST'
db '-entry:_start'
.drectve ENDS
END
Quote from: jj2007 on June 10, 2025, 08:20:05 PMQuote from: NoCforMe on June 10, 2025, 07:00:05 PMIn my own programming I've never run into a situation where they didn't work for me
Self-modifying code is one example.