Vous êtes sur la page 1sur 18

Cortex-M3 / M4F del conjunto de instrucciones

Instrucciones de acceso de memoria


Tabla 2-1 en la pgina 35 muestra las instrucciones de acceso a memoria:
Tabla 2-1. Instrucciones de acceso de memoria
Mnemotcnico

Breve descripcin

ADR

Cargar PC-relativa direccin

36

CLREX

Claro exclusiva

52

LDM {modo}

Cargar mltiples registros

46

LDR {tipo}

37

LDR {tipo}

Registro de carga mediante compensacin


inmediata
Registro de carga mediante registro compensado

LDR {tipo} T

Registro de carga con acceso sin privilegios

42

LDR {tipo}

Registro de carga utilizando la direccin-PC relativa

44

LDRD

Registro de carga utilizando la direccin-PC relativa (dos palabras)

44

LDREX {tipo}

Registro de carga exclusiva

50

POP

Pop registros de pila

48

EMPUJAR

Empuje registra en la pila

48

STM {modo}

Guarde mltiples registros

46

STR {tipo}

Registrate Tienda utilizando compensar inmediata

37

STR {tipo}

Registrate Tienda utilizando registro compensado

40

STR {tipo} T

Registrate Tienda con acceso sin privilegios

42

STREX {tipo}

Registrate Tienda exclusiva

50

04 de noviembre 2011

Consulte la pgina

40

35
Texas Instruments Incorporated

Instrucciones de acceso de memoria

2.1

ADR
Generar direccin-PC relativa.
M3
Se aplica a los ...

2.1.1

M4

M4F

Sintaxis
ADR {cond} Rd, etiqueta
donde:
cond
Es un cdigo de condicin opcional. Consulte la Tabla 1-2 en la pgina
33.
Rd
Es el registro de destino.
etiqueta
Es una expresin de PC relativa. Consulte "Expresiones en PC relativa" en la pgina 32.

2.1.2

Operacin
ADR determina la direccin mediante la adicin de un valor inmediato a la PC, y escribe el resultado a la
registro de destino.
ADR produce cdigo independiente de la posicin, ya que la direccin es-PC relativa.
Si utiliza ADR para generar una direccin de destino para una BX o BLX sentencia, hay que asegurarse de que poco
[0]
de la direccin se genera se establece en 1 para la correcta ejecucin.
Los valores de etiqueta debe estar dentro del rango de -4095-4.095 de la direccin en el PC.
Nota:

2.1.3

Puede que tenga que utilizar el .W sufijo para obtener el rango mximo de compensacin o para
generar
direcciones que no estn alineados por palabras. Consulte "Instruccin Anchura seleccin" en la
pgina 34.

Restricciones

Rd no debe ser SP y no deben ser PC.

2.1.4

Indicadores de condicin
Esta instruccin no cambia las banderas.

2.1.5

Ejemplos
ADR

R1, TextMessage

; Valor de la direccin de escritura de una ubicacin marcada como


; TextMessage a R1.

36

04 de noviembre 2011
Texas Instruments Incorporated

Cortex-M3 / M4F del conjunto de instrucciones

2.2

LDR y STR (inmediata Offset)


Cargar y tienda con inmediata offset, pre-indexados compensado inmediata, o post-indexados inmediata
offset.
M3
Se aplica a los ...

2.2.1

M4

M4F

Sintaxis
op {tipo} {cond} Rt, [Rn {, #offset}]

; compensado inmediata

op {tipo} {cond} Rt, [Rn, #offset]!

; pre-indexados

op {tipo} {cond} Rt, [Rn], #offset

; puesto indexada

OPD {cond} Rt, Rt2, [Rn {, #offset}]

; inmediatos offset, dos palabras

OPD {cond} Rt, Rt2, [Rn, #offset]!

; pre-indexados, dos palabras

OPD {cond} Rt, Rt2, [Rn], #offset

; post indexados, dos palabras

donde:
op
Es uno de:
LDR
Cargar en el Registro.
STR
Guarde Registro.
tipo
Es uno de:
B
Byte sin signo, cero se extienden a 32 bits en las cargas.
SB
Firmado byte, signo extiende a 32 bits (LDR solamente).
H
Media palabra sin signo, cero se extienden a 32 bits en las
cargas.
SH
Firmado media palabra, signo extiende a 32 bits (LDR
solamente).
Omite, por palabra.
cond
Es un cdigo de condicin opcional. Consulte la Tabla 1-2 en la pgina
33.

04 de noviembre 2011

37
Texas Instruments Incorporated

Instrucciones de acceso de memoria

Rt
Es el registro para cargar o almacenar.
Rn
Es el registro en el que se basa la direccin de memoria.
offset
Es un desplazamiento desde Rn. Si offset se omite, la direccin es el contenido de Rn.
Rt2
Es el registro adicional para cargar o almacenar para las operaciones de dos
palabras.

2.2.2

Operacin
LDR instrucciones cargan uno o dos registros con un valor de la memoria.
STR instrucciones almacenar uno o dos valores de registro en la memoria.
Cargar y almacenar instrucciones con compensacin inmediata pueden utilizar los siguientes modos de
direccionamiento:
Offset abordar
El valor de desplazamiento se suma o resta de la direccin obtenida del registro Rn. La
resultado se utiliza como la direccin para el acceso a la memoria. El registro Rn es inalterada. El conjunto
la sintaxis del lenguaje de este modo es:
[Rn, #offset]
Pre-direccionamiento indexado
El valor de desplazamiento se suma o resta de la direccin obtenida del registro Rn. La
resultado se utiliza como la direccin para el acceso a la memoria y escribe de nuevo en el registro Rn. La
sintaxis del lenguaje ensamblador para este modo es:
[Rn, #offset]!
Publicar un ndice de direccionamiento
La direccin obtenida del registro Rn se utiliza como la direccin para el acceso a la memoria. La
valor de desplazamiento se suma o resta de la direccin, y se escribe de nuevo en el registro Rn.
La sintaxis del lenguaje ensamblador para este modo es:
[Rn], #offset
El valor de la carga o la tienda puede ser un byte, media palabra, una palabra o dos palabras. Bytes y medias
palabras podrn revestir
o bien ser con o sin signo. Consulte "Alineacin de direcciones" en la pgina 31.
Tabla 2-2 en la pgina 38 muestra los rangos de desplazamiento para inmediata, pre-indexado y post-indexados
formas.
Tabla 2-2. Offset Rangos
Tipo de instruccin

Offset Inmediata

Pre-indexado

Publicar indexado-

Word, media palabra, media palabra firmada, -255-4095


byte o byte con signo

-255 A 255

-255 A 255

Dos palabras

Mltiplo de 4 en el rango
-1020-1020

Mltiplo de 4 en el rango
-1020-1020

Mltiplo de 4 en el rango
-1020-1020

38

04 de noviembre 2011
Texas Instruments Incorporated

Cortex-M3 / M4F del conjunto de instrucciones

2.2.3

Restricciones
Para obtener instrucciones de
carga:
Rt puede ser SP o Ordenador personal para slo
cargas de palabras.
Rt debe ser diferente de Rt2 para cargas de dos palabras.
Rn debe ser diferente de Rt y Rt2 en las formas pre-indexados o post indexado.
Cundo Rt es Ordenador personal en una instruccin
de carga palabra:
Bit [0] del valor cargado debe ser 1 para la ejecucin correcta.
Una rama se produce a la direccin creada cambiando poco [0] del valor cargado a 0.
Si la instruccin es condicional, debe ser la ltima instruccin en el Informtica bloque.
Para almacenar instrucciones:
Rt puede ser SP slo para tiendas de palabras.
Rt no debe ser PC.
Rn no debe ser PC.
Rn debe ser diferente de Rt y Rt2 en las formas pre-indexados o post indexado.

2.2.4

Indicadores de condicin
Estas instrucciones no cambian las banderas.

2.2.5

Ejemplos
LDR
LDRNE

R8, [R10]
R2, [R5, # 960]!

STR

R2, [R9, # const-estruc]

STRH

R3, [R4], # 4

LDRD

R8, R9, [R3, # 0x20]

Strd

R0, R1, [R8], # -16

;
;
;
;
;
;
;
;
;
;
;
;
;
;

Cargas R8 de la direccin en R10.


Cargas (condicional) R2 de una palabra
960 bytes anteriores de la direccin en R5, y
incrementos de R5 por 960.
const-estruc es una expresin que se evale
a una constante en el rango de 0-4095.
Tienda R3 como datos media palabra en la direccin en
R4, incremente R4 por 4.
Cargar R8 de una palabra 32 bytes por encima de la
abordar en R3, R9 y cargarla de una palabra 36
bytes por encima de la direccin en R3.
Tienda R0 para abordar en R8 y tienda R1 a
una palabra de 4 bytes por encima de la direccin en el R8,
y luego disminuir R8 por 16.

04 de noviembre 2011

39
Texas Instruments Incorporated

Instrucciones de acceso de memoria

2.3

LDR y STR (Registrar Offset)


Cargar y tienda con registro compensados.
M3
Se aplica a los ...

2.3.1

M4

M4F

Sintaxis
op {tipo} {cond} Rt, [Rn, Rm {, LSL # n}]
donde:
op
Es uno de:
LDR
Cargar en el Registro.
STR
Guarde Registro.
tipo
Es uno de:
B
Byte sin signo, cero se extienden a 32 bits en las cargas.
SB
Firmado byte, signo extiende a 32 bits (LDR solamente).
H
Media palabra sin signo, cero se extienden a 32 bits en las
cargas.
SH
Firmado media palabra, signo extiende a 32 bits (LDR
solamente).
Omite, por palabra.
cond
Es un cdigo de condicin opcional. Consulte la Tabla 1-2 en la pgina
33.
Rt
Es el registro para cargar o almacenar.
Rn
Es el registro en el que se basa la direccin de memoria.
Rm
Es un registro que contiene un valor que se utilizar como el
desplazamiento.
LSL #n
Es un cambio opcional, con nen el rango de 0 a 3.

40

04 de noviembre 2011
Texas Instruments Incorporated

Cortex-M3 / M4F del conjunto de instrucciones

2.3.2

Operacin
LDR operaciones cargan un registro con un valor de la memoria.
STR instrucciones almacenan un valor de registro en la memoria.
La direccin de memoria para cargar desde o almacenar a que est en un desplazamiento desde el registro
Rn. El desplazamiento es
especificada por el registro Rm y se puede desplazar a la izquierda por un mximo de 3 bits utilizando LSL.
El valor de la carga o la tienda puede ser un byte, media palabra, o una palabra. Para obtener instrucciones de
carga, bytes y medias palabras
o bien se puede con o sin signo. Consulte "Alineacin de direcciones" en la pgina 31.

2.3.3

Restricciones
En estas instrucciones:
Rn no debe ser PC.
Rm no debe ser SP y no deben ser PC.
Rt puede ser SP slo para cargas de palabras y tiendas de
palabras.
Rt puede ser Ordenador personal slo para
cargas de palabras.
Cundo Rt es Ordenador personal en una instruccin
de carga palabra:
Bit [0] del valor cargado debe ser 1 para la ejecucin correcta, y una rama se produce a esta
direccin media palabra-alineado.
Si la instruccin es condicional, debe ser la ltima instruccin en el Informtica bloque.

2.3.4

Indicadores de condicin
Estas instrucciones no cambian las banderas.

2.3.5

Ejemplos
STR
LDRSB

STR

R0, [R5, R1] ;


;
R0, [R5, R1, LSL # 1];
;
;
R0, [R1, R2, LSL # 2];
;

Tienda valor de R0 en una direccin igual a


suma de R5 y R1.
Leer valor de byte de una direccin igual a
suma de R5 y dos veces R1, signo ampliarla
a un valor de palabra y ponerla en R0.
Tienda R0 a una direccin igual a la suma de R1
y cuatro veces R2.

04 de noviembre 2011

41
Texas Instruments Incorporated

Instrucciones de acceso de memoria

2.4

LDR y STR (acceso sin privilegios)


Cargar y tienda con acceso sin privilegios.
M3
Se aplica a los ...

2.4.1

M4

M4F

Sintaxis
op {tipo} T {cond} Rt, [Rn {, #offset}]

; compensado inmediata

donde:
op
Es uno de:
LDR
Cargar en el Registro.
STR
Guarde Registro.
tipo
Es uno de:
B
Byte sin signo, cero se extienden a 32 bits en las cargas.
SB
Firmado byte, signo extiende a 32 bits (LDR solamente).
H
Media palabra sin signo, cero se extienden a 32 bits en las
cargas.
SH
Firmado media palabra, signo extiende a 32 bits (LDR
solamente).
Omite, por palabra.
cond
Es un cdigo de condicin opcional. Consulte la Tabla 1-2 en la pgina
33.
Rt
Es el registro para cargar o almacenar.
Rn
Es el registro en el que se basa la direccin de memoria.
offset
Es un desplazamiento desde Rn y puede ser de 0 a 255. Si offset se omite, la direccin es el valor en Rn.

42

04 de noviembre 2011
Texas Instruments Incorporated

Cortex-M3 / M4F del conjunto de instrucciones

2.4.2

Operacin
Estas instrucciones de carga y almacenamiento realizan la misma funcin que las instrucciones de acceso a
memoria
con compensacin inmediata (ver "LDR y STR (inmediata Offset)" en la pgina 37). La diferencia es que
estas instrucciones slo tienen un acceso sin privilegios, incluso cuando se utiliza en software privilegiada.
Cuando se utiliza en software sin privilegios, estas instrucciones se comportan exactamente de la misma manera
como normales
instrucciones de acceso a memoria con compensacin inmediata.

2.4.3

Restricciones
En estas instrucciones:
Rn no debe ser PC.
Rt no debe ser SP y no deben ser PC.

2.4.4

Indicadores de condicin
Estas instrucciones no cambian las banderas.

2.4.5

Ejemplos
STRBTEQ

R4, [R7]

LDRHT

R2, [R2, # 8]

;
;
;
;

Almacenar condicionalmente byte menos significativo en


R4 a una direccin en R7, con acceso sin privilegios.
Cargar valor media palabra de una direccin igual a
suma de R2 y 8 en R2, con acceso sin privilegios.

04 de noviembre 2011

43
Texas Instruments Incorporated

Instrucciones de acceso de memoria

2.5

LDR (PC-Relativo)
Cargar registrar desde la memoria.
M3
Se aplica a los ...

2.5.1

M4

M4F

Sintaxis
LDR {tipo} {cond} Rt, etiqueta
LDRD {cond} Rt, Rt2, etiqueta

; Cargue dos palabras

donde:
tipo
Es uno de:
B
Byte sin signo, cero se extiende a 32 bits.
SB
Firmado byte, signo extiende a 32 bits.
H
Media palabra sin signo, cero se extiende a 32 bits.
SH
Firmado media palabra, signo extiende a 32 bits.
Omite, por palabra.
cond
Es un cdigo de condicin opcional. Consulte la Tabla 1-2 en la pgina
33.
Rt
Es el registro para cargar o almacenar.
Rt2
Es el segundo registro para cargar o almacenar.
etiqueta
Es una expresin de PC relativa. Consulte "Expresiones en PC relativa" en la pgina 32.

2.5.2

Operacin
LDR carga un registro con un valor de una direccin de memoria PC-relativa. La direccin de memoria es
especificado por una etiqueta o un desplazamiento desde el PC.
El valor de la carga o la tienda puede ser un byte, media palabra, o una palabra. Para obtener instrucciones de
carga, bytes y medias palabras
o bien se puede con o sin signo. Consulte "Alineacin de direcciones" en la pgina 31.
etiqueta debe estar dentro de una gama limitada de la instruccin actual. Tabla 2-3 en la pgina 45 muestra la
posibles compensaciones entre etiqueta y el PC.

44

04 de noviembre 2011
Texas Instruments Incorporated

Cortex-M3 / M4F del conjunto de instrucciones

Tabla 2-3. Offset Rangos


Tipo de instruccin

Offset Rango

Word, media palabra, media palabra firmada, byte, byte con signo

-4095-4.095

Dos palabras

-1020-1020

un

a. Puede que tenga que utilizar el .W sufijo para obtener el rango de desplazamiento mximo. Consulte "Instruccin Anchura seleccin" en la
pgina 34.

2.5.3

Restricciones
En estas instrucciones:
Rt puede ser SP o Ordenador personal slo para
cargas de palabras.
Rt2 no debe ser SP y no deben ser PC.
Rt debe ser diferente de Rt2.
Cundo Rt es Ordenador personal en una instruccin
de carga palabra:
Bit [0] del valor cargado debe ser 1 para la ejecucin correcta, y una rama se produce a esta
direccin media palabra-alineado.
Si la instruccin es condicional, debe ser la ltima instruccin en el Informtica bloque.

2.5.4

Indicadores de condicin
Estas instrucciones no cambian las banderas.

2.5.5

Ejemplos
LDR

R0, LookupTable

LDRSB

R7, LocalData

;
;
;
;
;

Cargar R0 con una palabra de datos de una direccin


etiquetado como LookupTable.
Cargar un valor de byte de una direccin de etiquetado
como LocalData, signo extenderlo a una palabra
valor, y lo puso en R7.

04 de noviembre 2011

45
Texas Instruments Incorporated

Instrucciones de acceso de memoria

2.6

LDM y STM
Cargar y almacenar registros mltiples.
M3
Se aplica a los ...

2.6.1

M4

M4F

Sintaxis
op {addr_mode} {cond} {Rn!}, reglist
donde:
op
Es uno de:
LDM
Cargar registros mltiples.
STM
Guarde registros mltiples.
addr_mode
Es uno cualquiera de los siguientes:
Iowa
Direccin Incremento Despus de cada acceso. Este es el valor
predeterminado.
DB
Direccin Disminuir Antes de cada acceso.
cond
Es un cdigo de condicin opcional. Consulte la Tabla 1-2 en la pgina
33.
Rn
Es el registro en el que se basan las direcciones de memoria.
!
Es un sufijo de reescritura opcional. Si! est presente, entonces la direccin de final, que se carga desde o
almacenada
a, se escribe de nuevo en Rn.
reglist
Es una lista de uno o ms registros que se cargue o se almacena, entre llaves. Puede contener registro
rangos. Tiene que ser separados por comas si contiene ms de un registro o se registra gama. Ver
47.
LDM y LDMFD son sinnimos de LDMIA. LDMFD se refiere a su uso para hacer estallar los datos de Full
Descendiendo pilas.
LDMEA es un sinnimo de LDMDB, y se refiere a su uso para hacer estallar los datos de las chimeneas Ascendente
vacos.
STM y STMEA son sinnimos de STMIA. STMEA se refiere a su uso para empujar datos en vaco
Ascendente pilas.
STMFD es sinnimo de s STMDb, y se refiere a su uso para empujar datos en pilas completa Descendente

46

04 de noviembre 2011
Texas Instruments Incorporated

Cortex-M3 / M4F del conjunto de instrucciones

2.6.2

Operacin
LDM instrucciones cargan los registros en reglist con valores de palabras de direcciones de memoria basan en
Rn.
STM instrucciones almacenan los valores de las palabras en los registros en reglist a direcciones de memoria
basado en Rn.
Para LDM, LDMIA, LDMFD, STM, STMIA, y STMEA, las direcciones de memoria utilizados para los accesos
son a intervalos de 4 bytes que van desde Rn a Rn + 4 * (n-1), donde nes el nmero de registros en reglist.
Los accesos suceden en orden creciente de nmeros de registro, con el registro de nmero ms bajo
utilizando la direccin de memoria ms bajo y el ms alto nmero de registro utilizando la direccin de memoria ms
alta.
Si se especifica el sufijo de reescritura, el valor de Rn + 4 * (n-1) se vuelve a escribir Rn.
Para LDMDB, LDMEA, STMDb, y STMFD, las direcciones de memoria utilizados para los accesos son en 4 bytes
intervalos que van desde Rn a Rn - 4 * (n-1), donde nes el nmero de registros en reglist. Los accesos
suceder en orden decreciente de nmeros de registro, con el registro de nmero ms alto utilizando la ms alta
direccin de memoria y el nmero de registro ms bajo utilizando la direccin de memoria ms baja. Si la reescritura
se especifica sufijo, el valor de Rn - 4 * (n-1) se vuelve a escribir Rn.
La EMPUJAR y POP instrucciones pueden ser expresadas en este formulario. Ver "PUSH y POP" en la pgina 48
para ms detalles.

2.6.3

Restricciones
En estas instrucciones:
Rn no debe ser PC.
reglist no debe contener SP.
En cualquier STM instruccin, reglist no debe contener PC.
En cualquier LDM instruccin, reglist no debe contener Ordenador personal si contiene
LR.
reglist no debe contener Rn si especifica el sufijo de reescritura.
Cundo Ordenador personal est en reglist en una LDM
instruccin:
Bit [0] del valor cargado en el Ordenador personal debe ser 1 para la ejecucin correcta, y una rama se produce a
esta
direccin media palabra-alineado.
Si la instruccin es condicional, debe ser la ltima instruccin en el Informtica bloque.

2.6.4

Indicadores de condicin
Estas instrucciones no cambian las banderas.

2.6.5

Ejemplos
LDM
STMDb

2.6.6

R8, {R0, R2, R9}; LDMIA es sinnimo de LDM.


R1!, {R3-R6, R11, R12}

Ejemplos incorrectos
STM
LDM

R5, {R5, R4, R9}!; Valor almacenado para R5 es impredecible.


R2, {}; Debe haber al menos un registro en la lista.

04 de noviembre 2011

47
Texas Instruments Incorporated

Instrucciones de acceso de memoria

2.7

EMPUJE y POP
Empuje registros de pop y registra de una pila de pleno descendente.
M3
Se aplica a los ...

2.7.1

M4

M4F

Sintaxis
EMPUJE {cond} reglist
POP {cond} reglist
donde:
cond
Es un cdigo de condicin opcional. Consulte la Tabla 1-2 en la pgina
33.
reglist
Es una lista no vaca de registros, entre llaves. Puede contener rangos de registro. Debe ser
separados por comas si contiene ms de un registro o se registra gama.
EMPUJAR y POP son sinnimos de STMDb y LDM (O LDMIA) con las direcciones de memoria para el
acceso basado en SP, y con la direccin de final para el acceso escrito de nuevo a la SP. EMPUJAR y
POP son los mnemnicos preferidos en estos casos.

2.7.2

Operacin
EMPUJAR tiendas registra en la pila en orden decreciente de nmeros de registro, con el nmero ms alto
registro utilizando la direccin de memoria ms alta y el registro de nmero ms bajo con el ms bajo
direccin de memoria.
POP cargas registra desde la pila en orden creciente de nmeros de registro, con el nmero ms bajo
registrarse utilizando la direccin de memoria ms bajo y el ms alto registro foliado con la ms alta
direccin de memoria.
Consulte "LDM y STM" en la pgina 46 para ms informacin.

2.7.3

Restricciones
En estas instrucciones:
reglist no debe contener SP.
Para la EMPUJAR instruccin, reglist no debe contener PC.
Para la POP instruccin, reglist no debe contener Ordenador personal si contiene LR.
Cundo Ordenador personal est en reglist en una POP
instruccin:
Bit [0] del valor cargado en el Ordenador personal debe ser 1 para la ejecucin correcta, y una rama se produce a
esta
direccin media palabra-alineado.
Si la instruccin es condicional, debe ser la ltima instruccin en el Informtica bloque.

48

04 de noviembre 2011
Texas Instruments Incorporated

Cortex-M3 / M4F del conjunto de instrucciones

2.7.4

Indicadores de condicin
Estas instrucciones no cambian las banderas.

2.7.5

Ejemplos
EMPUJAR {R0, R4-R7}
EMPUJAR {R2, LR}
POP
{R0, R10, PC}

04 de noviembre 2011

49
Texas Instruments Incorporated

Instrucciones de acceso de memoria

2.8

LDREX y STREX
Cargar y tienda Registro Unico.
M3
Se aplica a los ...

2.8.1

M4

M4F

Sintaxis
LDREX {cond} Rt, [Rn {, #offset}]
STREX {cond} Rd, Rt, [Rn {, #offset}]
LDREXB {cond} Rt, [Rn]
STREXB {cond} Rd, Rt, [Rn]
LDREXH {cond} Rt, [Rn]
STREXH {cond} Rd, Rt, [Rn]
donde:
cond
Es un cdigo de condicin opcional. Consulte la Tabla 1-2 en la pgina
33.
Rd
Es el registro de destino para el estado devuelto.
Rt
Es el registro para cargar o almacenar.
Rn
Es el registro en el que se basa la direccin de memoria.
offset
Es un desplazamiento opcional aplica al valor en Rn. Si offset se omite, la direccin es el valor
en Rn.

2.8.2

Operacin
LDREX, LDREXB, y LDREXH cargar una palabra, byte, media palabra y, respectivamente, de una direccin de
memoria.
STREX, STREXB, y STREXH intentar almacenar una palabra, byte, media palabra y, respectivamente, a una
memoria
direccin. La direccin utilizada en cualquier instruccin-Store exclusivo debe ser la misma que la direccin en
la instruccin de carga exclusiva ejecutado ms recientemente. El valor almacenado por la tienda-Exclusiva
instruccin tambin debe tener el mismo tamao de los datos como el valor cargado por el anterior Load-exclusiva
instruccin. Esto significa que el software debe utilizar siempre una instruccin de carga exclusivo y un juego
-Store exclusivo de instrucciones para realizar una operacin de sincronizacin (consulte "Sincronizacin Primitives"
en el Stellaris Data Sheet).
Si una instruccin-Store exclusivo realiza la tienda, se escribe un 0 en su registro de destino. Si no lo hace
realizar la tienda, escribe 1 a su registro de destino. Si la instruccin-Store exclusivo escribe 0 a
el registro de destino, se garantiza que ningn otro proceso en el sistema ha accedido a la
posicin de memoria entre las instrucciones de carga exclusiva y tienda exclusiva.

50

04 de noviembre 2011
Texas Instruments Incorporated

Cortex-M3 / M4F del conjunto de instrucciones

Por razones de rendimiento, mantener el nmero de instrucciones entre correspondiente Load-Exclusiva


y la instruccin tienda-Exclusiva al mnimo.
Importante: El resultado de la ejecucin de una instruccin-Store exclusivo a una direccin que es diferente de
la utilizada en la instruccin de carga Exclusivo anterior es impredecible.

2.8.3

Restricciones
En estas instrucciones:
No utilice PC.
No utilice SP para Rd y Rt.
Para STREX, Rd debe ser diferente de ambos Rt y Rn.
El valor de offset debe ser un mltiplo de cuatro en el rango de 0 a 1.020.

2.8.4

Indicadores de condicin
Estas instrucciones no cambian las banderas.

2.8.5

Ejemplos
MOV
intentar
LDREX
CMP
ITT
STREXEQ
CMPEQ
BNE
....

R1, # 0x1

; Inicialice el valor 'bloquear tomado'.

R0, [LockAddr]
R0, # 0
EQ
R0,
R1, [LockAddr]
R0,
#0
intentar

;
;
;
;
;
;
;

Cargar el valor de bloqueo.


Es el cierre libre?
Instruccin de TI para STREXEQ y CMPEQ.
Pruebe y reclamar la cerradura.
Logr esto?
No - vuelva a intentarlo.
S - tenemos la cerradura.

04 de noviembre 2011

51
Texas Instruments Incorporated

Instrucciones de acceso de memoria

2.9

CLREX
Claro Exclusivo.
M3
Se aplica a los ...

2.9.1

M4

M4F

Sintaxis
CLREX {cond}
donde:
cond
Es un cdigo de condicin opcional. Consulte la Tabla 1-2 en la pgina
33.

2.9.2

Operacin
Uso CLREX para que la prxima STREX, STREXB, o STREXH instruccin de escritura 1 a su registro de destino
y dejara de ejecutar la tienda. Es til en cdigo de controlador de excepcin para forzar el fracaso de la tienda
exclusivo, si se produce la excepcin entre una instruccin exclusivo de carga y la tienda juego
instruccin exclusiva en una operacin de sincronizacin (consulte "Sincronizacin Primitives" en el Stellaris
Ficha De Datos).

2.9.3

Indicadores de condicin
Esta instruccin no cambia las banderas.

2.9.4

Ejemplos
CLREX

52

04 de noviembre 2011
Texas Instruments Incorporated

Vous aimerez peut-être aussi