Una instrucción es una orden dada a un procesador de computadora por un programa de computadora. Cada instrucción es una secuencia de 0 y 1. Ayudan a describir la operación física que debe realizar la computadora. Los registros se utilizan para almacenar los datos temporalmente y realizar las operaciones a las que apunta la instrucción.
Descripción de los campos ARM:
1. Opcode representa la operación básica de la instrucción.
2. R d representa el operando de destino del registro. El resultado obtenido al realizar la operación se almacena aquí.
3. R n representa el primer operando fuente de registro.
4. Operand2 representa el segundo operando de origen (en el caso de instrucciones de procesamiento de datos) y el desplazamiento (dirección) en el caso de instrucciones de transferencia de datos.
5. Represento al Inmediato, si
- I = 0, luego se registra el segundo operando fuente.
- I = 1, entonces el operando de la segunda fuente es de 12 bits inmediato (constante).
6. S representa el código de condición de establecimiento. Está relacionado con la instrucción de salto condicional.
7. La condición representa la Condición. Está relacionado con la instrucción de salto condicional.
8. F representa el formato de Instrucción, si
- F = 0, entonces es formato de procesamiento de datos
- F = 1, entonces es el formato de transferencia de datos
Diferentes formatos de instrucción:
1. Procesamiento de datos (DP): Incluye operaciones aritméticas generales (Ej: suma, resta, etc.)
Condición | F | yo | código de operación | S | Rn | Calle | Operando2 |
---|---|---|---|---|---|---|---|
4 bits | 2 bits | 1 bit | 4 bits | 1 bit | 4 bits | 4 bits | 12 bits |
2. Transferencia de datos (DT): Incluye operaciones de transferencia de datos (Ej: Cargar, Almacenar)
Condición | F | código de operación | Rn | Calle | Desplazamiento2 |
---|---|---|---|---|---|
4 bits | 2 bits | 6 bits | 4 bits | 4 bits | 12 bits |
Representación del campo ARM:
Cada instrucción tiene una longitud de 32 bits. En la figura, la información anterior se representa en un formato tabulado. Aquí,
Reg refers to the Register numbers between 0 and 15. Constant: 12 bit constant Address: 12 bit address
La codificación de instrucciones ARM también se representa en la siguiente figura.
Codificación de instrucciones ARM:
Instrucción | Formato | Condición | F | yo | código de operación | S | Rn | Calle | operando |
---|---|---|---|---|---|---|---|---|---|
AGREGAR | DP | 14 | 0 | 0 | 4 | 0 | Registro | Registro | Registro |
SUB | DP | 14 | 0 | 0 | 2 | 0 | Registro | Registro | Registro |
AGREGAR CON INMEDIATO | DP | 14 | 0 | 1 | 4 | 0 | Registro | Registro | Constante |
LDR(CARGA) | DT | 14 | 1 | – | 24 | – | Registro | Registro | Dirección |
FUERZA(TIENDA) | DT | 14 | 1 | – | 25 | – | Registro | Registro | Dirección |
Cada uno de los segmentos de instrucción se denomina campo . El código de operación que contiene 4 bits (para DP) y 6 bits (para DT) indica el tipo de operación que realiza la instrucción. (Ej: Suma, Resta, etc. en caso de DP y Carga o Almacenaje en caso de DT). R n que contiene 4 bits da el número del registro que es el primer operando fuente. El operando2 que contiene 12 bits proporciona el otro operando de origen para la operación que debe realizar la instrucción. R d que contiene 4 bits da el número del registro que va a recibir la suma y se llama Registro de destino .
Nota :
- Aunque múltiples formatos (DP y DT) complican el hardware, la complejidad se reduce manteniendo los formatos similares.
- Los primeros dos campos y los últimos tres campos de los dos formatos tienen el mismo tamaño y cuatro de ellos tienen los mismos nombres.
- La longitud del campo de código de operación en formato DT (6 bits) es igual a la suma de las longitudes de tres campos de formato DP (código de operación , S, I: 4+1+1 bits ).
- En las figuras, los números se representan en un sistema numérico decimal, pero en realidad se almacenan como binarios (0 y 1)
Traducir instrucciones ARM en instrucciones de máquina:
Ejemplo 1: considere esta instrucción ARM.
AGREGAR r3, r1, r2
Condición | F | yo | código de operación | S | Rn | Calle | Operando2 |
---|---|---|---|---|---|---|---|
14 | 0 | 0 | 4 | 0 | 1 | 3 | 2 |
Los valores de los campos se representan en la tabla. Los números se almacenan en forma de binario.
I = 0 porque aquí el segundo operando fuente es un registro pero no una constante.
Opcode = 4(0100) corresponde a la operación de adición.
Como es una operación aritmética, F = 0 .El valor en,
El campo R n es 1 . (Porque r1 es el primer operando fuente)
Operand2 es 2 . (Porque r2 es el segundo operando fuente) El campo
R d es 3 . (Porque r3 es el registro de destino en el que
se almacena el resultado logrado al agregar los contenidos de los registros r1 y r2)
Ejemplo 2: considere esta instrucción ARM.
SUB r2,r2,#6
Condición | F | yo | código de operación | S | Rn | Calle | Operando2 |
---|---|---|---|---|---|---|---|
14 | 0 | 1 | 2 | 0 | 2 | 2 | 6 |
I = 1 porque aquí el segundo operando fuente es una constante.
Opcode = 2(0010) corresponde a la operación de resta.
Como es una operación aritmética, F = 0.El valor en,
El campo R n es 2 . (Porque r2 es el primer operando fuente)
El operando2 es 6. (Constante) El campo
R d es 2 . (Porque r2 es el registro de destino en el que se almacena el resultado logrado al restar 6 de r2).
Ejemplo-3: considere esta instrucción ARM.
LDR r4,[r3,#24]
Condición | F | código de operación | Rn | Calle | Desplazamiento2 |
---|---|---|---|---|---|
14 | 1 | 24 | 3 | 4 | 24 |
Opcode = 24(011000) corresponde a la operación de carga.
Como es una operación de transferencia de datos, F = 1.El valor en,
El campo R n es 3 . (Porque r3 es el primer operando fuente).
La dirección es 32 . (el desplazamiento se agregará al registro base r3) El campo
R d es 4 .
De esta manera, las instrucciones de ensamblaje de ARM se traducen en instrucciones de máquina .
Integridad de la instrucción:
Se dice que el conjunto de instrucciones está completo si las instrucciones tienen cada una de las siguientes categorías:
- Instrucciones aritméticas, lógicas y de turnos.
- Instrucciones de transferencia de datos (es decir, cargar y almacenar).
- Instrucciones de E/S.
- Las instrucciones de control del programa incluyen las instrucciones que verifican las condiciones de estado con la ayuda de banderas.
Publicación traducida automáticamente
Artículo escrito por patibandalp01 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA