7
Loading
6y

Anyone here worked a whole lot with low level programming?

I have always worked with high level languages like Python and C++, but I’ve also had an interest in working with embedded systems, real close to the metal.

Any directions on where I should go to start learning low level programming? Sites, languages, etc?

Appreciated devRant fam!๐Ÿ˜Š

Comments
  • 1
    I do a lot of assembly programming. I've started low level programming on Commodore 64 writing a few games in assembly. But if you want to start learning nowadays you can check out; UAL or general ARM Assembly and then try to move to x86 Assembly. or maybe if you like playing games, you could train your assembly logic with TIS-100 or Human Resource Machine which you can buy on steam.

    There is also an Assembly IDE with some kind of emulator and memory visualizer which can help you a lot, recently i found Open Source Program for that called "visUAL"
  • 1
    @wowotek Never heard of any game making with assembly. Sounds really interesting๐Ÿค”
  • 1
    @Loading yaa, i was writing a few game with aseembly in C64 and also experimenting in 8086 chip. there is also a youtube channel called 8-bit guy for walthrough making game for C64.
  • 1
    @Loading well, apart from what @wowotek said there's the world of microcontrollers, the closest you can get now to the good ol' days of bare metal programming.
    Just pick up any microcontroller board, Arduino boards are a good choice because they allow you to start off in their high level C++-like language and then go down towards assembly as you like.
    ST Micro's STM32 Nucleo boards are great for ARM microcontrollers and ARM assembly programming.

    Otherwise, you can always use a modern assembler like NASM or GAS to run you assembly programs in x86 or ARM (like on a raspberry pi) environments (easier on Linux because tools).

    Another really helpful thing is writing a C program and seeing the assembly output from a compiler, really helps you understand how stuff works.
  • 1
    Depending on how low you want to go you might want to look into the world of FPGAs and learn VHDL or Verilog. I am an an embedded engineer by profession and work mostly with C. FPGAs are my passion though and love every instance I get to work with them.
  • 1
    @AlexByJava no its not. he is Old Skool guy not like me -_-
  • 1
    @RememberMe Right, I’ve worked a good amount of Arduino and Raspberry pi but don’t really know what is the next lowest thing to go to
  • 1
    @aether Awesome. Do you usually use anything other than C?
  • 1
    I think Verilog, ARM and C would all do you justice
  • 1
    @Loading the majority of the time it is C. But I also get involved from time to time with other languages, usually for testing or providing user level front end tools, webpages, etc. These might involve other languages like C++, C#, python, JavaScript. Coworkers of mine have worked with Java, GoLang, Angular, and some other higher level stuff. But as far as coding for a bare metal micro controller, C and maybe a hint of C++ is what I use.

    Knowing some assembly in this field certainly does not hurt but I usually never have to resort to coding something from scratch using it, mainly just to debug what the compiler settings/options produced and determining what has been optimized out. I suppose if you have to ensure ever bit of an algorithm is efficient as possible you might be able to find a solution that outperforms a particular compiler but I have not been in this kind of situation
  • 1
    @Axis I’ll check them out๐Ÿ˜
  • 2
    @aether Thanks for the insight!
Add Comment