this post was submitted on 03 Aug 2024
1107 points (99.1% liked)
Programmer Humor
32430 readers
1089 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Assembly is hard, because you need to understand your problem on multiple levels and get absolute zero guidance by compilers.
Even C guides you a tiny bit and takes away some of the low level details, so you have more mental capacity to actually solve your problem.
Oh, and you have a standard library. Assembly seems to involve solving everything yourself. No simple function call to truncate a string or turn a char array to uppercase.
Missing ";" on line 148.
Well, they've got a point for the bigger machine codes. Just the barebones specification for x86 is a doorstopper IIRC.
From what I've heard, writing big stuff in assembly comes down to play-acting the compiler yourself on paper, essentially.
TIL. I had tried to understand it a bit, but felt lost pretty fast, and then eventually found out that's because it's huge. Is there a good intro to the basic instructions you're aware of?
By "play act the compiler" I mean a fairly elaborate system of written notes that significantly exceeds the size of the actual program. Like, it's no wonder they started thinking about building machine compilers at that stage.
Thank you!
What language is your pseudocode example modeled after? It vaguely reminds me of some iOs App code I helped debug (Swift?) but I never really learned the language so much as eyeballed it with educated guesses, and even with the few things I double checked it has been a few years, so I have no clue what is or isn't legal syntax anymore.
I've heard of Kotlin in the context of Android apps, but never actually used or learned it. I did one mobile app dev project with Java in Android Studio, but never had any formal classes on it either and just learned as I went (the result was shit, but we got a decent grade for being able to evaluate the difficulties and shortcomings and point out learnings).
Having toyed with video game reverse engineering, I definitely feel like I ought to learn a bit more. I understand
mov
, pointers and registers, and I think there was someinc
andadd
in the code I read to try to figure out base pointers and pointer paths (using Cheat Engine), but I think knowing some more would serve me well there.