Please enable JavaScript.
Coggle requires JavaScript to display documents.
Salto y condicionales - Coggle Diagram
Salto y condicionales
Saltos
El salto siempre se realiza
En ensamblador siempre se usa una etiqueta para indicar el destino
B label: Etiqueta de salto
Carga el valor de la etiqueta al PC
Si se combina con los sufijos anteriores
Se ejecuta si la condición se cumple
No todos los procesadores Cortex -M soportan todas las condiciones directamente pero se pueden usar directamente
Existen instrucciones que saltan si 0:
CBZ Rn, Label:Salta si Rn=0
CBNZ Rn,label:salta si Rn=1
Ahorran una instrucción CMP Rn,#0 antes del salto
Comparación
Con signo
BEQ
Sin signo
BEQ
BNE
BNE
BGT
BHI
BLT
BLO
BGE
BHS
BLE
BLS
Comprobación de condición
!=
Con signo
NE
Sin signo
NE
Distinto a
z=0
==
Con signo
EQ
Sin signo
EQ
Igual que
Z=1
>
Sin signo
HI
Con signo
GT
Mayor que
GT z=0 y N=V
HI c=1 y z=0
<
Con signo
LT
Sin signo
LS
menor que
sin signo
LS
Con signo
LE
Menor igual
LS C=0 o Z=1
LE z=1 o N!=V
Reuso de registros
Los registros son limitados
Hay que guardalos en memoria
Los registros se reusan si están fuera de su rango de vida
Rango de un registro
El intercalo entre que se escribe en un registro y se lee por fin antes de volver a escribirse
Un registro puede tener multiples rangos de vida
Estructura if-then
Una estuctura if .then se ejecuta si se cumple la condición
Si no se cumple se bloque al a condición o se salta
En ensamblador se pueden implementar con una comparación y un salto
Bucle for
Mov r0,#0;i
Mov r1,#0; sum
Loop Cmp r0 #10
BGE endloop
ADD r1,r1,r0
ADD r0,r0,#1
B loop
endloop
Suma uno a i
Suma i
Si es mayor o igual salta al fin del bucle
Si i<10
sum=0
i=0;