[TUHS] crt0 -- what's in that name?

Douglas McIlroy douglas.mcilroy at dartmouth.edu
Tue Jun 13 10:46:42 AEST 2023

>I thought it was pretty well known that it [BSS] stands for, "Block Started (by) Symbol"?

BSS was a "pseudo-operation" in SAP (SHARE assembly program) for the
IBM 704. My recollection is that the assembler manual called it "block
starting at symbol". There was also a BES (block ending at symbol)
pseudo-op. Both reserved a block of memory, with the assembler
assigning the appropriate value to the pseudo-op's label.

The reason for BES was that index registers were subtractive. There
was a loop-ending instruction ,TIX (transfer on index), that decreased
the index by a specified amount and transferred to a specified
location unless the index hit zero, in which case the instruction
counter continued in sequence. BES was originally conceived for
addressing an array stored by increasing subscript but indexed by a
register that counted down. BES was also useful for FORTRAN object
code, which stored arrays backward and kept the true, uncomplemented
subscript in an index register.


More information about the TUHS mailing list