peter egli <>
5 Jan 1998 13:13:55 -0500

          From comp.compilers

Related articles
BSS... (peter egli) (1998-01-05)
| List of all articles for this month |

From: peter egli <>
Newsgroups: comp.compilers
Date: 5 Jan 1998 13:13:55 -0500
Organization: Siemens Schweiz AG
Keywords: history

Does anybody know what BSS (uninitialised data section of a program)
means or where this abbreviation comes from ?

Regards Peter
          * Peter Egli *
          * Siemens CH AG *
          * Access Networks *
          * Freilagerstrasse 40 *
          * CH-8047 Zuerich *
          * Tel: +41 1 495 30 51 *
          * Fax: +41 1 495 54 14 *
          * e-mail: *
          * x400: c=CH a=400NET p=SCN *
          * o=SIEMENS ou1=ZRH1 *
          * s=Egli g=Peter *

[I've heard a variety of explanations but here's the one I belive:
Back in the 1950s, the IBM 704 and its descendants up through the 7094
had an odd addressing scheme. Although most arithmetic was
sign-magnitude, the index registers were two's complement and the
contents of the index register was subtracted rather than added to the
base address in an instruction to get the effective address. Hence a
lot of programs, including everything written in Fortran, stored their
arrays backward. The FAP assembler had two pseudo-ops to reserve
storage, BSS for Block Started by Symbol and BES for Block Ended by
Symbol. The backward addressing has long since disappeared but BSS
lives on. This explanation is credited to Ritchie in the Unix FAQ
that's floating around the net. Alternative explanations welcome, but
if they don't predate 1960 and have documentation, they're not
persuasive. -John]


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.