Français
Assembler Forum

Bereichsvariable et simple Bereiche

 

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?
 
27.08.2008  
 



ici encore une Antwort, avec direkter Eingabe qui Adresse trop Fuss
peux sich changement, si zwischenzeitlich quoi nouveau declariert bzw récente gestartet wird.
alors Programme starten , Adresse merken ,tout de suite einsetzen,nochmal starten et qui Solution ist là.
qui Offset wir zur direkten Adresse zugerechnet.
Funktioniert comme Poke et Peek, comment chez habituel Basicprogrammen.
alors : bereich# beinhaltet qui directe Speicheradresse dans qui geschrieben volonté peux.
qui Adresse wird soweit reserviert so gross comment auparavant cela DIM était.
un simple et schnelles procéder.

mfg
peter
declare bereich#
declare adresse%
dim bereich#,16
byte bereich#,0 = 7
byte bereich#,1 = 8
imprimer Addr( bereich# )
imprimer byte(Addr( bereich# ),0)
imprimer byte(Addr( bereich# ),1)
imprimer byte(177857072,0)
imprimer byte(177857072+1,0)
waitkey
 
28.08.2008  
 



@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.
 
28.08.2008  
 




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
 
28.08.2008  
 




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.
 
28.08.2008  
 



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)
 
28.08.2008  
 



@Peter: la hâte Du Dir encore une zweiten Account zugelegt? (avec 2 h am Ende des Nachnamen?)
 
28.08.2008  
 



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
 
28.08.2008  
 



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
 
28.08.2008  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

16.804 Views

Untitledvor 0 min.
funkheld22.05.2016
Georg Teles09.01.2016
H.Brill16.11.2013
moefy04.09.2013
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie