[Delphi]Pętle w asm

0

Witam.
zacząłem znowu się bawić w asemblerze i utknąłem teraz na pętlach czy ktoś może mi wytłumaczyć jak zrobić pętle(for i:=1 to 10 do) w asm przy pomocy delphi?
Rudy i spółka niestety mi nie pomogły :(

0

Przecież napisałem ,ze rudy mi nie pomógł. googlowac jeszcze potrafię:)
nie mogę po prostu tego skompilować bo tam są jakieś odwołania do etykiety
takie jak : jmp short petla_for a takiego czegoś nie mogę utworzyć jak" petla_for:"
więc jak ktoś wie to napiszcie to w taki sposób aby się skompilowało w delphi.

begin
asm
{....}
end;
end
0

AFAIK to ta etykieta musi być zadeklarowana jak każda inna:

procedure foo;
label zonk;
begin
asm
zonk:
jmp zonk
end;
end;
0

Jeżeli w ramach tej samej procedury to nie trzeba tej deklaracji label, wystarczy aby nazwa etykiety zaczynała się od @ np.:

procedure foo;
asm
xor ecx, ecx
@petla:
//tu jakies operacje
inc ecx
cmp ecx, 10
jb @petla
end;
0

Dzięki Fanael kocham Cie xD

zrobiłem coś takiego :

procedure TForm1.foo;
var
zmienna:integer;
label petla_for;
label koniec_petli;
begin
  asm
    mov ecx, 1
    petla_for:
    cmp ecx, 10
    je koniec_petli
    inc ecx
    mov zmienna, ecx
    jmp petla_for
    koniec_petli:
 end;
ShowMessage(inttostr(zmienna));
end;

Czy to jest poprawne?

Tak kAzek przyznaje Twój kod jest bardziej zabójczy xD
Dzieki wam. A co do assemblera to : Nie taki diabeł straszny jak go malują
zgodzicie się ?:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1