41 lines
1.2 KiB
Markdown
41 lines
1.2 KiB
Markdown
|
## Machine Code
|
||
|
- Machine language instructions
|
||
|
- Directly control CPU
|
||
|
- Strictly numerical
|
||
|
- Lowest-level representation of a compiled or assembled program
|
||
|
- Lowest-level visible to programmer
|
||
|
- Internally microcode might used
|
||
|
- Hardware dependent
|
||
|
- Higher-level languages translated to machine code
|
||
|
- Compilers, assemblers and linkers
|
||
|
- Not for interpreted code
|
||
|
- Interpreter runs machine code
|
||
|
- Assembly is effectively human readable machine code
|
||
|
- Has mnemonics for opcodes etc
|
||
|
|
||
|
## Microcode
|
||
|
- Layer between CPU hardware and instruction set architecture
|
||
|
- Normally written during design phase
|
||
|
- Deployed to ROM or PLA
|
||
|
- Programmable logic array
|
||
|
- Machine code often has some backward compatibility
|
||
|
- Microcode is circuit specific
|
||
|
|
||
|
## Byte Code
|
||
|
Portable Code
|
||
|
- Efficient execution by interpreter
|
||
|
- Compact numeric codes, constants and references
|
||
|
- Encode compiler output following analysis and validation
|
||
|
- Can be further compiled
|
||
|
- JIT
|
||
|
- Typically passed to VM
|
||
|
- Java, Python
|
||
|
|
||
|
## Object Code
|
||
|
- Product of compiler
|
||
|
- Sequence of statements
|
||
|
- Machine code
|
||
|
- Intermediate
|
||
|
- RTL
|
||
|
- Linked to form executable
|
||
|
- Object code portion of machine code not yet linked
|