Leksykon IT › Programowanie › Segment BSS

Segment BSS

Programowanie Svenska → Zaktualizowano: 2026-11-03

Sekcja pamięci na zmienne globalne i statyczne, które zaczynają od zera — zajmuje miejsce w RAM-ie, ale nie w pliku programu.

Globalna int buffer[4096]; bez wartości początkowej nie musi być zapisana w pliku wykonywalnym jako 16 KB zer. Kompilator umieszcza ją w .bss, a plik podaje jedynie rozmiar sekcji. Zmienne z innymi wartościami początkowymi trafiają do .data, której zawartość naprawdę musi być w pliku.

W mikrokontrolerze nie ma systemu operacyjnego, który wyzerowałby pamięć. Kod startowy przechodzi przez zakres między symbolami zdefiniowanymi w skrypcie konsolidatora i wpisuje zera, zanim wywoła main(). Jeśli o tym zapomnisz, program wystartuje ze śmieciami, które akurat leżały w RAM-ie — błąd, który lubi ujawniać się dopiero po miękkim resecie. Nazwa to spadek po latach 50.: Block Started by Symbol, pseudoinstrukcja asemblera dla IBM 704.

← Wróć do leksykonu