Book Image

Computer Architecture with Python and ARM

By : Alan Clements
Book Image

Computer Architecture with Python and ARM

By: Alan Clements

Overview of this book

This comprehensive guide offers a unique and immersive learning experience by combining Python programming with ARM architecture. Starting with an introduction to computer architecture and the flow of data within a computer system, you’ll progress to building your own interpreter using Python. You’ll see how this foundation enables the simulation of computer operations and learn ways to enhance a simulator by adding new instructions and displaying improved results. As you advance, you’ll explore the TC1 Assembler and Simulator Program to gain insights into instruction analysis and explore practical examples of simulators. This will help you build essential skills in understanding complex computer instructions, strengthening your grasp of computer architecture. Moreover, you’ll be introduced to the Raspberry Pi operating system, preparing you to delve into the detailed language of the ARM computer. This includes exploring the ARM instruction set architecture, data-processing instructions, subroutines, and the stack. With clear explanations, practical examples, and coding exercises, this resource will enable you to design and construct your own computer simulator, simulate assembly language programs, and leverage the Raspberry Pi for ARM programming.
Table of Contents (18 chapters)
1
Part 1: Using Python to Simulate a Computer
Free Chapter
2
Chapter 1: From Finite State Machines to Computers
10
Part 2: Using Raspberry Pi to Study a Real Computer Architecture

9

Raspberry Pi: An Introduction

In previous chapters, we introduced the digital computer and explained its operation at the instruction set level. Now you will learn about a real, low-cost computer that was designed for educational purposes.

In this chapter, we introduce Raspberry Pi, which is based on the popular ARM microprocessor. We describe its instruction set architecture and demonstrate how you can use it to run assembly language programs in debugging mode. The highlights of this chapter are as follows:

  • An introduction to Raspberry Pi’s operating system
  • Using the GCC ARM assembler and linker
  • Debugging ARM assembly language programs

This is not a handbook for Raspberry Pi. We are interested only in using it to enter assembly language programs, run them, and observe their behavior. We do not cover Raspberry Pi’s Windows-style GUI because it is very similar to the corresponding PC and macOS user interfaces. Moreover, the Raspberry Pi operating...