| |
|
|
- Página 1 - |
|
|
if 0
{$cleq}
endif
declarar bereich#, y&, z&
dim bereich#,16
imprimir
imprimir "Erster Test para Umgang con Bereichsvariablen# y einfachen Bereichen en XPIA"
imprimir " (In diesem Teil es ausschließlich en long&-Werte con 4 Byte = 32 bit)"
imprimir
z& = 1234567899
y& = 1212
imprimir "------ Profano-Teil ------"
imprimir "An Position 0 de bereich# se zugewiesen",z&
long bereich#,0 = z&
imprimir "An Position 4 de bereich# se zugewiesen",y&
long bereich#,4 = y&
imprimir "Probe: An Position 0 des Bereiches es tatsächlich", @long(bereich#,0)
imprimir " An Position 4 des Bereiches es tatsächlich", @long(bereich#,4)
imprimir
imprimir "Die Variable ´bereich#´ zeigt el Wert",bereich#
set("decimals",0)
imprimir "Die Función Addr( bereich# ) liefert ebenfalls", Addr( bereich# )
imprimir "Addr( bereich# ) liefert also el Inhalt des Zeigers ´bereich#´"
imprimir "Aber worauf zeigt él?"
imprimir
imprimir "---- Assemblerteil ----"
AsmStart Alig1( bereich# )
MOV EAX, para1
AsmEnd (z&)
Imprimir "Der Inhalt de ´bereich#´, es con MOV EAX eingelesen als", z&
AsmStart Alig3( bereich# )
MOV EBX,para1
LEA EAX, [EBX]
AsmEnd (z&)
Imprimir "Test: Para1 zeigt en Speicherstelle", z&
AsmStart Alig2( bereich# )
LEA EAX, para1
AsmEnd (z&)
Imprimir "An Speicherstelle ´bereich#´ es una 32bit-Zeiger, el auf", z&,"zeigt."
imprimir "----------------------"
imprimir "Der 16-byte-alignment-Versatz des Bereichsbeginns es ", z& mod 16
imprimir "Ergebnis NULL es SEHR wichtig para schnelle SSE/SIMD-Algorithmen!"
imprimir "----------------------"
AsmStart Alig4( bereich# )
LEA EBX, para1
LEA EAX, [EBX]
AsmEnd (z&)
Imprimir "Probe: para1 verweist indirekt auf", z&
AsmStart Alig5( bereich# )
MOV EBX, para1
MOV EAX, [EBX]
AsmEnd (z&)
Imprimir "Und hay wiederum es = ", z&
AsmStart Alig6( bereich# )
MOV EBX, para1
MOV EAX, [EBX + 4]
AsmEnd (z&)
Imprimir "Und 4 Byte más es = ", z&
Imprimir "----- Mi Schlussfolgerung -----"
imprimir "´Der Inhalt de bereich#´ stellt Así que una interner Zeiger dar, en el "
imprimir "der Beginn des reservierten Speicherbereiches vermerkt es!"
imprimir
imprimir "Garantie gibts natürlich no! Aber dafür herzliche Grüße de Pájaro carpintero ;-)"
WaitInput
disponer bereich#
End
Editar de Jörg: Con el el código-Tags scheint echt schwer a ser! Stimmt, woher debería Principiante auch wissen, daß el # qué con Code a tun ha? |
|
|
| |
|
|
|
| |
|
- Página 1 - |
|
| @Peter: Kompileranweisungen des XPSE musst No en un Blockanweisung ablegen - esta se XProfan sowieso no erreichen si XPSE vorgeschaltet es.
Si usted todavía el Anweisung beibehalten möchtest, sin XPSE a nutzen, entonces hay esta una undokumentierten Trick: Das Ausklammern de XPSE-Kompileranweisungen puede ser z.B. con el Remtyp y el Remtyp //, verwendest Usted sin embargo zweimal el Signo , also , Luego se el Schalter de XProfan (natürlich) dank Rem übersehen - aber XPSE krallt se el Schalter trotzdem. El Excepción gilt aber sólo para 2 x antes Anweisung.
|
|
|
| |
|
|
|
Jörg Sellmeyer | Si usted una Speicherbereich necesidad, el se a Laufzeit no ändert (außer por Su Programa), Usted necesita ihn simplemente sólo al Anfang des Programms deklarieren y todavía gewünschter Größe dimensionieren. Der Zona se solange reserviert, a él con Disponer Var# otra vez freigegeben se. Früher waren sólo solche no-dynamische Bereichsvariablen posible. Ob el entonces en Windows tatsächlich a physikalisch aufeinanderfolgenden Adressen beschrieben voluntad, wage Yo a bezweifeln. Das dürfte vom Defragmentierungszustand des Rams abhängen. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 28.08.2008 ▲ |
|
|
|
|
Jörg Sellmeyer | IF
@Peter: Kompileranweisungen des XPSE musst No en un Blockanweisung ablegen - esta se XProfan sowieso no erreichen si XPSE vorgeschaltet es. Si usted todavía el Anweisung beibehalten möchtest, sin XPSE a nutzen, entonces hay esta una undokumentierten Trick: Das Ausklammern de XPSE-Kompileranweisungen puede ser z.B. con el Remtyp y el Remtyp //, verwendest Usted sin embargo zweimal el Signo , also , Luego se el Schalter de XProfan (natürlich) dank Rem übersehen - aber XPSE krallt se el Schalter trotzdem. El Excepción gilt aber sólo para 2 x antes Anweisung.
Das hast No dokumentiert? Es el beste Feature überhaupt a XPSE! Schön, el auch veces a erfahren. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 28.08.2008 ▲ |
|
|
|
|
|
Ob el entonces en Windows tatsächlich a physikalisch aufeinanderfolgenden Adressen beschrieben voluntad, wage Yo a bezweifeln.
Como bin Yo sicher. Sonst könnten nosotros sí el mühe sparen , solch kurze Befehle auszudenken. Weil beim starten uno Programmes (hier Profano) dieser Raum sólo todavía para el una Programa Profano disponible es. Wenn du una 2. Profano startest y probehalber el gleiche Adresszahl eingibst, wirst du no en el Speicher zugreifen puede de Profano beim 1. Start, obwohl beim 2. Programa el Adresse auch disponible es, du bekommst una otro Valor. Wenn dein Ram a el Punto defekt es wist du el Zahl no mehr encontrar.
Wenn uno el Programa.exe de Profano natürlich producido, con una Disassembler bearbeitet, wirst du lo determinar.
mf peter |
|
|
| |
|
|
|
Jörg Sellmeyer | Defekter Ram debería esta una untergeordnete Papel spielen. Angenommen Su Ram sieht así de:
Daten|Daten|Daten|Daten|Daten| |Daten| |Daten|Daten| |Daten| | | | | | | | | Und Usted startest Su Programa, entonces glaube Yo no, daß el Speicher hiterher así aussieht:
Daten|Daten|Daten|Daten|Daten| |Daten| |Daten|Daten| |Daten|Profan|Profan|Profan|Profan|Profan| | | | Sondern así:
Daten|Daten|Daten|Daten|Daten|Profan|Daten|Profan|Daten|Daten|Profan|Daten|Profan|Profan| | | | | | | |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 28.08.2008 ▲ |
|
|
|
|
| Jörg Sellmeyer
Ob el entonces en Windows tatsächlich a physikalisch aufeinanderfolgenden Adressen beschrieben voluntad, wage Yo a bezweifeln. Das dürfte vom Defragmentierungszustand des Rams abhängen.
El physikalische Adresse erhält uno eh nie, sólo una Zuordnungsadresse (welche oft fälschlich como phy Addr verkannt se) y esta ändert se - (aber) je después de Reservierungsmethode - normalerweise a a una möglichen Redimensionierung no.
Ge DIM ter Speicher behält also seine Adresse a él otra vez con Dim redimensioniert se oder gar freigegeben. |
|
|
| |
|
|
|
| Peter Bierbachh
Weil beim starten uno Programmes (hier Profano) dieser Raum sólo todavía para el una Programa Profano disponible es.
Es de una otro Grund falso. Jeder Prozess ha como así seinen eigenen Adressbereich - reden wir hier aber veces sólo de NT. (y no de älteren Windowsversionen como z.B. 98 wo el Speichergeschehen no tan organisiert (sicher) war.)
Usted puede natürlich auch Speicher reservieren welcher para todos Prozesse verfügbar es - sólo una Cuestión de Art el Reservierung.
Dim reserviert unbeweglichen Speicher el para gewöhnlich sólo en el erzeugenden Prozess verfügbar es, y natürlich en übergeordneten Leveln z.B. si el propio Programa el UserMode verlässt. (como z.B. Treiber) |
|
|
| |
|
|
|
| @Peter: Hast Usted Usted todavía una zweiten Account zugelegt? (con 2 h al Ende des Nachnamen?) |
|
|
| |
|
|
|
| Lo son sólo el con el 2h. Das una h kriege Yo no weg. Wollte Yo ya überberschreiben, entonces kam Yo no mehr dran.
mfg |
|
|
| |
|
|
|
| Wer qué en el Computer macht, me está eigentlich wurscht.
Mit el Speichergedöns debería el selbsternannten Fachleute rumschlagen. es no mi Welt. Und si Windows el Speicher de Aldi holt, Hauptsache det Programa se ejecuta.
mfg peter |
|
|
| |
|
|
| |
|
- Página 2 - |
|
|
| @Peter: Äh, Yo pensamiento a hast dazu el 2. Contribución geschrieben? Oder hay zwei Peter B. ? Bitte como bist du a el Eingabewert "von Hand" gekommen?
Pensé eigentlich, mein Progi bastante oben zeigt, daß como una Zeiger en el real Datenbereich dazwischengeschaltet es. Auf XP scheint el jedenfalls así a ser, oder qué tener Yo no kapiert?
Saludo P. Pájaro carpintero (Zwecks Unterscheidung el Peters Por favor, simplemente con Pájaro carpintero anreden, bins gewohnt!) |
|
|
| |
|
|
|
| Peter Bierbachh
Lo son sólo el con el 2h. Das una h kriege Yo no weg. mfg
Lo son una Mitglied con el Namen sin 2 h al Ende, beide de Lünebrug. |
|
|
| |
|
|