4 ms·
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
by gnosis 15y ago
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.
- derleth 15y ago> 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.
- gnosis 15y agoLisp 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.
- derleth 15y ago> Lisp allows inline assembly Not according to the standard. > C and Forth can do the same Can. Not necessarily will.
- silentbicycle 15y agoWhile 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)
- gnosis 15y agoIf 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 http://www.deater.net/weave/vmwprod/asm/ll/README.gas_sucks Anti-gas: http://x86asm.net/articles/what-i-dislike-about-gas/ http://x86asm.net/articles/what-i-dislike-about-gas/ Neither/both: http://www.ibm.com/developerworks/linux/library/l-gas-nasm/index.html http://www.ibm.com/developerworks/linux/library/l-gas-nasm/i... Neither: http://webster.cs.ucr.edu/AsmTools/WhichAsm.html 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/ 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/ 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 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.