-
ARM assembler in Raspberry Pi – Chapter 6
Jan 20, 2013 • Roger Ferrer Ibáñez • Raspberry Pi • arm, assembler, control structures, pi, raspberry
Control structures
In the previous chapter we learnt branch instructions. They are really powerful tools because they allow us to express control structures. Structured programming is an important milestone in better computing engineering (a foundational one, but nonetheless an important one). So being able to map usual structured programming constructs in assembler, in our processor, is a Good Thing™.
-
ARM assembler in Raspberry Pi – Chapter 5
Jan 19, 2013 • Roger Ferrer Ibáñez • Raspberry Pi • arm, assembler, branches, pi, raspberry
Branching
Until now our small assembler programs execute one instruction after the other. If our ARM processor were only able to run this way it would be of limited use. It could not react to existing conditions which may require different sequences of instructions. This is the purpose of the branch instructions.
-
ARM assembler in Raspberry Pi – Chapter 4
Jan 12, 2013 • Roger Ferrer Ibáñez • Raspberry Pi • arm, assembler, debugger, gdb, pi, raspberry
As we advance learning the foundations of ARM assembler, our examples will become longer. Since it is easy to make mistakes, I think it is worth learning how to use GNU Debugger
gdb
to debug assembler. If you develop C/C++ in Linux and never usedgdb
, shame on you. If you knowgdb
this small chapter will explain you how to debug assembler directly. -
ARM assembler in Raspberry Pi – Chapter 3
Jan 11, 2013 • Roger Ferrer Ibáñez • Raspberry Pi • arm, assembler, load, pi, raspberry, store
-
ARM assembler in Raspberry Pi – Chapter 2
Jan 10, 2013 • Roger Ferrer Ibáñez • Raspberry Pi • arm, assembler, pi, raspberry
Registers
At its core, a processor in a computer is nothing but a powerful calculator. Calculations can only be carried using values stored in very tiny memories called registers. The ARM processor in a Raspberry Pi has 16 integer registers and 32 floating point registers. A processor uses these registers to perform integer computations and floating point computations, respectively. We will put floating registers aside for now and eventually we will get back to them in a future installment. Let’s focus on the integer registers.
-
ARM assembler in Raspberry Pi – Chapter 6
Control structures
In the previous chapter we learnt branch instructions. They are really powerful tools because they allow us to express control structures. Structured programming is an important milestone in better computing engineering (a foundational one, but nonetheless an important one). So being able to map usual structured programming constructs in assembler, in our processor, is a Good Thing™.
-
ARM assembler in Raspberry Pi – Chapter 5
Branching
Until now our small assembler programs execute one instruction after the other. If our ARM processor were only able to run this way it would be of limited use. It could not react to existing conditions which may require different sequences of instructions. This is the purpose of the branch instructions.
-
ARM assembler in Raspberry Pi – Chapter 4
As we advance learning the foundations of ARM assembler, our examples will become longer. Since it is easy to make mistakes, I think it is worth learning how to use GNU Debugger
gdb
to debug assembler. If you develop C/C++ in Linux and never usedgdb
, shame on you. If you knowgdb
this small chapter will explain you how to debug assembler directly. -
ARM assembler in Raspberry Pi – Chapter 3
-
ARM assembler in Raspberry Pi – Chapter 2
Registers
At its core, a processor in a computer is nothing but a powerful calculator. Calculations can only be carried using values stored in very tiny memories called registers. The ARM processor in a Raspberry Pi has 16 integer registers and 32 floating point registers. A processor uses these registers to perform integer computations and floating point computations, respectively. We will put floating registers aside for now and eventually we will get back to them in a future installment. Let’s focus on the integer registers.