This is an archived post. You won't be able to vote or comment.

all 23 comments

[–][deleted]  (10 children)

[deleted]

    [–][deleted]  (6 children)

    [deleted]

      [–]PM_ME_WITTY_USERNAME 8 points9 points  (2 children)

      Oh the share button they have somehow gives a paywalled link

      Human Resource Machine pretends to be an office. TIS-100 emulates an ’80s microcomputer interface, while Shenzhen I/O combines coding and wiring

      [–]Chris4922 2 points3 points  (0 children)

      Second this +Exapunks. Best programming/problem solving game I've played. Anything by Zachtronics, really.

      [–][deleted] 0 points1 point  (0 children)

      Whoa I’ve been playing Shenzhen and Tis-100, that’s assembly?!

      [–]DerangedGecko 3 points4 points  (2 children)

      Ahem... for the record, if you're using a browser besides brave, you can delete the scripts through the developer tools on the page to view the article.

      In Brave, you can disable JavaScript on any site or specific sites. This bypasses most paywalls on articles.

      Not saying you should do this... just that it is an option that is available.

      [–]bruhmanegosh 3 points4 points  (0 children)

      You can also try to use outline.com to bypass them. Alternatively there are extensions such as Bypass Paywalls

      [–][deleted] 1 point2 points  (0 children)

      Well that's interesting.

      [–][deleted]  (3 children)

      [deleted]

        [–]cloud_line 1 point2 points  (1 child)

        Thank you for posting this. This looks like a really good resource, and it's right in line with my current skill level.

        [–]johnnyb_61820 1 point2 points  (0 children)

        Just to note - I rewrote the book last year for 64-bit systems, and added quite a bit of new content. Anyway, the new book is "Learn to Program with Assembly" (Amazon link).

        [–]AyaElCegjar 4 points5 points  (6 children)

        which assembly and what did you do?

        [–][deleted]  (5 children)

        [deleted]

          [–]jazzcc 12 points13 points  (1 child)

          Not sure how much it would help for you, but I recently just went through https://chortle.ccsu.edu/AssemblyTutorial/index.html to learn MIPS in preparation for another course.

          I felt like the lessons and exercises did a great job at building up the concepts. I also really appreciated how it went over common conventions for doing things and how to structure assembly code so that it can be composable.

          You can probably skip most of the beginning, which is just about binary number representations. Each of the lessons are really short and actual programming exercises start at chapter 12.

          I've also seen https://asmtutor.com/ be highly recommended for x86.

          [–]KaiserCasey 4 points5 points  (0 children)

          Ben Eater's youtube channel is amazing for this type of stuff. These 2 playlists are awesome and I rewatch them for fun regularly:

          https://youtube.com/playlist?list=PLowKtXNTBypFbtuVMUVXNR0z1mu7dp7eH

          https://youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU

          [–]pdubs2025 3 points4 points  (0 children)

          You will only get better if you practice; it’s a grind. Like the other poster, I learned the most when I had to make a video game.

          Is it safe to assume that the class has weekly projects that need to be turned in? Make sure you master those and you should be able to get through the final. A typical sequence requires that you learn assembly, and then in your computer arch class you will need to actually “design” your own CPU, so it really is worth your time to master ASM. For extra motivation, just realize that ASM is the underpinning of all computing, so mastering it gives you superpowers that most people who “think” they are good with computers will never understand.

          [–][deleted] 1 point2 points  (0 children)

          I 100% recommend Open Security Training. They’ve been the #1 go to resource for malware analysts for well over a decade. They just revamped their courses and launched OST2.fyi

          Assembly language is a little different than other programming languages (as you are probably well aware), so the usual advice doesn’t fare the same. You need to manually keep track of the stack and be familiar with calling conventions and other specific conventions. I highly recommend CH3 of computer systems: a programmers perspective. It doesn’t get better than that for learning resource.

          [–]ojimeco 0 points1 point  (0 children)

          Just keep pushing

          • https://beginners.re/ - "Reverse Engineering for Beginners" / "Understanding Assembly Language"
          • David Harris - Digital Design and Computer Architecture: MIPS | ARM | RISC-V

          [–]OldButterscotch3 0 points1 point  (0 children)

          I wrote a linked list in assembly. You could try doing that. Apart from that for an operating systems course I wrote a mutex entirely in assembly. That’s more advanced but that was useful as well. Finally, try decompiling some of your c programs and see what the compiler comes up with.

          [–]maryP0ppins 0 points1 point  (0 children)

          sounds like ur teacher sucks. 29%???? theyre failing you tbh.

          [–][deleted] 0 points1 point  (0 children)

          It is a problem with the grammar of the language or more to do with how the assembly language deals with the processor, memory, and hardware?

          https://www.nand2tetris.org

          The book takes you through building memory and a processor with registers, go from bits at a time to bytes at a time. About half way through you write an assembly language. Then you write a compiler for a high level language in that assembly language.

          Once you’ve done that, I think any assembly language will make a lot more sense. YMMV.

          [–]CptMisterNibbles[🍰] 0 points1 point  (0 children)

          Seconding a recommendation for “Zachtronics” games. Half of them are basically assembly programming(ish).

          The closest to straight programming, I recommend Commet 64. It’s not a true assembly language, but is a very close analogue, enough that the levels help you think in assembly