# data[].attributes.headline
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). Se trata de una arquitectura licenciable, quiere decir que la empresa desarrolladora ARM Holdings diseña la arquitectura, pero son otras compañías las que fabrican y venden los chips,llevándose ARM Holdings un pequeño porcentaje por la licencia.

# data[].attributes.subject
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). Se trata de una arquitectura licenciable, quiere decir que la empresa desarrolladora ARM Holdings diseña la arquitectura, pero son otras compañías las que fabrican y venden los chips,llevándose ARM Holdings un pequeño porcentaje por la licencia.

# data[].attributes.headline
El lenguaje  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. Desarrollar programas en lenguaje ensamblador es un proceso laborioso. El procedimiento es similar al de cualquier lenguaje compilado.

# data[].attributes.subject
El lenguaje  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. Desarrollar programas en lenguaje ensamblador es un proceso laborioso. El procedimiento es similar al de cualquier lenguaje compilado.

# data[].attributes.headline
 Los datos se pueden representar de distintas maneras. Para representar números tenemos 4 bases. La más habitual es en su forma decimal, la cual no lleva ningún delimitador especial. Luego tenemos otra muy útil que es la representación hexadecimal, que indicaremos con el prefijo 0x. Otra interesante es la binaria, que emplea el prefijo 0b antes del número en binario. La cuarta y última base es la octal, que usaremos en raras ocasiones y se especifica con el prefijo 0. Sí, un cero a la izquierda de cualquier valor convierte en octal dicho número

# data[].attributes.subject
 Los datos se pueden representar de distintas maneras. Para representar números tenemos 4 bases. La más habitual es en su forma decimal, la cual no lleva ningún delimitador especial. Luego tenemos otra muy útil que es la representación hexadecimal, que indicaremos con el prefijo 0x. Otra interesante es la binaria, que emplea el prefijo 0b antes del número en binario. La cuarta y última base es la octal, que usaremos en raras ocasiones y se especifica con el prefijo 0. Sí, un cero a la izquierda de cualquier valor convierte en octal dicho número

# data[].attributes.headline
Directivas Las directivas son expresiones que aparecen en el módulo fuente e indican al compilador que realice determinadas tareas en el proceso de compilación. Son fácilmente distinguibles de las instrucciones porque siempre comienzan con un punto

# data[].attributes.subject
Directivas Las directivas son expresiones que aparecen en el módulo fuente e indican al compilador que realice determinadas tareas en el proceso de compilación. Son fácilmente distinguibles de las instrucciones porque siempre comienzan con un punto

# data[].attributes.headline
Símbolos Como las etiquetas se pueden ubicar tanto en la sección de datos como en la decódigo, la versatilidad que nos dan las mismas es enorme. En la zona de datos, las etiquetas pueden representar variables, constantes y cadenas. En la zona de código podemos usar etiquetas de salto, funciones y punteros a zona de datos.Las macros y las constantes simbólicas son símbolos cuyo ámbito pertenece al preprocesador, a diferencia de las etiquetas que pertenecen al del ensamblador. Se especifican con las directivas .macro y .equ respectivamente y permiten que el código sea más legible y menos repetitivo.

# data[].attributes.subject
Símbolos Como las etiquetas se pueden ubicar tanto en la sección de datos como en la decódigo, la versatilidad que nos dan las mismas es enorme. En la zona de datos, las etiquetas pueden representar variables, constantes y cadenas. En la zona de código podemos usar etiquetas de salto, funciones y punteros a zona de datos.Las macros y las constantes simbólicas son símbolos cuyo ámbito pertenece al preprocesador, a diferencia de las etiquetas que pertenecen al del ensamblador. Se especifican con las directivas .macro y .equ respectivamente y permiten que el código sea más legible y menos repetitivo.

# data[].attributes.headline
La principal característica de un módulo fuente en ensamblador es que existeuna clara separación entre las instrucciones y los datos. La estructura más generalde un módulo fuente es:* Sección de datos. Viene identificada por la directiva .data. En esta zona sedefinen todas las variables que utiliza el programa con el objeto de reservarmemoria para contener los valores asignados. Hay que tener especial cuidadopara que los datos estén alineados en palabras de 4 bytes, sobre todo despuésde las cadenas. Alinear significa rellenar con ceros el final de un dato para queel siguiente dato comience en una dirección múltiplo de 4 (con los dos bitsmenos significativos a cero). Los datos son modificables.* Sección de código. Se indica con la directiva .text, y sólo puede contener códigoo datos no modificables. Como todas las instrucciones son de 32 bits no hayque tener especial cuidado en que estén alineadas. Si tratamos de escribir enesta zona el ensamblador nos mostrará un mensaje de error.

# data[].attributes.subject
La principal característica de un módulo fuente en ensamblador es que existeuna clara separación entre las instrucciones y los datos. La estructura más generalde un módulo fuente es:* Sección de datos. Viene identificada por la directiva .data. En esta zona sedefinen todas las variables que utiliza el programa con el objeto de reservarmemoria para contener los valores asignados. Hay que tener especial cuidadopara que los datos estén alineados en palabras de 4 bytes, sobre todo despuésde las cadenas. Alinear significa rellenar con ceros el final de un dato para queel siguiente dato comience en una dirección múltiplo de 4 (con los dos bitsmenos significativos a cero). Los datos son modificables.* Sección de código. Se indica con la directiva .text, y sólo puede contener códigoo datos no modificables. Como todas las instrucciones son de 32 bits no hayque tener especial cuidado en que estén alineadas. Si tratamos de escribir enesta zona el ensamblador nos mostrará un mensaje de error.

# data[].attributes.headline
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 ensambladorconsta de una instrucción del procesador y la posición que ocupan los datos de esainstrucción.Desarrollar programas en lenguaje ensamblador es un proceso laborioso. El procedimiento es similar al de cualquier lenguaje compilado. Un conjunto de instruccionesy/o datos forman un módulo fuente. Este módulo es la entrada del compilador, quechequea la sintaxis y lo traduce a código máquina formando un módulo objeto. Finalmente, un enlazador (montador ó linker) traduce todas las referencias relativas adirecciones absolutas y termina generando el ejecutable

# data[].attributes.subject
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 ensambladorconsta de una instrucción del procesador y la posición que ocupan los datos de esainstrucción.Desarrollar programas en lenguaje ensamblador es un proceso laborioso. El procedimiento es similar al de cualquier lenguaje compilado. Un conjunto de instruccionesy/o datos forman un módulo fuente. Este módulo es la entrada del compilador, quechequea la sintaxis y lo traduce a código máquina formando un módulo objeto. Finalmente, un enlazador (montador ó linker) traduce todas las referencias relativas adirecciones absolutas y termina generando el ejecutable