Portál AbcLinuxu, 27. října 2025 21:02
int i = 5;
char * msg = "Ahoj";
_asm {
mov ecx, i
zacatek:
push msg
call dword ptr printf
add esp, 4
loop zacatek
}
ecx je jeden z tech, ktere maji funkce k volnemu pouziti, pokud chcete uchovat jeho hodnotu, musite si ji nekam (na zasobnik) pred zavolanim ulozit a po navratu z fce vybrat.
int i = 5;
char * msg = "Ahoj";
_asm {
mov ebx, i
jz konec
zacatek:
push msg
call dword ptr printf
add esp, 4
dec ebx
jnz zacatek
konec:
}
Instrukce loop už se moc nepoužívá, dvojice dec a jnz proběhne rychlej a navíc máte tu možnost si zvolit registr pro cyklus.
int i = 5;
char * msg = "Ahoj";
_asm {
mov ecx, i
zacatek:
mov ebx, ecx
push msg
call dword ptr printf
add esp, 4
mov ecx, ebx
loop zacatek
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.