arm_addsubcmp
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_addsubcmp [2020/05/11 19:54] – martha | arm_addsubcmp [2020/05/21 20:18] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Instrucciones Aritméticas ====== | ====== Instrucciones Aritméticas ====== | ||
- | **Instrucciones aritméticas**. Realizan operaciones aritméticas sobre números binarios o BCD. Son instrucciones de este grupo add, cmp, adc, sbc, mul. | + | **Instrucciones aritméticas**. Realizan operaciones aritméticas sobre números binarios |
==== add ==== | ==== add ==== | ||
Línea 7: | Línea 7: | ||
Suma sin afectar al carry | Suma sin afectar al carry | ||
- | add{s}{cond} {Rd}, Rn, Oper2 | + | add{s}{cond} {rd}, rn, Oper2 |
- | add{cond} {Rd}, Rn, #imm12 | + | |
- | La instrucción add suma en Rd los valores de Rn y Operand2 o imm12. | + | add{cond} {rd}, rn, #imm8 |
+ | |||
+ | La instrucción add suma en rd los valores de rn y Operand2 o imm8. | ||
En ciertas circunstancias, | En ciertas circunstancias, | ||
Línea 17: | Línea 18: | ||
* **s** es opcional, si se especifica, se actualiza el registro de flags CPSR, de acuerdo al resultado. | * **s** es opcional, si se especifica, se actualiza el registro de flags CPSR, de acuerdo al resultado. | ||
* **cond** | * **cond** | ||
- | * **Rd** Registro destino. | + | * **rd** Registro destino. |
- | * **Rn** es el registro que contiene el primer operando. | + | * **rn** es el registro que contiene el primer operando. |
* **Oper2** segundo operando. | * **Oper2** segundo operando. | ||
- | * **imm12** Es cualquier valor que va de 0-4095. | + | * **imm8** Es cualquier valor que va de 0-4095. |
**Códigos de Condicion** | **Códigos de Condicion** | ||
^ Código | ^ Código | ||
Línea 53: | Línea 54: | ||
**Flags que modifica:** | **Flags que modifica:** | ||
- | Si se especifica **S**, estas instrucciones actualizan los indicadores **N, Z, C y V** de acuerdo con el resultado. | + | Si se especifica **s**, estas instrucciones actualizan los indicadores **N, Z, C y V** de acuerdo con el resultado. |
==== adc ==== | ==== adc ==== | ||
Línea 59: | Línea 60: | ||
Suma con carry | Suma con carry | ||
- | adc{S}{cond} {Rd}, Rn, Oper2 | + | adc{s}{cond} {rd}, rn, Oper2 |
- | La instrucción adc (suma con acarreo) suma los valores en Rn y Oper2, junto con el flag de acarreo. | + | La instrucción adc (suma con acarreo) suma los valores en rn y Oper2, junto con el flag de acarreo. |
donde: | donde: | ||
Línea 67: | Línea 68: | ||
* **s** es opcional, si se especifica, se actualiza el registro de flags CPSR, de acuerdo al resultado. | * **s** es opcional, si se especifica, se actualiza el registro de flags CPSR, de acuerdo al resultado. | ||
* **cond** | * **cond** | ||
- | * **Rd** Registro destino. | + | * **rd** Registro destino. |
- | * **Rn** es el registro que contiene el primer operando. | + | * **rn** es el registro que contiene el primer operando. |
* **Oper2** segundo operando. | * **Oper2** segundo operando. | ||
Línea 84: | Línea 85: | ||
**Flags que modifica:** | **Flags que modifica:** | ||
- | Si se especifica **S**, estas instrucciones actualizan los indicadores **N, Z, C y V** de acuerdo con el resultado. | + | Si se especifica **s**, estas instrucciones actualizan los indicadores **N, Z, C y V** de acuerdo con el resultado. |
==== sub ==== | ==== sub ==== | ||
Línea 90: | Línea 91: | ||
Resta sin afectar al carry | Resta sin afectar al carry | ||
- | sub{s}{cond} {Rd}, Rn, Oper2 | + | sub{s}{cond} {rd}, rn, Oper2 |
- | sub{cond} {Rd}, Rn, #imm12 | + | |
- | La instrucción sub resta en Rd= Rn - Oper2. | + | sub{cond} {rd}, rn, #imm8 |
+ | |||
+ | La instrucción sub resta en rd= rn - Oper2. | ||
En ciertas circunstancias, | En ciertas circunstancias, | ||
Línea 100: | Línea 102: | ||
* **s** es opcional, si se especifica, se actualiza el registro de flags CPSR, de acuerdo al resultado. | * **s** es opcional, si se especifica, se actualiza el registro de flags CPSR, de acuerdo al resultado. | ||
* **cond** | * **cond** | ||
- | * **Rd** Registro destino. | + | * **rd** Registro destino. |
- | * **Rn** es el registro que contiene el primer operando. | + | * **rn** es el registro que contiene el primer operando. |
* **Oper2** segundo operando. | * **Oper2** segundo operando. | ||
- | * **imm12** Es cualquier valor que va de 0-4095. | + | * **imm8** Es cualquier valor que va de 0-4095. |
Ejemplo: | Ejemplo: | ||
Línea 119: | Línea 121: | ||
**Flags que modifica:** | **Flags que modifica:** | ||
- | Si se especifica **S**, estas instrucciones actualizan los indicadores **N, Z, C y V** de acuerdo con el resultado. | + | Si se especifica **s**, estas instrucciones actualizan los indicadores **N, Z, C y V** de acuerdo con el resultado. |
==== sbc ==== | ==== sbc ==== | ||
Línea 125: | Línea 127: | ||
Restar con carry | Restar con carry | ||
- | sbc{S}{cond} {Rd}, Rn, Oper2 | + | sbc{s}{cond} {rd}, rn, Oper2 |
- | La instrucción sbc (Restar con acarreo) resta el valor de Oper2 del valor en Rn. Si el flag carry es cero es clara, el resultado se le resta uno. | + | La instrucción sbc (Restar con acarreo) resta el valor de Oper2 del valor en rn. Si el flag carry es cero es clara, el resultado se le resta uno. |
donde: | donde: | ||
Línea 133: | Línea 135: | ||
* **s** es opcional, si se especifica, se actualiza el registro de flags CPSR, de acuerdo al resultado. | * **s** es opcional, si se especifica, se actualiza el registro de flags CPSR, de acuerdo al resultado. | ||
* **cond** | * **cond** | ||
- | * **Rd** Registro destino. | + | * **rd** Registro destino. |
- | * **Rn** es el registro que contiene el primer operando. | + | * **rn** es el registro que contiene el primer operando. |
* **Oper2** segundo operando. | * **Oper2** segundo operando. | ||
Línea 158: | Línea 160: | ||
Estas instrucciones comparan el valor en un registro con Operando2. Actualizan los **indicadores** (bits) del registro de flags: **CPSR** en base al resultado, el resultado no afecta a ningún registro. | Estas instrucciones comparan el valor en un registro con Operando2. Actualizan los **indicadores** (bits) del registro de flags: **CPSR** en base al resultado, el resultado no afecta a ningún registro. | ||
- | cmp{cond} | + | cmp{cond} |
- | cmn{cond} | + | cmn{cond} |
donde: | donde: | ||
* **cond** es un código de condición opcional | * **cond** es un código de condición opcional | ||
- | * **Rn** registro conteniendo el primer operando | + | * **rn** registro conteniendo el primer operando |
* **Oper2** segundo operando | * **Oper2** segundo operando | ||
- | La instrucción **cmn resta** el valor de Operando2 del valor en Rn. Esto es lo mismo que una instrucción subs, excepto que el resultado se descarta. | + | La instrucción **cmp resta** el valor de Operando2 del valor en rn. Esto es lo mismo que una instrucción subs, excepto que el resultado se descarta. |
- | La instrucción **cmn Compare Negative** agrega el valor de Operando2 al valor en Rn. Esto es lo mismo que una instrucción adds, excepto que el resultado se descarta. | + | La instrucción **cmn Compare Negative** agrega el valor de Operando2 al valor en rn. Esto es lo mismo que una instrucción adds, excepto que el resultado se descarta. |
**Flags que modifica:** | **Flags que modifica:** |
×
iphelper toolbox
you see this when javscript or css is not working correct
Untested
arm_addsubcmp.1589226847.txt.gz · Última modificación: 2020/05/11 19:54 (editor externo)