<story><title>Getting started with bare-metal assembly</title><url>https://johv.dk/blog/bare-metal-assembly-tutorial.html</url></story><parent_chain><item><author>rixrax</author><text>I think one great way to do this is to get a Commodore 64 emulator (or Atari 2600 etc) and start writing and learning 6502 assy. Arguably its one of the last instruction sets that was designed with humans writing code in assembly (and not in some higher level language) making it excellent learning language. You can readily run your code in emulators and for not too much $$$ you can pick a real hardware from EBay to really run it on HW.&lt;p&gt;And once You think you’ve run hw to its limits there are plentiful demos and examples around to blow your mind watching what people have been able to do with these machines (often in obscure ways).</text></item></parent_chain><comment><author>mksaunders</author><text>Commodore 64, sure, but I wouldn&amp;#x27;t recommend the Atari 2600 for beginners! I wrote a small game for the 2600 years ago, and it&amp;#x27;s a tricky little machine. It doesn&amp;#x27;t even have a video frame buffer, so you have to do things on the fly, depending on which line of the screen is being beamed (think of old-school CRTs).&lt;p&gt;Indeed, a whole book was written about it: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Racing_the_Beam&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Racing_the_Beam&lt;/a&gt;&lt;p&gt;The 2600 is fascinating and fun to code for, but for asm newbies I&amp;#x27;d recommend the C64 or NES...</text></comment>
<story><title>Getting started with bare-metal assembly</title><url>https://johv.dk/blog/bare-metal-assembly-tutorial.html</url></story><parent_chain><item><author>rixrax</author><text>I think one great way to do this is to get a Commodore 64 emulator (or Atari 2600 etc) and start writing and learning 6502 assy. Arguably its one of the last instruction sets that was designed with humans writing code in assembly (and not in some higher level language) making it excellent learning language. You can readily run your code in emulators and for not too much $$$ you can pick a real hardware from EBay to really run it on HW.&lt;p&gt;And once You think you’ve run hw to its limits there are plentiful demos and examples around to blow your mind watching what people have been able to do with these machines (often in obscure ways).</text></item></parent_chain><comment><author>pizza234</author><text>I&amp;#x27;ve always been skeptical of using retro machines to learn low-level programming.&lt;p&gt;While the processors are simple, making non-trivial programs is hard, because the machines as a whole have lot of limitations, making programming very intricate, compared to more modern systems (say, 16-bit 80x86, but I guess even Amiga and so on).&lt;p&gt;If the target it challenge for the sake of challenge, then nothing makes those machines special, I mean, one can code directly in machine code if that&amp;#x27;s the intention :-)</text></comment>