MyStr
elemento de
seguido inmediatamente a $1B. Note que la dirección de inicio ($18) es
arbitraria y puede cambiar según se modifique el código o si el objeto mismo se incluye en
otra aplicación.
Data
Byte Address
(Byte Offset)
[Byte Symbol] —
Figura 2-1: Estructura y dirección de datos tamaño byte en memoria principal
Al
inicio
del
código
Temp := byte[@MyData][1]
Temp
variable local
a $AA; el primer valor leído de la dirección $19 de la memoria principal.
La dirección $19 se determina por la dirección del símbolo
balance 1. La siguiente simplificación progresiva lo demuestra.
byte[@MyData][1] byte[$18][1] byte[$18 + 1] byte[$19]
byte[@MyStr][0] := "M"
La siguiente línea,
principal. Activa el valor a la dirección de memoria principal $1B el caracter "M." La
dirección $1B se calcula con la dirección de
byte[@MyStr][0] byte[$1B][0] byte[$1B + 0] byte[$1B]
Direccionando Memoria Principal
Como se muestra en la Figura 2-1, la memoria principal es realmente solo un grupo de bytes
continuos y las direcciones son calculadas en forma de bytes. Este concepto es un sistema
confiable para cualquier comando que use direcciones.
La memoria principal es finalmente direccionada en términos de bytes sin importar el tamaño
del valor que se esta accesando; byte, word, o long. Esto es una ventaja cuando piensas acerca
de cuantos Bytes, Word y Longs se relacionan entre si, pero puede ser problemático cuando
se piensa en múltiples eventos de un tamaño sencillo como word o long. Ver las discusiones
WORD
de Sintaxis 3 de
(Pág. 234) y
2: Referencia de Lenguaje Spin –
64 $AA 55
"H"
—
—
$18
$19
$1A
$1B
—
(0)
(1)
(2)
(0)
[MyData]
[MyStr]
la
primer
línea
, lee un valor de tamaño byte de la memoria principal. Activa la
, escribe un valor de tamaño byte en la memoria
MyStr
LONG
(Pág. 134) para ejemplos de accesos de Word y Long.
"e"
"l"
"l"
"o"
0
$1C
$1D
$1E
$1F
$20
(1)
(2)
(3)
(4)
(5)
ejecutable
del
MyData
($18) mas el byte de
($1B) mas el byte de balance 0.
BYTE
MemTest
método
,