Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

Re: [ASM] While-Schleife tut was sie will

  Alt 16. Feb 2007, 19:07
Hurra
Ich habe das ganze noch etwas erweitert...

Delphi-Quellcode:
begin
  Akt:=0;
  Cnt:=0;
  while Akt<>5 do
  begin
    if Random(2)=1 then Inc(Akt);
    Inc(Cnt);
  end;
  Memo1.Lines.Add(IntToStr(CNt));
end;
Delphi-Quellcode:
procedure Add(I: Integer);
begin
  Form1.Memo1.Lines.Add(IntToStr(I));
end;

function Rand(N: Integer): Integer;
begin
  Result:=Random(N);
end;

procedure Gen;
begin
  asm
    MOV EBX,0
    MOV ECX,0

    @start:
    CMP EBX,5
    JE @ende

    ADD ECX,1

    PUSH EBX
    PUSH ECX
    MOV EAX,2
    CALL Rand
    POP ECX
    POP EBX

    CMP EAX,1
    JNE @start

    ADD EBX,1
    JMP @start

    @ende:
    MOV EAX,ECX
    CALL Add
  end;
end;
und es tut!

auf zum nächsten (mehr oder weniger sinnlosen) asm-projekt
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat