Chapter 1: Introduction to Computer Organization

Chapter 1 describes what computer organization is all about, and introduces the elements we will learn through the rest of this book.

Chapter 2: Binary Numbers

Chapter 2 describes number systems and bases, and in particular, binary. Since computer systems use a Boolean (on/off) system, binary is the obvious choice.

Chapter 3: Instructing the CPU

Chapter 3 starts looking at the instructions to the CPU. This chapter covers how assembly instructions are assembled into machine code and vice-versa.

Chapter 4: Digital Logic

Chapter 4 looks at the digital components that make up a CPU. This chapter covers combinational and sequential logic.

Chapter 5: Computer Components

Chapter 5 finally puts all of the previous chapters together. This chapter shows how the digital logic components and instructions are routed to perform an action.

Appendix A: Example RISCV Assembly Programs

Appendix A shows a series of common RISC-V programs both in C++ and assembly.

Appendix B: Advanced RISCV Assembly Programs

Appendix B gets more complicated and shows more advanced RISC-V programs both in C++ and assembly.

Appendix C: Writing your own RISCV Assembly Program

Appendix C has some tips and tricks to writing your own RISC-V assembly programs.

Errors or changes? Stephen Marz (

This e-book is meant as a set of lecture notes in conjunction with the course textbook.