Hacker News new | ask | show | jobs
by saagarjha 2369 days ago
There are a huge number of software engineers today, dare I say most, who cannot read or write assembly and are isolated from it by multiple layers of abstractions.
2 comments

I would probably struggle to write assembly without difficulty and blowing something up but... is most macro assembler really that hard to read? The examples the author of the article gave seemed reasonably easy to parse out for anyone who has a conceptual model of control flow, variables, memory locations, and basic operations.
I know it's abstracted away, but it's still relevant to how the programs run because almost all programs go through an assembly language phase.
What languages don’t? All of them execute on the processor in some way.
You can generate machine language without an assembly language intermediate phase, if you just directly put bytes into a file. But most compilers have some kind of assembler in them.
I could be mistaken, but, don't JVM languages avoid assembly steps? They use bytecode and are translated directly to machine code; I'm not sure there is an translate-to-assembly step. I'm also not sure how much of this confusion is semantics vs actually different components of the compilation and running process.
They still have assemblers in them - they're just done with method calls rather than text.

https://github.com/openjdk/jdk/blob/e73ce9b406c34bd460f0797f...

Also if you look at the compiler's intermediate representation at the very last phases you'll see it basically looks like an assembly program.

Pure interpreters like CPython?
The interpreters themselves go through assembly language. Assembly is relevant because the whole stack is still actively built on it.