Some Assembly Required: An approachable introduction to assembly
11–20 of 131 posts
Re: Some Assembly Required: An approachable introduction to assembly
#12Good job. Some constructive criticism: There's quite a big difficulty spike so to speak in the later section as you go towards the code examples. The beginning explains relatively simple concepts like binary, then basically jmps into an instruction table which won't make sense to anyone who hasn't done some form of programming (they would know binary then, right?). The tone is also a bit off putting, although I might…
Re: Some Assembly Required: An approachable introduction to assembly
#13Good job. Some constructive criticism: There's quite a big difficulty spike so to speak in the later section as you go towards the code examples. The beginning explains relatively simple concepts like binary, then basically jmps into an instruction table which won't make sense to anyone who hasn't done some form of programming (they would know binary then, right?). The tone is also a bit off putting, although I might…
Re: Some Assembly Required: An approachable introduction to assembly
#14In the old days programming assembly language was nasty because one mistake could mean your computer had to be rebooted and you lost your work. Not anymore.
Re: Some Assembly Required: An approachable introduction to assembly
#15Earlier quoted context omitted.
I'm glad you liked it! By a teenagers' guide I meant it was written by teens (including me: I'm 17). What do you think of the warehouse analogy?
Can't speak for the OP but I really liked it. It reminded me a bit of the computer game Human Resource Machine[0], which creates a mini assembly language that you use to handle a "production line" of incoming numbers. [0] https://store.steampowered.com/app/375820/Human_Resource_Mac...
Re: Some Assembly Required: An approachable introduction to assembly
#16I was worried this was only going to be a discussion of x86 assembly. Pleasantly surprised it included 6502 and RISC-V. It's worth reading even if you're not a teenager.
I'm glad you liked it! By a teenagers' guide I meant it was written by teens (including me: I'm 17). What do you think of the warehouse analogy?
Conceptual flaws (mainly down the line rather than introductory):
One issue with it down the line is that processors spend a lot of their design budgets avoiding carting memory around. You don't have to mention that explicitly but in my skim reading I would've (if I were writing it) tried to emphasize something more akin to a postal sorting room than a warehouse as per se.
Maybe that's too advanced, but I understood it when I was 18 or 19 so YMMV.
One interesting demo is to see how much assembly you can fit in a single memory access latency.
Re: Some Assembly Required: An approachable introduction to assembly
#17I basically learned C++ and assembly programmer at the same time when I was 16 by just watching the output of gcc.godbolt.org (yes ok zoomer)
Re: Some Assembly Required: An approachable introduction to assembly
#18It was so fun working with Hack Clubbers on this project! Hack Club is a group of teenagers from all over the world, and we decided to learn assembly together from scratch and see what happened. We ended up making this guide as we learned, since a lot of the resources we were working with weren't the easiest to parse. Happy to answer any questions :)
Re: Some Assembly Required: An approachable introduction to assembly
#19Good job. Some constructive criticism: There's quite a big difficulty spike so to speak in the later section as you go towards the code examples. The beginning explains relatively simple concepts like binary, then basically jmps into an instruction table which won't make sense to anyone who hasn't done some form of programming (they would know binary then, right?). The tone is also a bit off putting, although I might…
Re: Some Assembly Required: An approachable introduction to assembly
#20Good job. Some constructive criticism: There's quite a big difficulty spike so to speak in the later section as you go towards the code examples. The beginning explains relatively simple concepts like binary, then basically jmps into an instruction table which won't make sense to anyone who hasn't done some form of programming (they would know binary then, right?). The tone is also a bit off putting, although I might…
As a teen, I taught myself assembler circa 1982 on my Radio Shack Color Computer (with 4k of RAM!). It was indeed painfully challenging, especially due to the complete lack of information available and the fact I didn't know anyone else who knew anything about it. The only reason I persisted was that the BASIC interpreter in ROM was too slow to write any really cool games. The other thing that kept me going was that assembler was arcane hidden knowledge which bestowed power on those who could figure it out. I didn't want to "learn" assembler, I just wanted to use it and that required knowing how it worked.
I succeeded only because my teenage self somehow pulled off a phone call to Motorola sales where I claimed to be an engineer "evaluating" the 6809 CPU and they sent me the manual and a quick reference card. Due to my complete lack of background in computers or electronics, the manual was pretty cryptic but that quick reference card was my constant companion that entire Summer as I used the BASIC PEEK and POKE commands to write programs. I ordered a "Monitor Program" from a small ad in the back of a garage-published computer magazine. When that cassette tape arrived it allowed me to actually read and write assembler mnemonics into memory, set breakpoints and look at registers. The next breakthrough was realizing I could use it to examine the ROM assembler code. When I finally convinced my parents to buy a dot matrix printer, I printed the entire 8k of the BASIC on fan-fold paper and went through it, commenting by hand.
To your point, the fact that it was so hard combined with it being arcane knowledge was perhaps what kept me going. That and the reality it was the only way forward to get the computer to do more cool stuff.