CS208 Introduction to Computer Systems Monday, 2 February 2026 + Next - Assembly language and machine language - What does a C compiler do? - Debugging C & assembly code using gdb (the GNU debugger) + First ideas - assembly language - machine language - general architecture: registers + memory - register naming, crazy - a -> ax -> eax -> rax, al, ah - "instruction" and "instruction set" + Compiler Explorer - https://godbolt.org/ - Let's do some experiments - what does simple arithmetic (+, -, *, /, %, |, ^, &, ~) look like? - what does an if-else look like? - what does a loop look like? + Resources - Compiler Explorer - https://web.stanford.edu/class/archive/cs/cs107/cs107.1224/guide/x86-64.html - https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf + Essential instructions - MOV - ... + a little history - Intel vs. AT&T notation - Intel & AMD - 4004 (1971) -- 4-bit registers - 8008 (1972), 8080 (1974) -- 8-bit registers a - 8086 (1978), 8088 (1979) -- 16-bit registers ax 80186, 80286... - 80386 (1985) -- 32-bit registers eax - iA64 (1999) -- 64-bit reg rax