Guide to RISC Processors: For Programmers and Engineers

We start this chapter with an overview of what this book is about. As programmers we usually write our programs in a high-level language such as Java. However, such languages shield us from the system's internal details. Because we want to explore the RISC architectures, it is best done by knowing the processor's language. That's why we look at the assembly language in the later chapters of the book.
Computers are complex systems. How do we manage complexity of these systems? We can get clues by looking at how we manage complex systems in life. Think of how a large corporation is managed. We use a hierarchical structure to simplify the management: president at the top and workers at the bottom. Each level of management filters out unnecessary details on the lower levels and presents only an abstracted version to the higher-level management. This is what we refer to as abstraction. We study computer systems by using layers of abstraction.
Different people view computer systems differently depending on the type of their interaction. We use the concept of abstraction to look at only the details that are necessary from a particular viewpoint. For example, a computer user interacts with the system through an application program. For the user, the application is the computer! Suppose you are interested in browsing the Internet. Your obvious choice is to interact with the system through a Web...