Hardware programming with Masm64
<p>I recently got back into Assembly Language programming with masm x64 under Windows 10, using Visual Studio.
I wrote a simple application which makes Windows API calls to read the machine local date and time, convert it to the local regional settings format (found in Control Panel). And finally output this via a dialog box.</p>

<p>I learnt alot (and remembered some stuff), e.g. 64-bit architecture, registers, calling convention, shadow/spill space, 16-byte aligning the stack, Unicode strings, concatenating (string) variables...</p>

<p><strong>Background</strong> The last time I used assembly was back in Uni some 25 years ago.
And that was under MS DOS using masm and tasm. Which is why I'm partial to masm, because of my roots.</p>

<p>Now being a purist, I would like to still program under Windows 10 but access some of the hardware directly without using Windows API calls.
Understandly, programming under Windows in user mode means you have no choice but to use the Windows API.
But programming in assembly and making out-of-process calls (i.e. Win API calls) just sounds so inefficient!</p>

<p>So (I guess) the only other option under Windows to access hardware is to program in kernal mode (ring 0).
I belive this is possible with the Windows 10 WDK. Unfortunatly looking into the WDK it seems to be all about C++. And assembly isn't even mentioned.</p>

<p>I wouldn't dream of graphics programming by accessing the graphics card in assembly these days, as DirectX and OpenGL have done this for you. Just simply use them.</p>

<p><strong>Question</strong>
Given there is not much masm 64 information out there for Windows programming, but thankfully the Intel 64 bit architecture manuals are great! </p>

<p>Can anyone please provide information or point me in the right direction?</p>

<p>I'm not trying to program anything specific. I just love learning and programming in assembly and get alot of enjoyment out of it.</p>