C.4 M1: Introduction to Machine Code Programming
Synopsis
- Basic, very high-level understanding of computer architecture.
- RISC-V processor, registers, program counter, memory, bus, rest of the system
- What is an instruction, how does it look like?
- Different kinds of instructions (arithmetic, load/store, control).
- Discuss kinds of instructions by means of the simple factorial function code.
- Introduce the assembler, relieves us from coding instructions manually, provides labels for addresses, pseudo instructions, has directives. Introduce separate translation with translation units (will be the same in C and Java and many other compiled languages).
- Execution traces. Execute programs on paper to deepen understanding of program execution.
Sections Covered
Section 2.1, Section 2.2, Section 2.3, Section 2.4, Section 2.7