Book Image

Raspberry Pi Computer Architecture Essentials

By : Andrew K. Dennis, Teemu O Pohjanlehto
Book Image

Raspberry Pi Computer Architecture Essentials

By: Andrew K. Dennis, Teemu O Pohjanlehto

Overview of this book

With the release of the Raspberry Pi 2, a new series of the popular compact computer is available for you to build cheap, exciting projects and learn about programming. In this book, we explore Raspberry Pi 2’s hardware through a number of projects in a variety of programming languages. We will start by exploring the various hardware components in detail, which will provide a base for the programming projects and guide you through setting up the tools for Assembler, C/C++, and Python. We will then learn how to write multi-threaded applications and Raspberry Pi 2’s multi-core processor. Moving on, you’ll get hands on by expanding the storage options of the Raspberry Pi beyond the SD card and interacting with the graphics hardware. Furthermore, you will be introduced to the basics of sound programming while expanding upon your knowledge of Python to build a web server. Finally, you will learn to interact with the third-party microcontrollers. From writing your first Assembly Language application to programming graphics, this title guides you through the essentials.
Table of Contents (18 chapters)
Raspberry Pi Computer Architecture Essentials
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Memory and addresses


In this section, we will write a program that subtracts the value of one register from another and stores the result in register 0.

In order to do this, we will create a number of variables with integers that are then assigned to the register. This will introduce you to the concepts of memory and addresses. During this process you will also understand a few new terms that are important to the Assembly language.

We will use the following program to explore these items:

.data
/* Variable definition */
.balign 4
wordvar1:
    .word 7
.balign 4
wordvar2:
    .word 3

.text
/* code definition */
.balign 4
.global main
main:
    LDR R1, wordvar1addr
    LDR R1, [R1]
    LDR R2, wordvar2addr
    LDR R2, [R2]
    SUB R0, R1, R2 @ Subtract 3 from 7
    BX LR

wordvar1addr : .word wordvar1
wordvar2addr : .word wordvar2

Add this program to a new file called third_assem_prog.s and save it.

This should be stored with the other Assembly programs you created in the assem_programs directory...