Reading note: At this point: Chapters 1, 2, and 3 My spotify problem: AVX is now used in the UI on the spotify linux client Assembly! x86 registers: General: eax, ebx, ecx, edx Special: edi (often an index) esp (stack pointer) ebp (base of stack) eip (instruction pointer) eflags (smaller/larger versions are compatible) There are more, but that's ok for now Instructions so far: mov cmp conditional jumps (je, jle, etc) int System call table: 32-bit vs. 64-bit, go look up So we're writing 32-bit code What if we wanted to call write? Let's do it! Finally, a hello world program! Reading from the user is a little more complicated Alright, how specific is this program? It only works on x86 with 32-bit Does it only work on Linux? Let's try FreeBSD! I'll have to explain the stack... Why mention it? I've been running all the CS311 examples on FreeBSD They work on other platforms too Let's go take a look at Appendix E Since you're all coming from C++ Active Learning: