Reading note: At this point: Chapters 1, 2, 3, going into 4 Assembly! x86 registers: General: eax, ebx, ecx, edx edi (often an index) esi (segment register) "eax" specifies a size! For this register: al means the lowest byte ah is the second lowest byte ax is the lowest two bytes eax is the lowest 4 bytes rax is the whole 8 bytes rax is not available in 32-bit mode! edi and esi have sizes too, but only 16, 32, and 64 bites Special: 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 Let's go take a look at Appendix E Since you're all coming from C++ Can we have a stack variable? Sure, just move the pointer to the stack Picture of this... Maybe a demo with read?