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/05/13 02:33] – andrew | 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 el conjunto | + | 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 12: | Línea 12: | ||
- | MNEMONICO | + | **MNEMONICO** - Nombre corto de la instrucción (mnemonic) |
- | {S} - Un sufijo opcional. Si se agrega S al final del Mnemonico, el registro CPSR de flags es actualizado en base a los resultados de una operación | + | **{S}** - Un sufijo opcional. Si se agrega S al final del Mnemonico, el registro CPSR de flags es actualizado en base a los resultados de una operación |
- | {condition} | + | **{condition}** - Condición que debe suceder para que se ejecute una instrucción |
- | {Rd} - Registro destino para almacenar los resultados de una instrucción | + | **{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 (flexible). Puede ser un valor inmediato ó un registro ó un registro con shift, ver ejemplo a continuación |
Línea 35: | Línea 35: | ||
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: | 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: | ||
- | # | + | # |
- | | + | |
- | Rx, ASR n | + | Rx, ASR n |
- | Rx, LSL n | + | Rx, LSL n |
- | Rx, LSR n - Register x with logical shift right by n bits (1 = n = 32) | + | Rx, ROR n - Register x con rotación a derecha de n bits (1 = n = 31) |
- | Rx, ROR n - Register x with rotate right by n bits (1 = n = 31) | + | |
- | Rx, RRX - Register x with rotate right by one bit, with extend | + | |
- | Como un ejemplo | + | Como un ejemplo |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
[[oc_raspi0|Volver]] | [[oc_raspi0|Volver]] | ||
×
iphelper toolbox
you see this when javscript or css is not working correct
Untested
arm_intro_instrucc.1589337181.txt.gz · Última modificación: 2020/05/13 02:33 (editor externo)