Skip Navigation
InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)XA

x86 Assembly

  • I guess I'll start things off

    I picked up assembly programming in 2015 after my son was born while on paternity leave. I needed something to keep my mind busy between changing diapers and feedings, or I was going to go insane.

    I started off with the 6502 through reading old magazines from the 70s and 80s on archive.org (Compute! Magazine was rich with examples and how-to articles. RIP Jim Butterfield). I bought two functioning C64s from a local Ham Fest with the hope of diving into the real-deal head first, but with kids that's much harder than it sounds. I had to shelve the machines and settle for VICE.

    After about a year of mucking around trying different things I decided to start reading through old Intel and AMD architecture documents (8088/6). Around that time I discovered the "emu8086" emulator and purchased a license so I could watch my code execute and effect the system in real time. I knew about "insight" for DOS, and tried it too, but for the time being the emulator was a much better visual learning tool.

    Shortly thereafter I became interested in operating systems and how they worked under the hood (i.e. DOS). So my next goal was to write a bootloader based on the Intel spec documents, and a tiny real-mode OS capable of reacting to user input. Nothing fancy, however this track turned out to be very beneficial.

    I started programming in basic when I was little, copying DATA lines out of books so I could play games, and eventually graduated to C when I was 12-ish. Despite being able to program (fairly well) for years, I lacked the formal education of my peers at work. Assembly really jumpstarted potential in me that I didn't even know existed, and actually pushed me to become a more thoughtful developer. I used to be afraid of gdb but now it's my bread and butter.

    If you want to take a look at the "OS" you can find it here:

    https://git.einval.net/user/jhunk/minos.git/

    I also wrote a program for my son at one point, though it's incomplete:

    https://git.einval.net/user/jhunk/learncolors.git/

    einval.net itself was supposed to be a programming blog. Again though, with kids I just don't have the time or energy anymore. Oh well. Perhaps I'll get back into doing that in 10 years or so 😉

    0
  • What's good setup for learning assembly on linux?

    As far as i know, on windows it's visual studio, in there you have registers, debugging and other stuff. How about linux?

    I tried setting up with this: https://medium.com/@muhammadmeeran2003/how-to-set-up-assembly-language-on-visual-studio-code-2021-587a7b01c9a1 and this: https://github.com/newtonsart/vscode-assembly

    That github repo is pretty good, but still no console output and can't see x64 registers while debugging.

    Any other good alternatives?

    3
1 Active user