AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Random ist kein reiner Zufall

Ein Thema von dino · begonnen am 31. Mär 2007 · letzter Beitrag vom 7. Apr 2007
Antwort Antwort
Seite 13 von 14   « Erste     3111213 14      
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#121

Re: Random ist kein reiner Zufall

  Alt 3. Apr 2007, 19:47
Zitat von dino:
"Der Zieloperand ist sowohl beim mul wie beim imul Befehl immer das AL oder AX Register."
EAX = 32 Bit
AX = 16 Bit
AL = 8 Bit

Das sind nur 3 Bezeichner für das gleiche Register (mehr oder weniger). EAX wäre auf 32-Bit CPUs das volle 32 bittige Register, AX ist ein Teil dieses Registers (die unteren 16 Bit), AL wiederum ist ein Teil des AL-Registers (die unteren 8 Bit). AX würde sich aus AH und AL zusammensetzen.
Für aktuelle 32-Bitter sollte es also EAX sein
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#122

Re: Random ist kein reiner Zufall

  Alt 3. Apr 2007, 19:52
Moin Dino,

Zitat von dino:
und um die Frage zu beantworten gucke ich mir nun an, wie Random programmiert ist
womit sich, IMHO, in diesem Thread kein Assembler Grundkurs rechtfertigt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#123

Re: Random ist kein reiner Zufall

  Alt 3. Apr 2007, 19:54
random ist doch in assembler sprache geschrieben

den assembler grundkurs von hier habe ich mir bereits durchgelesen und ich wollte nurnoch hinausgehende sachen fragen, de aus dem kurs nciht hervorgingen
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#124

Re: Random ist kein reiner Zufall

  Alt 4. Apr 2007, 10:00
könnte jemand noch den restlichen code posten?

ich weiss ja nciht, was das ist aber Random ist das nicht
und Randomize auch nicht
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#125

Re: Random ist kein reiner Zufall

  Alt 4. Apr 2007, 15:05
Zitat von dino:
könnte jemand noch den restlichen code posten?

ich weiss ja nciht, was das ist aber Random ist das nicht
und Randomize auch nicht
Selbstverständlich ist das Random. Wieso sollte es das nicht sein? Und wenn du es nicht glaubst, ich kann mich ein drittes Mal wiederholen, wechsel beim Debuggen einfach mal ins CPU-Fenster, dann siehst du den Code selbst.
Was in Randomize passiert, wurde hier jetzt auch schon n paar mal gesagt.
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#126

Re: Random ist kein reiner Zufall

  Alt 4. Apr 2007, 15:40
oh tschuldige, so wollte ich das net gesagt haben

ich meinte
Delphi-Quellcode:
procedure _RandInt;
asm
{     ->EAX     Range   } 
{     <-EAX     Result  } 
        PUSH EBX
{$IFDEF PIC} 
        PUSH EAX
        CALL GetGOT
        MOV EBX,EAX
        POP EAX
        MOV ECX,[EBX].OFFSET RandSeed
        IMUL EDX,[ECX],08088405H
        INC EDX
        MOV [ECX],EDX
{$ELSE} 
        XOR EBX, EBX
        IMUL EDX,[EBX].RandSeed,08088405H
        INC EDX
        MOV [EBX].RandSeed,EDX
{$ENDIF} 
        MUL EDX
        MOV EAX,EDX
        POP EBX
end;
ist nur random(3) z.b. oder?

finde ich im debugger auch den code für randomize?
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#127

Re: Random ist kein reiner Zufall

  Alt 4. Apr 2007, 16:43
Zitat von dino:
ist nur random(3) z.b. oder?
Hm? Also es ist die Funktion function Random(const ARange: Integer): Integer; , also auch z.B. Random(4). Die Funktion unterscheidet sich aber natürlich leicht von function Random: Extended; , falls du die meinst.

Zitat von dino:
finde ich im debugger auch den code für randomize?
Ja, allerdings nur in ASM. Um seine Implementierung in Delphi-Language anzugucken, kannst du dir hier den Turbo Exlorer (kostenlos) runterladen, da ist das alles drin enthalten. Soweit ich weiß ist es aber illegal, Delphis Implementierungen zu veröffentlichen (was ich nicht verstehen kann, weil sie sich ja eh jeder angucken kann. Also korrigiert mich, wenn ich falsch liege), weswegen ich Randomize hier nicht schon längst gepostet habe.
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#128

Re: Random ist kein reiner Zufall

  Alt 4. Apr 2007, 16:53
joa ASM komme ich ja nun ein bisschen mit klar

also Randseed wird durch die Funktion richtig geliefert, doch kriege ich hier kein ergebnis raus

und das mit dem code angucken hab ich noch nciht rausgekriegt(hab auf F9 gedrückt und dann auf Strg+Alt+C richtig?)
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#129

Re: Random ist kein reiner Zufall

  Alt 4. Apr 2007, 17:11
Zitat von dino:
joa ASM komme ich ja nun ein bisschen mit klar
Gut, aber Randomize ist in Delphi Language (eine If-Abfrage und die Zuweisung von RandSeed) deutlich leichter zu verstehen als in ASM.

Zitat von dino:
und das mit dem code angucken hab ich noch nciht rausgekriegt
Ok, also:
  • Neues Projekt
  • Randomize ins FormCreate schreiben
  • Haltepunkt bei Randomize setzen (auf den linken Rand des Quelltext-Editors klicken, sodass die Zeile rot markiert wird)
  • F9
  • Strg+Alt+C (jetzt ist das CPU-Fenster geöffnet. Die aktuelle Codezeile (call Randomize) ist markiert)
  • F7 um eine Anweisung weiter zu springen (in das aufgerufene Randomize). Hier siehst du Randomize in Assembler-Form

Mit F7 kannst du dann die Zeilen einzeln durchgehen und dabei den Stack, die Register und die Flags beobachten (rechts). Das könnte bei der Analyse von Random sehr hilfreich sein.
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#130

Re: Random ist kein reiner Zufall

  Alt 4. Apr 2007, 17:31
joa habs nun(obwohl Random bei mir wesentlich kleiner ausfällt, aber das Ergebnis bleibt das selbe)

ich bin nun auf der Suche nach result
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 13 von 14   « Erste     3111213 14      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz