| |
|
|
- page 1 - |
|
|
si 0
{$cleq}
endif
declare bereich#, y&, z&
dim bereich#,16
imprimer
imprimer "Erster Test zum Umgang avec Bereichsvariablen# et einfachen Bereichen dans XPIA"
imprimer " (dans diesem partie ca va ausschließlich um long&-Werte avec 4 Byte = 32 bit)"
imprimer
z& = 1234567899
y& = 1212
imprimer "------ Profan-partie ------"
imprimer "An Position 0 de bereich# wird zugewiesen",z&
long bereich#,0 = z&
imprimer "An Position 4 de bereich# wird zugewiesen",y&
long bereich#,4 = y&
imprimer "Probe: à Position 0 des Bereiches steht tatsächlich", @long(bereich#,0)
imprimer " à Position 4 des Bereiches steht tatsächlich", @long(bereich#,4)
imprimer
imprimer "Die Variable ´bereich#´ zeigt den Wert",bereich#
set("decimals",0)
imprimer "Die Funktion Addr( bereich# ) liefert ebenfalls", Addr( bereich# )
imprimer "Addr( bereich# ) liefert alors den le contenu des Zeigers ´bereich#´"
imprimer "Aber worauf zeigt il?"
imprimer
imprimer "---- Assemblerteil ----"
AsmStart Alig1( bereich# )
MOV EAX, para1
AsmEnd (z&)
Imprimer "Der le contenu de ´bereich#´, wird avec MOV EAX lire als", z&
AsmStart Alig3( bereich# )
MOV EBX,para1
LEA EAX, [EBX]
AsmEnd (z&)
Imprimer "Test: Para1 zeigt sur Speicherstelle", z&
AsmStart Alig2( bereich# )
LEA EAX, para1
AsmEnd (z&)
Imprimer "An Speicherstelle ´bereich#´ steht un 32bit-aiguille, qui auf", z&,"zeigt."
imprimer "----------------------"
imprimer "Der 16-byte-alignment-Versatz des Bereichsbeginns ist ", z& mod 16
imprimer "Ergebnis NULL ist SEHR important pour schnelle SSE/SIMD-Algorithmen!"
imprimer "----------------------"
AsmStart Alig4( bereich# )
LEA EBX, para1
LEA EAX, [EBX]
AsmEnd (z&)
Imprimer "Probe: para1 verweist indirect auf", z&
AsmStart Alig5( bereich# )
MOV EBX, para1
MOV EAX, [EBX]
AsmEnd (z&)
Imprimer "Und là wiederum steht = ", z&
AsmStart Alig6( bereich# )
MOV EBX, para1
MOV EAX, [EBX + 4]
AsmEnd (z&)
Imprimer "Und 4 Byte plus steht = ", z&
Imprimer "----- mon Schlussfolgerung -----"
imprimer "´Der le contenu de bereich#´ stellt alors un interner aiguille dar, dans dem "
imprimer "der Beginn des reservierten Speicherbereiches vermerkt ist!"
imprimer
imprimer "Garantie gibts naturellement aucun! mais pour herzliche Grüße de Specht ;-)"
WaitInput
dispose bereich#
Fin
Éditer de Jörg: Avec l' den Code-Tags scheint vraie schwer trop son! Stimmt, woher devoir Débutant aussi savons, qui cela # quoi avec Code trop 1faire hat? |
|
|
| |
|
|
|
| |
|
- page 1 - |
|
| @Peter: Kompileranweisungen des XPSE musst Du pas dans un Blockanweisung enlever - cet wird XProfan sowieso pas erreichen si XPSE vorgeschaltet ist.
si Du toutefois qui Anweisung beibehalten vouloir, sans XPSE trop nutzen, ensuite gibt es hierfür une undokumentierten Trick: cela Ausklammern de XPSE-Kompileranweisungen peux on z.B. avec dem Remtyp et dem Remtyp //, verwendest Du cependant zweimal cela marque , alors , ensuite wird qui commutateur de XProfan (naturellement) dank Rem übersehen - mais XPSE krallt sich den commutateur quand même. qui Ausnahme gilt mais seulement pour 2 x avant qui Anweisung.
|
|
|
| |
|
|
|
Jörg Sellmeyer | si Du une Speicherbereich besoin, qui sich zur Laufzeit pas ändert (sauf par Dein Programme), brauchst Du ihn simple seulement am Anfang des Programms déclarer et encore gewünschter Taille dimensionieren. qui Bereich wird solange reserviert, jusqu'à il avec Dispose Var# wieder freigegeben wird. Früher étions seulement solche pas-dynamische Bereichsvariablen possible. si qui ensuite dans Windows réellement à physikalisch aufeinanderfolgenden Adressen beschrieben volonté, wage je trop bezweifeln. cela pourrait vom Defragmentierungszustand des Rams dépendre. |
|
|
| 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 Du pas dans un Blockanweisung enlever - cet wird XProfan sowieso pas erreichen si XPSE vorgeschaltet ist. si Du toutefois qui Anweisung beibehalten vouloir, sans XPSE trop nutzen, ensuite gibt es hierfür une undokumentierten Trick: cela Ausklammern de XPSE-Kompileranweisungen peux on z.B. avec dem Remtyp et dem Remtyp //, verwendest Du cependant zweimal cela marque , alors , ensuite wird qui commutateur de XProfan (naturellement) dank Rem übersehen - mais XPSE krallt sich den commutateur quand même. qui Ausnahme gilt mais seulement pour 2 x avant qui Anweisung.
cela la hâte Du pas dokumentiert? c'est cela beste Feature überhaupt à XPSE! joli, cela aussi la fois trop erfahren. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 28.08.2008 ▲ |
|
|
|
|
|
si qui ensuite dans Windows réellement à physikalisch aufeinanderfolgenden Adressen beschrieben volonté, wage je trop bezweifeln.
là suis je mir sûrement. Sonst könnten wir uns oui qui mühe sparen , solch kurze Befehle auszudenken. Weil beim starten eines Programmes (ici Profan) cette espace seulement encore pour cela une Programme Profan vorhanden ist. si du un 2. Profan startest et probehalber qui gleiche Adresszahl eingibst, wirst du pas sur den grenier zugreifen peut de Profan beim 1. Start, quoique beim 2. Programme qui Adresse aussi vorhanden ist, du bekommst une anderen Wert. si dein Ram à qui Stelle défaut ist wist du qui numéro pas plus trouver.
si on qui Programme.exe de Profan naturellement hergestellt, avec einem Disassembler bearbeitet, wirst du es feststellen.
mf peter |
|
|
| |
|
|
|
Jörg Sellmeyer | Defekter Ram sollte dabei une untergeordnete rôle spielen. Angenommen Dein Ram sieht so aus:
Daten|Daten|Daten|Daten|Daten| |Daten| |Daten|Daten| |Daten| | | | | | | | | et Du startest Dein Programme, ensuite glaube je pas, qui qui grenier hiterher so aussieht:
Daten|Daten|Daten|Daten|Daten| |Daten| |Daten|Daten| |Daten|Profan|Profan|Profan|Profan|Profan| | | | Sondern so:
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
si qui ensuite dans Windows réellement à physikalisch aufeinanderfolgenden Adressen beschrieben volonté, wage je trop bezweifeln. cela pourrait vom Defragmentierungszustand des Rams dépendre.
qui physikalische Adresse erhält on eh nie, seulement une Zuordnungsadresse (quelle souvent fälschlich comme phy Addr verkannt wird) et cet ändert sich - (mais) je pour Reservierungsmethode - normalement jusque une möglichen Redimensionierung pas.
Ge DIM ter grenier behält alors sa Adresse jusqu'à il wieder avec Faible redimensioniert wird ou bien gar freigegeben. |
|
|
| |
|
|
|
| Peter Bierbachh
Weil beim starten eines Programmes (ici Profan) cette espace seulement encore pour cela une Programme Profan vorhanden ist.
c'est aus einem anderen Grund faux. chacun Prozess hat so comment so seinen eigenen Adressbereich - reden wir ici mais la fois seulement de NT. (et pas de älteren Windowsversionen comment z.B. 98 wohin cela Speichergeschehen encore pas so organisiert (sûrement) était.)
tu peux naturellement aussi grenier reservieren quel pour alle Prozesse disponible ist - arrêt une Frage qui Art qui Reservierung.
Faible reserviert unbeweglichen grenier qui pour gewöhnlich seulement im erzeugenden Prozess disponible ist, et naturellement sur übergeordneten Leveln z.B. si cela eigene Programme den UserMode verlässt. (comment z.B. Treiber) |
|
|
| |
|
|
|
| @Peter: la hâte Du Dir encore une zweiten Account zugelegt? (avec 2 h am Ende des Nachnamen?) |
|
|
| |
|
|
|
| il y a seulement qui avec dem 2h. cela une h kriege je pas weg. voulais je déjà überberschreiben, ensuite kam je pas plus tour.
mfg |
|
|
| |
|
|
|
| qui quoi im ordinateur pouvoir, c'est moi eigentlich wurscht.
avec dem Speichergedöns devoir sich qui selbsternannten Fachleute rumschlagen. ist pas mon monde. et si Windows den grenier de Aldi holt, le principal det Programme fonctionne.
mfg peter |
|
|
| |
|
|
| |
|
- page 2 - |
|
|
| @Peter: Äh, je dachte trop la hâte en supplément den 2. Beitrag geschrieben? ou bien gibt es deux Peter B. ? s'il te plaît comment es du trop dem Eingabewert "von Hand" gekommen?
J'ai pensé eigentlich, mon Progi entier dessus zeigt, qui là un aiguille sur den réel Datenbereich dazwischengeschaltet ist. sur XP scheint cela jedenfalls so trop son, ou bien quoi hab je pas kapiert?
Salut P. Specht (Zwecks Unterscheidung qui Peters s'il te plaît simple avec Specht anreden, bins gewohnt!) |
|
|
| |
|
|
|
| Peter Bierbachh
il y a seulement qui avec dem 2h. cela une h kriege je pas weg. mfg
il y a un Mitglied avec dem Namen sans 2 h am Ende, beide aus Lünebrug. |
|
|
| |
|
|