280
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 20 Jul 2025
280 points (99.3% liked)
Opensource
3511 readers
100 users here now
A community for discussion about open source software! Ask questions, share knowledge, share news, or post interesting stuff related to it!
⠀
founded 2 years ago
MODERATORS
Yes, I believe you understand correctly. The vast majority of all native code is written by other computer programs (compilers). Handwritten assembly code usually means code that was instead produced more directly by a human programmer, most probably with the help of an assembler rather than compiling from a higher-level language.
As a more concrete example for people out there. C is an example of a "high level" programming language. In C you might write a statement like "int x = 3;".
"Assembly language" is a "human readable" representation of the instructions that are actually executed by your CPUs*. There is a different assembly language for each processor or processor family. Your desktop or laptop computer with an Intel or AMD chip, and in all likelihood execute the "x86_64" language. Meanwhile, your phone is probably on the "AArch64" language. An example of assembly language is "mov rax, #3", which loads register rax with the value 3. Notice that we have dispensed with the niceties of variable names.
Assembly language is "assembled" into the "machine language.". To do this, the "human readable" mnemonics like "mov" are replaced with numbers called opcodes. The sequence of opcodes and arguments, like the number 3, are called the "machine code", because the CPU silicon can read those numbers from memory and follow the instructions with no additional translation steps*.
*Microcode throws a wrench here. Folks like Intel realized they could run things more efficiently if they translated each machine language instruction into simpler microcode instructions onboard the chip.