Hi all,
Many decades ago I knew IBM mainframe assembly language. Now that I have more time in my hand, I'd like to learn a low-level, high-performance windows progarmming language, and it's gonna be either C++ or MASM.
Obviously MASM is more challenging in the sense that it's as far away from the mainstream as it can be, and resources are scarce while C++ is everywhere, and MASM would be limited to Windows while you can use cross-platform GUI libraries like Qt with C++.
So before I take the decision that will decide my next 5 years :smiley:, please could you answer the following questions?
- Can MASM32 do everything in windows programming on the Windows platform that a modern language like Visual C# with a framework like WPF (or even C++ with Qt) can do?
- Do Microsoft still make all the newer APIs available to C / MASM32 calls? Or am I going to be restricted to the old Win32 API from the Pezold days?
- Why are we still talking about MASM32 when we should be only about MASM64 now?
Thanks in advance.
Hi ExMVS,
Short answers:
1. Yes.
2. Yes.
3. From 16- to 32-bit was a giant leap in terms of speed, memory and easiness of use, but don't expect giant improvements from 64-bit code - unless you regularly need to deal with multi-gigabyte files and their memory requirements. Plus, the learning curve is steep.
To get started, have a look at this 2-pager (http://www.jj2007.eu/Masm32_Tips_Tricks_and_Traps.htm).
Welcome to the Forum :thup:
Hi Ex,
Depends on what you want to do, there are plenty of viual garbage generators out there. People mention 32 bit MASM because its well understood and still very useful, 64 bit MASM is the future but the additional complexity is an eye opener, I have about 4 years of working on 64 bit MASM and once you get the swing of it, its very powerful and when written correctly, genuinely fast.
If you want cross platform, an assembler is not for you but for Windows and Linux there are assemblers that do the job. Really depends on what you want to do, if you are writing C/C++ in Windows, MASM is supplied with it in both 32 and 64 bit as the 64 bit C compiler no longer supports inline assembler.
ExMVS,
welcome on board.
As Steve (aka Hutch) mentioned, 64 bit is the future. It's not just about large files, register pressure is also much lower.
Of course, ml64 can only be used on Windows, but there are alternatives (JWASM, AsmC, NASM, GAS) that can also be used on other operating systems (BSD, Linux, MacOS).
Gunther
Welcome to forum Ex :thumbsup:
Masm32 /masm 64 packages come with several help files,examples,tutorials and you can search forum for question or getting stuck post questions here
search c++ winapi is good,because macros like invoke helps you use those functions