arm_intro_instrucc
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
arm_intro_instrucc [2020/03/02 02:08] – mariano | arm_intro_instrucc [2020/05/13 03:25] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ===== Introducción a las instrucciones ARM ===== | + | ===== Formato de las instrucciones |
- | Vamos a introducir brevemente | + | Vamos a introducir brevemente el formato |
Como hemos mencionado, el lenguaje ensamblador se compone de instrucciones, | Como hemos mencionado, el lenguaje ensamblador se compone de instrucciones, | ||
Línea 7: | Línea 7: | ||
=== MNEMONICO{S}{condition} {Rd}, Operand1, Operand2 === | === MNEMONICO{S}{condition} {Rd}, Operand1, Operand2 === | ||
- | 8-o¿Que significa mnemónico? | + | 8-o¿Que significa mnemónico? |
Dada la flexibilidad del conjunto de instrucciones ARM, no todas las instrucciones usan todos los campos provistos en la plantilla. Sin embargo, el propósito de los campos en la plantilla se describe a continuación: | Dada la flexibilidad del conjunto de instrucciones ARM, no todas las instrucciones usan todos los campos provistos en la plantilla. Sin embargo, el propósito de los campos en la plantilla se describe a continuación: | ||
- | MNEMONICO | + | **MNEMONICO** |
- | {S} - An optional suffix. If S is specified, the condition | + | **{S}** |
- | {condition} | + | **{condition}** |
- | {Rd} | + | **{Rd}** - Registro destino para almacenar los resultados de una instrucción |
- | Operand1 | + | **Operand1** - Primer operando. Puede ser un valor inmediato ó un registro |
- | Operand2 | + | **Operand2** - Segundo operando |
- | Mientras que los campos MNEMONICO, S, Rd y Operand1 son sencillos, la **condición** y los campos **Operand2** requieren un poco más de aclaración. El campo de condición está estrechamente relacionado con el valor del registro CPSR, o para ser precisos, valores de bits específicos dentro del registro. El operando2 se llama operando flexible, porque podemos usarlo de varias formas: como valor inmediato (con un conjunto limitado de valores), registro o registro con shift. Por ejemplo, podemos usar estas expresiones como Operand2: | ||
- | #123 - Immediate value (with limited set of values). | + | Mientras que los campos MNEMONICO, S, Rd y Operand1 son sencillos, la **condición** y los campos **Operand2** requieren un poco más de aclaración. |
- | | + | |
- | Rx, ASR n | + | El campo de condición está estrechamente relacionado con el valor del registro CPSR, o para ser precisos, valores de bits específicos dentro del registro. El siguiente ejemplo muestra como se incluye el campo condición en una instrucción: |
- | Rx, LSL n | + | |
- | Rx, LSR n - Register x with logical shift right by n bits (1 = n = 32) | + | MOVLE R0, #5 - Mueve el número 5 al registro R0 |
- | Rx, ROR n - Register x with rotate right by n bits (1 = n = 31) | + | únicamente si la condición LE (Less than or Equal - menor o igual que) es satisfecha |
- | Rx, RRX - Register x with rotate right by one bit, with extend | + | |
+ | |||
+ | El operando2 se llama operando flexible, porque podemos usarlo de varias formas: como valor inmediato (con un conjunto limitado de valores), registro o registro con shift. Por ejemplo, podemos usar estas expresiones como Operand2: | ||
+ | |||
+ | #123 - Valor inmediato | ||
+ | | ||
+ | Rx, ASR n | ||
+ | Rx, LSL n | ||
+ | Rx, ROR n - Register x con rotación a derecha de n bits (1 = n = 31) | ||
- | Como un ejemplo | + | Como un ejemplo |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | MOVLE R0, #5 - Moves number 5 (Operand2, because the compiler treats it as MOVLE R0, R0, #5) | + | |
- | to R0 (Rd) ONLY if the condition LE (Less Than or Equal) is satisfied | + | |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
+ | |||
+ | [[oc_raspi0|Volver]] | ||
×
iphelper toolbox
you see this when javscript or css is not working correct
Untested
arm_intro_instrucc.1583114887.txt.gz · Última modificación: 2020/03/02 02:08 (editor externo)