So, I've been trying to learn assembly. However, I can't find any assembly docs online, so I can't really do anything. I tried NASM and FASM but I just can't understand assembly. Do y'all know any decent way to learn assembly? (My dad said it's better to do it on my pi or should I do it on my desktop?)

  • 1
    Start here, but don't ask me how'd you accomplish coding assembly on rpi.

  • 1
  • 0
    I reccomend this if you've got a pi https://cl.cam.ac.uk/projects/...
  • 3
    If you have troubles grasping the logic behind assembly try starting from a simple platform which you can emulate and debug, i've read that x86 is not hard to start but haven't tried it yet.
    Going barebones on the raspberry pi would be harder cause it's harder to debug and you'll have to interface with all the peripherals before being able to show something on the screen.
    Personally I started with microcorruption, it's a CTF game, not really designed to learn assembly but it will give you familiarity with arm assembly (you basically have to exploit some code so you have to understand the dissassembled code and assemble your payloads).
    Then I moved to 6502 assembly and i'm programming a NES game,I don't find it too hard: 6502.org has a lot of resources for the CPU and all the NES-specific stuff is well documented on NESDev (cause that cpu is used also in the commodore64 and in the apple 2).
    Ofc there could be easier platforms to start with that i don't know of
  • 0
    Qemu is pretty good for debugging low level programming if ur trying to use ring0. The cpu register dumping saved me hours of time on my toy OS project.
  • 0
    I think the first best entry into assembly is to understand general CPU architecture. If you get a insight into this, learning assembler is just learning the syntax. (Which depends on compiler/architecture).
  • 3
    As a different approach:
    Try the game AT Robots

    You program the robots in assembly, and put them in an arena to fight. It's pretty fun and teaches you about optimizations.
  • 0
    Find a decent YouTube series, and go from there. At least as a starting point, to teach you the very basics.
Add Comment