Portál AbcLinuxu, 10. května 2025 06:12

Dotaz: navratenie hodnoty v Cecku cez funkcie asembleru

28.11.2006 22:03 deep
navratenie hodnoty v Cecku cez funkcie asembleru
Přečteno: 64×
Odpovědět | Admin
Ahoj. Nevie mi niekto poradit, ako vratit hodnotu typu int z funkcie cez funkcie assembleru?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.11.2006 22:29 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: navratenie hodnoty v Cecku cez funkcie asembleru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nějak jsem to moc nepochopil ale uložit na zásobník.

(Většinou se všechny udaje předávají přes zásobník více viz dokumentace tvého překladače.)
29.11.2006 00:39 martyone
Rozbalit Rozbalit vše Re: navratenie hodnoty v Cecku cez funkcie asembleru
Taky jsem to moc nepochopil, ale jsem si jisty, ze navratova hodnota typu int (tedy velikosti 32b, na 32b arch.) se vraci pres registr EAX. Takze
mov eax, <neco>
bude asi "resenim".
Josef Kufner avatar 28.11.2006 22:41 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: navratenie hodnoty v Cecku cez funkcie asembleru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejdříve vyřiď panu učiteli, že je to pako ;-)

Pak napiš čistě v Céčku korektní verzi s normálním return a překladači (gcc) parametr, že má vygenerovat kód v assembleru. Pro gcc je to tuším volba -S (podívej se do manu). Pak si otevři výsledný kód v assembleru, najdi si místo, kde se provádí return a nech se inspirovat.

ps: Je to zvrhlost.
Hello world ! Segmentation fault (core dumped)
Jardík avatar 29.11.2006 01:10 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: navratenie hodnoty v Cecku cez funkcie asembleru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Učili jste se assembler? Pan učitel to chce v C, ne assembleru. Udělej to tak, že funkci dáš parametr int* a pak to uložíš do ní *hodnota = neco.
Věřím v jednoho Boha.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.