Parallax Propeller P8X32A Manual Del Usuario página 136

Tabla de contenido
LONG
– Referencia de Lenguaje Spin
La memoria principal es finalmente direccionada en términos de bytes sin importar el tamaño
del valor que esta accesando; byte, word, o long. Esto tiene ventajas si se piensa como los
bytes, words, y longs se relacionan entre si. Pero puede ser problemático cuando se piensa en
múltiples piezas de un solo tamaño, como longs.
LONG
Por esta razón el denominador
es una característica útil para facilitar el direccionamiento
desde una perspectiva céntrica long. Su campo BaseAddress cuando se combina con el campo
opcional Offset opera en modo conciente de la base.
Imagine accesar longs de memoria desde un punto de inicio (BaseAddress). Quizá piense
naturalmente al siguiente long como una cierta distancia desde ese punto (Offset). Mientras
esos longs son realmente un cierto numero de "bytes" mas allá de un punto dado, es mas
th
sencillo pensar en ellos como un numero de "longs" mas allá de un punto (por ejemplo, el 4
th
LONG
long, en vez de el long que empieza después del 12
byte). El denominador
e trata
apropiadamente tomando el valor de Offset (unidades de longs), multiplicado por 4 (numero
de bytes por cada long), y suma ese resultado a BaseAddress para determinar el long correcto
de memoria a leer. también limpia los dos bits mas bajos de BaseAddress para asegurar que la
dirección referenciada es un alineado long.
MyData
long[@MyData][0]
así, cuando se leen valores de la lista
,
lee el valor del primer long y
long[@MyData][1]
lee el segundo.
Si el campo Offset no se uso las instrucciones de arriba deberán ser algo así como
long[@MyData]
long[@MyData+4]
, y
, respectivamente. El resultado es el mismo pero la forma
de escribirlo puede no ser tan clara.
DAT
Para mas explicación de como se acomodan los datos en memoria vea la sección
en
Declaración de Data(Sintaxis 1) en Pág. 103.
Una alternativa de referencia de Memoria
Aun hay otra forma de accesar los datos desde el código del ejemplo de arriba; se podrá
referenciar los símbolos de datos directamente. por ejemplo estas instrucciones leerán los
MyData
primeros dos longs de la lista
:
Temp := MyData[0]
Temp := MyData[1]
así que ¿por que no usar directamente los símbolos de referencia todo el tiempo? Considere
el caso siguiente:
Temp := MyList[0]
Temp := MyList[1]
Pagina 136 · Manual Propeller v1.1
Tabla de contenido
loading

Productos relacionados para Parallax Propeller P8X32A

Este manual también es adecuado para:

Propeller p8x32a-d40Propeller p8x32a-q44Propeller p8x32a-m44

Tabla de contenido