Elektronika.lt
 2025 m. vasario 6 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2025 02 06, 22:43. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Kas į kurį būna padėta (stack, data, text, bss...)
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 12
Pereiti prie 1, 2  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 12, 14:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
p12
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
sveiki

Į kur kas būna padedama kompiliuojant ARM7TDMI su gcc? Labai būčiau dėkingas už nuorodas šia tema, nes google buvo tylus kaip niekad.
Taigi, mano klausimai:

stack naudojamas tik funkcijų duomenims perduoti/aplinkai (context) išsisaugoti? kaip tvarkoma rekursinė funkcija, kuri naudoja 30 kintamųjų?

Pagal ką adresuojami kintamieji data sekcijoje? Išasemblinęs C kodą po kiekvienos funkcijos radau kruva pointeriu - naudojami jie ar kas nors kita - pvz pc+offset?
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 20, 21:27 Pranešti apie taisyklių pažeidimą Atsakyti su citata
CodeC
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
siaip abejoju ar pats normaliai supratai ko paklausei.
pradejai kodo segmentu pavadinimu baigei C kodo asembliavimu.
taigi.
.text - tavo programos kodas. turi gulet nonvolatile memory, arba liaudiskai tariant flash'e.
.data - tavo kintamieji. guli volatile memory, kitaip sakant RAM'e.
.bss - inicializuoti kintamieji. irgi gulie RAM'e, bet pries startuojant tavo proigramai, kuri juos naudos (globalus kintamieji) jie turi buti sukopijuoti is FLASH'o i RAM'a. visais atvejais, kai to galiam isvengti, *globaliuju kintamuju naudoti nereikia*. tada nebus ir .bss segmento. jeigu naudoji, tai turi pasirupint, kad arba tavo projektas jau turetu kokinors standartni init koda asembleriu, arba pats turi ji parasyt, kitaip niekas tavo globaliu kintamuju neinicializuos.

stackas isvis nera kodo segmentas. jis yra RAM atmintyje, kuriame issaugomi tavo procesoriaus registrai iskvieciant paprogrames arba aptarnaujant pertraukimus. stacko dydi turi nurodyt kompileriui arba pats zinot iki kokio lygio ji uzpildai, kitaip perrasysi savo kintamuosius.
jei nezinai, tai stackas guli RAM'o top'e, o kintamieji saugomi pradedant nuo RAM bottom'o.

yra ir daugiau kodo segmentu, bet jei tikrai domiesi, tai atsiversk gcc manuala, (yra kiekvieno releaso doc kataloge) ir RTFM:)
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 20, 22:31 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
jei nenaudosi globaliu kintamuju tai isvis uzteks tik text segmento.
visi kintamieji bus laikomi steke.
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 15:15 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Digix rašo:
jei nenaudosi globaliu kintamuju tai isvis uzteks tik text segmento.
visi kintamieji bus laikomi steke.


norėčiau sužinot, kaip kintamieji yra laikomi steke (stack) ?
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 15:32 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
labai paprastai, stekas tai tik siaipsau neribota atminis kuria kiekviena funkcija gauna savo laikiniem poreikiams. gryzus is funkcijos viskas kas tane steke buvo dingsta.

kadangi tu zinai steko adresa, tai jei nori dadeti koki kintamaji tiesiog tuo adresu ji padedi ir ta adresa padidini per tiek kiek vietos panaudojai. taip betkas gali deti kiek patinka kintamuju.
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 15:47 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JonasK
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
"labai paprastai, stekas tai tik siaipsau neribota atminis kuria kiekviena funkcija gauna savo laikiniem poreikiams. gryzus is funkcijos viskas kas tane steke buvo dingsta."
Nesutinku.

_________________
--
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 15:48 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
neuztenka vieno zodzio, pasakyk tada savo versija kaip yra kitaip
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 15:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Digix rašo:
labai paprastai, stekas tai tik siaipsau neribota atminis kuria kiekviena funkcija gauna savo laikiniem poreikiams. gryzus is funkcijos viskas kas tane steke buvo dingsta.

kadangi tu zinai steko adresa, tai jei nori dadeti koki kintamaji tiesiog tuo adresu ji padedi ir ta adresa padidini per tiek kiek vietos panaudojai. taip betkas gali deti kiek patinka kintamuju.


ne toks klausimas buvo.

kaip įkišęs kinamąjį į stack tu jį vėliau naudoji skičiavimams. negi supushinęs dar kur nusiskaitai stack adresą kad žinotum kur pasidėjai tą savo kintamąjį?

ir šiaip, stack negali tiesiog palikti, jei jau įkėlei tai turi ir ištraukti...
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 15:56 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JAULER
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką MSN Messenger
o kam ištraukinėt? užrašei ant viršaus ir viskas kai jau nebereikia. Na o naudojimas paprastas, kai reikia to kintamojo, jis tiesiog nuskaitomas iš steko ir panaudojamas kur reikia.

_________________
nepamirškit, klysti žmogiška Wink
privatas - privatiems klausimams
arch linux Wink Smile
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 15:57 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
istarukti nereikia, tiesiok kiekviena funkcija pradzioje isisaugo steko adresa, kuri gavo ir kai is jos griztama ji ta adresa atstato.
o funkcijos viduje su steku gali daryti ka patinka.

p.s. toks stekas su push ir po tik ant X86 egzistuoja, powerpc ir arm kiek zinau neturi tokiu komandu isvis.
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 16:34 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
push pop yra ir arm ir kitiems.

o ištraukinėt tam, kad tu nelaikai adreso savo sustakintiems duomenims.

nebent kiekvienai funkcijai apsirašai vis naują stack galo adresą, nors kam to reik su mikrovaldikliais?
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 17:01 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nesuprantu kam tau ka aprasineti.
stekas yra dalykas be pradzios ir pabaigos.
kieviena funkcija gauna steko pointeri. tada jinai nuo to steko atgal paima kiek jai skirta kintamuju (kuriuos sukure ja iskvietusi funkcija), o tada pirmyn kuria savo kintamuosius. kai reikia grizti is funkcijos tiesiog i steko pointerio registra rasai tai kas buvo pradzioje ir darai ret.

tik RISC procesoriuise registru paprastai tiek daug kad retai kada isvis prireikia kurti kinatmuosius atmintyje
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 20:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Digix rašo:
nesuprantu kam tau ka aprasineti.
stekas yra dalykas be pradzios ir pabaigos.
kieviena funkcija gauna steko pointeri. tada jinai nuo to steko atgal paima kiek jai skirta kintamuju (kuriuos sukure ja iskvietusi funkcija), o tada pirmyn kuria savo kintamuosius. kai reikia grizti is funkcijos tiesiog i steko pointerio registra rasai tai kas buvo pradzioje ir darai ret.

tik RISC procesoriuise registru paprastai tiek daug kad retai kada isvis prireikia kurti kinatmuosius atmintyje


tai man asmeniškai nereikia Smile čia kažkam taip reikėjo. nzn. na nesvarbu.

aš norėjau pasakyt iš pradžių, jog kintamieji stack saugomi tik laikinai ir nėra naudojami tiesigiai iš jo.
tiesa, aš daugiausiai sakau iš asm pusės. naudojant C, kompiliatorius tai padaro už programuotoją Smile
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 21:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
tai as ir nepriestarauju kad jie ten saugomi laikinai. o tas laikinumas yra tai kiek veikia ta funkcija.

jug stekas yra tokia pat atmintis kaip ir visa kita, tai nematau problemu kodel ja nepasinaudoti.

asm programuotojai kiek zinau tikrai ja sitaiop nesinaudoja bet C kompiliatoriui tai pagrindinis metodas laikyti kintamiesiem.
 Kas į kurį būna padėta (stack, data, text, bss...)
PranešimasParašytas: 2008 06 21, 23:41 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
tai beveik tokia pati atmintis. tai laikom rame, bet adresas saugomas dedikuotoje vietoje kurį automatiškai didina/mažina jugi. todėl manau ir C kompiliatorius taip pat pushina popina kai vykdo interuptą, funkciją ar šiaip.
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
KCD2 Mods
Installing KCD 2 Mods, KCD 2 Guides, KCD 2 Cheats
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Wiki
GTA 6 Map, GTA 6 Characters, GTA 6 News
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama