Unlike other books about assembly language and computer organisation, Introduction to Computer Organization is written with the understanding that most programmers will never have to write x86-64 assembly language or design hardware. By the end of the book readers should have a strong understanding of how binary is used to store data; how Boolean logic works, and how it's implemented in a computer; the basics of computer hardware; assembly language; program flow; and Input/Output.