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

Index

Symbols

32-bit Literals

dealing with 310, 311

example 313

source program 314-318

A

abstract memory

simulating, in Python 42

alu() function 266

Arithmetic and Logic Unit (ALU) 49, 259, 260

testing 261, 262

arithmetic instructions 324

addition 324, 325

bitwise logical operations 326, 327

comparison 324, 325

multiplication 325, 326

shift operations 327, 328

subtraction 324, 325

arithmetic operations 90

arithmetic shift 329

rotate operation 330

ARM processor 321, 322

ARM Program

example 292-294

running 374-377

ARM’s architecture

arithmetic instructions 324

ARM register set 323, 324

overview 322

ARM's branch and link instruction 355, 356

assembler

flow control operations, testing 163-166

shift operations, testing 167-169

testing 161, 162

Assembler Directives

dealing with 125

Dictionary, using 126-128

labels 128, 129

Assembly-Level...