Assembly Language for Beginners [pdf]
21–30 of 101 posts
Re: Assembly Language for Beginners [pdf]
#22Great share. I have been curious about assembly languages for a while. Hopefully it’s not to technical for someone without a CS background.
13 year old kids figure it out. I was one of them, and I'm an idiot more days than I care to admit. Granted, it was 6502 assembly, but later I'd be able to sift my through x86, before it went completely nuts.
Re: Assembly Language for Beginners [pdf]
#23This seems to the same text as the author's Reverse Engineering for Beginners ( https://beginners.re/ ) https://news.ycombinator.com/from?site=beginners.re
But as far as I can tell there's no branch with a different name - maybe this was just a working title for the English version at some point?
Anyway, this new submission with a new title made take a look, so I'm happy :)
Now, I just hope someone takes a crack at forcing an epub build for better reflow/resize on small screens...
There's a (dormant?) issue: https://github.com/DennisYurichev/RE-for-beginners/issues/37...
Re: Assembly Language for Beginners [pdf]
#24Now do that for the GPU.
https://docs.nvidia.com/cuda/parallel-thread-execution/index...
Re: Assembly Language for Beginners [pdf]
#25Re: Assembly Language for Beginners [pdf]
#26The fact that the document targets multiple architectures is great, most ASM tutorials online target solely x86 and as such give a very partial view of how assembly is written and how CPUs work, and on top of that x86 ASM is really quite a mess. I've skimmed the document and it seems rather thorough and doesn't shy away from all the nasty details (which is a good thing for an ASM tutorial), the only criticism I have…
Re: Assembly Language for Beginners [pdf]
#27Btw, a great book imho is "Assembly Language Step By Step - Programming with Linux - 3rd ed" (https://musho.tk/l/d2d56a34).
The great things is that it is an easy read and really starts from the basic and explains how the i386 architecture works, and then explains how to program it using assembly.
The sad thing is that afaik the author is quite old and probably is not going to release a 4th edition, meaning that the book will stay on intel i386.
Re: Assembly Language for Beginners [pdf]
#28It was a lot of fun, but terribly inefficient programmer productivity. I would not want to go back :o) Dereferencing registers prepared me for C pointers later.
Re: Assembly Language for Beginners [pdf]
#29Maybe too much content? 1000+ pages, many architectures... Probably too much content for a beginner book? Btw, a great book imho is "Assembly Language Step By Step - Programming with Linux - 3rd ed" ( https://musho.tk/l/d2d56a34 ). The great things is that it is an easy read and really starts from the basic and explains how the i386 architecture works, and then explains how to program it using assembly. The sad thing…
Re: Assembly Language for Beginners [pdf]
#30My recommendation for beginner's assembly on linux is to write toy code in C and then view the disassembly in gdb or objdump. You have options to switch to Intel syntax from GAS/AT&T if you want.
I'm generally against using windows for anything, but Visual Studio has decent disassembly debug options where you can step through the native assembly code. You could also look at IL code ( which is very similar to native assembly ) and learn assembly concepts that way. ildasm and ilasm are great tools for that.
Assembly is so low level and can be intimidating to write from scratch in the beginning. It's better for beginners to write code in a higher level language like C and then read the compiler generated assembly code. Once they are comfortable with a disassembly of a "hello world" program, then write more complicated code and understand the disassembly. Then try to edit and compile the disassembled code. Once you are comfortable, then write your own assembly code from scratch.
Edit: Also, if you have time and the will, watch the nand2tetris lectures and try their projects. It'll give you a hands-on general overview of hardware to assembly to VM to OO. How native assembly works with hardware. How VM interacts with native assembly. How you go from OO to VM? It's a very limited but educational overview of code flow from object oriented code all the way to circuitry ( software circuitry ).