22
top 2 comments
sorted by: hot top new old
[-] TehPers@beehaw.org 11 points 1 month ago

The final example just boils down to writing the whole program in assembly, doesn't it? The C function just returns a pointer to a static string, which you might as well do in assembly yourself since it's less code to do it that way (you can omit the whole function signature).

In any case, the article does a great job introducing the various compilation stages the C program goes through in order to become an executable.

[-] Treczoks@lemmy.world 4 points 1 month ago

Been there, did that. Wrote shell utilities like that. No linking of Startup.obj, just my code and the linker that turned my .obj into a scatterloadable executable. Run it from the shell, the system provides a default stack and jumps right into the first function.

The whole executable was less than a kilobyte in size. It accessed the system tick timer, used it to seed a RNG, which was actually part of the executable, chose a random quote from a megabyte-sized fortune file, and printed it. Everything clean, all resources closed and returned. It even had error handling.

this post was submitted on 26 Jul 2026
22 points (100.0% liked)

Programming

28295 readers
125 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS