Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The title of this book is misleading. It should really be titled "The Art of My Own Language, which I call HLA"

HLA is not assembly, but a high level language of the author's own invention.

I didn't realize that it was HLA and not assembly which was taught in the book. If I had, I wouldn't have posted the link.



While you're at it, any alternative recommendations?

I'm still a novice at writing assembly (more interested in code gen and instruction set design than coding assembly by hand), but I've found these helpful:

   * http://asm.sourceforge.net/resources.html
   * http://www.intel.com/products/processor/manuals/
   * http://news.ycombinator.com/item?id=1662430 (good resource, link to HN discussion)


If you're going to be writing assembly on Linux, you should decide which of the two major syntaxes to learn:

  - AT&T (gas, gcc inline assembly)
  - Intel (nasm, fasm, yasm, but also gas)
Some links to help you decide:

Pro-gas: http://www.deater.net/weave/vmwprod/asm/ll/README.gas_sucks

Anti-gas: http://x86asm.net/articles/what-i-dislike-about-gas/

Neither/both: http://www.ibm.com/developerworks/linux/library/l-gas-nasm/i...

Neither: http://webster.cs.ucr.edu/AsmTools/WhichAsm.html

If you decide to go with AT&T/gas, check out "Programming from the Ground Up", by Jonathan Bartlett:

http://download.savannah.gnu.org/releases/pgubook/

If you decide to go with Intel/nasm, see "PC Assembly Language" by Paul A. Carter:

http://www.drpaulcarter.com/pcasm/

Also, the following tutorial is focused on DOS/8086, but it's really unique in that it's very interactive, and provides you with a fully functional assembly interpreter and 8086 simulator:

http://www.btinternet.com/~btketman/tutpage.html

I highly recommend it for getting a quick feel for the basics, though some of the DOS/8086 specific stuff in it won't apply to Linux.


> HLA is not assembly

It allows you to write software opcode-by-opcode. That's assembly. The differences between HLA and NASM or MASM are matters of degree, not of kind.

> but a high level language

No. High-level languages do things like manage memory for you and otherwise abstract large bits of the machine. HLA does not do that.


Lisp allows inline assembly -- but that doesn't make it a low-level language. C and Forth can do the same, yet no one would confuse them with assembly language either.


> Lisp allows inline assembly

Not according to the standard.

> C and Forth can do the same

Can. Not necessarily will.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: