# data[].attributes.headline
1.1.1. Características Principales de la arquitectura ARM

# data[].attributes.subject
1.1.1. Características Principales de la arquitectura ARM

# data[].attributes.body
ARM es una arquitectura RISC (Reduced Instruction Set Computer=Ordenadorcon Conjunto Reducido de Instrucciones) de 32 bits, salvo la versión del core ARMv8-A que es mixta 32/64 bits (bus de 32 bits con registros de 64 bits).

El chip en concreto que lleva la Raspberry Pi es el BCM2835, se trata de un SoC(System on a Chip=Sistema en un sólo chip) que contiene además de la CPU otroselementos como un núcleo GPU (hardware acelerado OpenGL

# data[].attributes.body
El ensamblador es un lenguaje de bajo nivel que permite un control directo dela CPU y todos los elementos asociados. Cada línea de un programa ensamblador consta de una instrucción del procesador y la posición que ocupan los datos de esa instrucción.

El ensamblador presenta una serie de ventajas e inconvenientes con respecto aotros lenguajes de más alto nivel. Al ser un lenguaje de bajo nivel, presenta Como principal característica la flexibilidad y la posibilidad de acceso directo a nivel registro.

# data[].attributes.headline
1.1.4. Configuración del entorno para realizar las prácticas en casa

# data[].attributes.subject
1.1.4. Configuración del entorno para realizar las prácticas en casa

# data[].attributes.body
Para poder trabajar desde casa debemos virtualizar el os de rasberry pi por medio de unas instrucciones, al terminar se llevara acabo la virtualización con QEMU

# data[].attributes.body
Comenzaremos con el programa que hemos visto en el listado 1.1, y que se encuentra en el fichero intro1.s. Edítalo con el programa nano para verlo (y practicar un poco):
Dentro del editor tenemos una pequeña guía de comandos en la parte inferior. También podemos acceder a una ayuda más detallada pulsando F1 dentro del editor. Estos son los atajos de teclado más comunes:
A continuación se realizara la practica correspondiente

# data[].attributes.body
La traducción o ensamblado de un módulo fuente (nombre programa.s) se realiza con el programa Gnu Assembler, con el siguiente comando

# data[].attributes.body
Los pasos habituales para hacer un programa (en cualquier lenguaje) son los siguientes: lo primero es escribir el programa en el lenguaje fuente mediante un editor de programas. El resultado es un fichero en un lenguaje que puede entender el usuario, pero no la máquina. Para traducirlo a lenguaje máquina hay que utilizar un programa traductor. Éste genera un fichero con la traducción de dicho programa, pero todavía no es un programa ejecutable. Un fichero ejecutable contiene el programa traducido más una serie de códigos que debe tener todo programa que vaya a ser ejecutado en una máquina determinada.

# data[].attributes.headline
1.1.5. Aspecto de un programa en ensamblador

# data[].attributes.subject
1.1.5. Aspecto de un programa en ensamblador

# data[].attributes.body
En el código hay una serie de elementos que aparecerán en todos los programas y que estudiaremos a continuación :