• @bandwidthcrisis
    link
    443 months ago

    I bought a PC kit and it said “some assembly required” so I always try to link at least one asm file in my projects.

  • TunaCowboy
    link
    163 months ago

    Generally speaking the OS is your universe and you interact via syscalls. Linking libc is also an option.

    In some instances you may need to roll your own, but it’s likely to be small and specialized.

    • @TheBananaKing
      link
      153 months ago

      :stares in genX:

      That’s not assembly, that’s ikea.

      Back in my day…

      • @AngryCommieKender
        link
        53 months ago

        Remember before .dlls were a thing and you had to write your own config files for every game that you installed on DOS?

  • @[email protected]
    link
    fedilink
    153 months ago

    My old job had a lot of embedded programming - hard real-time Z80 programming, for processors like Z800s and eZ80s to control industrial devices. Actually quite pleasant languages to do bit-twiddling in, and it’s great to be able to step through the debugger and see that what the CPU is running is literally your source code, opcode by opcode.

    Back when a computers were very simple things - I’m thinking a ZX Spectrum, where you can read directly from the input ports and write directly into the framebuffer, no OS in your way just code, then assembly made a lot of sense, was even fun. On modem computers, it is not so fun:

    • x64 is just a fucking mess

    • you cannot just read and write what you want, the kernel won’t let you. So you’re going to be spending a lot of your time calling system routines.

    • 99% of your code will just be arranging data to suit the calling convention of your OS, and doing pointless busywork like stack pointer alignment. Writing some macros to do it for you makes your code look like C. Might as well just use C, in that case.

    Writing assembly makes some sense sometimes - required for embedded, you might be writing something very security conscious where timing is essential, or you might be lining up some data for vectorisation where higher-level languages don’t have the constructs to get it right - but these are very small bits of code. You would be mad to consider “making the whole apple pie” in assembly.

  • @[email protected]
    link
    fedilink
    12
    edit-2
    3 months ago

    I was taught assembler in my second year at school

    It’s kind of like construction work

    With a toothpick, for a tool

    ~ The Eternal Flame, by Bob Kanefsky

  • DacoTaco
    link
    113 months ago

    I have. Mostly on embedded devices that have no OS and you need something very specific.

    … Or that one time i was reverse engineering a console kernel. I wrote arm asm then. Was actually fun to do tbh

    • @SpaceNoodle
      link
      43 months ago

      ARM assembly is so lovely to work with compared to the old CISC garbage.

      • DacoTaco
        link
        2
        edit-2
        3 months ago

        Haha ye. It is super interesting to see all those OS principals and seeing how nintendo implemented them. Stuff i will never forget either and some design patterns i have implemented in my actual job too

  • zitrone 🍋
    link
    fedilink
    33 months ago

    If everything above ASM is the Universe, what is below? What is the ALU, CU and everything else that goes into Processor design? What comes before the Universe?

  • Alex
    link
    fedilink
    23 months ago

    I write assembly for test cases and early setup code. I read far more assembly than I write.