<div dir="ltr"><div>I also haven&#39;t done assembly language programming for a really long time.  It is very fun to get into the guts of the machine though, and a background in assembly language will make you a Better Person and a Better Coder.  For intellectual curiosity, you might also check out Menuet ( <a href="http://www.menuetos.net/">http://www.menuetos.net/</a> ), which I have actually gotten to boot on some of my machines.<br>
<br>If you&#39;re interested in low-level languages, Forth is worth a look as well. The assembly-language kernel of a Forth interpreter is relatively simple, and most of the development environment is written in the language itself. That means that Forth is often one of the very first languages available on a new chip. The classic text is Leo Brodie&#39;s _Starting_Forth_, now sadly out of print but available on-line ( <a href="http://www.forth.com/starting-forth/">http://www.forth.com/starting-forth/</a> ). I really enjoyed hacking on Forth, although I never found commercial application for it and didn&#39;t get as far as writing anything in it beyond the exercises.<br>
<br></div>-- CHS<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Oct 23, 2013 at 8:44 PM, Ed Cashin <span dir="ltr">&lt;<a href="mailto:ecashin@noserose.net" target="_blank">ecashin@noserose.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br>A long time ago I learned assembly for 32-bit x86 using Dr. Paul Carter&#39;s PDF.<div><br></div><div>
  <a href="http://www.drpaulcarter.com/pcasm/" target="_blank">http://www.drpaulcarter.com/pcasm/</a></div><div><br></div>
<div>At least, that&#39;s my best guess.  I know I learned some, and I know I liked nasm as opposed to gas.  Many people feel that nasm is human friendly, while gas is gcc friendly.</div><div><br></div><div>Once you get used to nasm, it&#39;s pretty easy to learn the gcc extended inline assembly stuff.  I have created a mnemonic device that I find amusing for remembering which way the source and destination operands are placed in AT&amp;T (gas) and Intel (nasm) assembly syntax:</div>

<div><br></div><div>  If you&#39;re going to AT&amp;T, your destination is New Jersey, on the right.</div><div>  If you&#39;re going to Intel, your destination is California, on the left.</div><div><br></div><div>Recently I got bothered that I couldn&#39;t do asm on x86_64, so I tried some stuff and learned about some of the fancy recent Intel features at the same time.  My learning exercises are documented on github.  The AVX stuff is unfinished, since none of the CPUs I have access to have that feature.  The other stuff is believed to work on Mac OS X and Linux.</div>

<div><br></div><div>  <a href="https://github.com/ecashin/low/tree/master/x86_64/popcnt" target="_blank">https://github.com/ecashin/low/tree/master/x86_64/popcnt</a></div><span class="HOEnZb"><font color="#888888"><div><br>
</div><div>-- </div><div>  Ed</div></font></span></div>
<br>_______________________________________________<br>
Ale mailing list<br>
<a href="mailto:Ale@ale.org">Ale@ale.org</a><br>
<a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
See JOBS, ANNOUNCE and SCHOOLS lists at<br>
<a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
<br></blockquote></div><br></div>