MemoryFill()

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

MemoryFill()

Beitrag von Sylvia »

Weil es ->hier gerade aktuell war:

Aus meinem Nähkästchen...

Code: Alles auswählen

; Sep.2004 Sylvia, GermanForum

Procedure MemoryFillL(Wert,Elemente,*Addr)
; Füllt einen Speicherbereich mit LongWerten 

  CLD                    ; Aufsteigend
  MOV EAX, Wert          
  MOV ECX, Elemente      
  MOV EDI, *Addr         ; ab Adresse
 !REP STOSD              ; Repeat dwordTransfer         

EndProcedure

Procedure MemoryFillB(Wert,Elemente,*Addr)
; Füllt einen Speicherbereich mit ByteWerten

  CLD                    ; Aufsteigend
  MOV EAX, Wert          
  MOV ECX, Elemente      
  MOV EDI, *Addr         ; ab Adresse
 !REP STOSB              ; Repeat ByteTransfer         

EndProcedure



*Buffer=AllocateMemory(10000*4)    ; = 0- 9999 Longs
                                   ; = 0-39999 Bytes
MemoryFillL(100,10000,*Buffer)
Debug PeekL(*Buffer+9999*4)

MemoryFillB(Asc("A"),10000,*Buffer)
Debug PeekB(*Buffer+9999)
Basic Pur = PureBasic
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Oder man macht es sich ganz einfach:

Code: Alles auswählen

rtlFillMemory_(*Buffer,10000,'A')
:wink:
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag von sbehrens »

Hm... und was soll diese Funktion genau bringen, also wozu braucht man sie? Es bringt doch nichts, den Speicher einfach ohne Sinn zu füllen!

mfG
Basti
Zuletzt geändert von sbehrens am 18.09.2004 16:14, insgesamt 3-mal geändert.
enjoy life... while you can!
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

ist doch geil den Rechner lahm zu machen :mrgreen:
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

bobobo hat geschrieben:ist doch geil den Rechner lahm zu machen :mrgreen:
Noch ein total Fertiger -.-' *Scherz*
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

ptI hat geschrieben:Hm... und was soll diese Funktion genau bringen, also wozu braucht man sie? Es bringt doch nichts, den Speicher einfach ohne Sinn zu füllen!

mfG
Basti
- Um zum Beispiel jedes Feld eines Array auf einen Anfangswert zu setzen
- Um einen Speicherbereich zu löschen
- Um einem Sprite eine einheitliche Farbe zuzuweisen (=ClearScreen)

....
Kristel
Beiträge: 72
Registriert: 30.08.2004 00:17

Beitrag von Kristel »

Lebostein hat geschrieben:
ptI hat geschrieben:Hm... und was soll diese Funktion genau bringen, also wozu braucht man sie? Es bringt doch nichts, den Speicher einfach ohne Sinn zu füllen!

mfG
Basti
- Um zum Beispiel jedes Feld eines Array auf einen Anfangswert zu setzen
- Um einen Speicherbereich zu löschen
- Um einem Sprite eine einheitliche Farbe zuzuweisen (=ClearScreen)

....
- Um eine gelöschte Datei mit dem gefüllten Speicherbereich zu überschreiben
Antworten