2011-05-23 16 views
8

Estoy tratando de solucionar un error que estoy experimentando en mi aplicación. El seguimiento de la pila está apuntando a una instrucción LDR con el formato siguiente (desensamblador gracias):¿Qué significa el valor # asociado con la instrucción ARM LDR?

LDR R3, [R0,#4] 

Mi pregunta es en lo que respecta al componente de origen. ¿Qué significa el # 4 en el segundo parámetro? Supongo que es una especie de compensación, pero no he encontrado documentación que respalde eso para la instrucción LDR.

+0

En general en ensamblador brazo del # se utiliza para indicar un valor inmediato. –

Respuesta

8

Carga R3 desde la dirección en R0 + 4 bytes. Entonces, sí, es una compensación de bytes. See this explanation of the addressing modes.

+3

Para una cobertura realmente completa, siempre es prudente leer [ARM Assembly Language por Pete Cockerell] (http://www.peter-cockerell.net/aalp/html/frames.html) [(PDF)] (http: // www.peter-cockerell.net/aalp/resources/pdf/all.pdf) - un buen libro, bastante viejo, pero posiblemente sea la mejor ayuda de aprendizaje ARM. – Orbling

2

Se añade 4 al valor de R0 y la usa como la dirección para cargar un valor de 32 bits en el registro R3

Cuestiones relacionadas