Español
Ensamblador Foro

Bereichsvariable y einfache Bereiche

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



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




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
 
28.08.2008  
 




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



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



@Peter: Hast Usted Usted todavía una zweiten Account zugelegt? (con 2 h al Ende des Nachnamen?)
 
28.08.2008  
 



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
 
28.08.2008  
 



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
 
28.08.2008  
 



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



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




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

16.684 Views

Untitledvor 0 min.
funkheld22.05.2016
Georg Teles09.01.2016
H.Brill16.11.2013
moefy04.09.2013
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie