Parašė ozzWANTED· 2010 Lie. 8 15:07:32
#4
Asemblerio pagrindai.
Segmentacija - tai atminties (RAM) suskirstymas į duomenų(TEXT - DS("Data Segment")) ir vykdomojo kodo(EXECUTABLE - CS("Code Segment")). Yra ir kitų segmentų, ES(Extra Segment), FS(Float Segment), SS (Steko segmentas - Stack Segment).
Segmentacija naudojama tik iki 32 bitų operacinėse sistemose. T.y. 64 bitų, 128 bitų ir t.t. operacinėse sistemose segmentacijos yra atsisakyta ir ji nebenaudojama.
Segmentation Fault - segmentacijos klaida, įmanoma dėl kelių priežasčių:
1. Kai vykdomoji komanda nori patekti(skaityti) už savo segmento ribų (viršija jai maksimalų galimą adresą, pvz. 0xFFFFF)
2. Kai bandoma įvykdyti tekstą kaip komandą.
3. Kai bandoma rašyti už savo segmento ribų.
4. Dar gali kilti OVERFLOW problema, t.y. perpildymas, kas irgi gali sukelti segmentacijos klaidą. (pvz. trūksta ram'o).
---
O CS'o nežaidžiu, tai specifinius problemos sprendimo būdus galėtų nurodyti specializuoti tinklapiai.
Redagavo ozzWANTED· 2010 Lie. 8 15:07:46