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
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ę ?:)