which intermediate results are stored. Without an
accumulator, it would be necessary to write the result of each
calculation (addition, multiplication,
shift, etc.) to
mainmemory and read them back. Access to main memory is slower
than access to the accumulator which usually has direct paths
The
canonical example is summing a list of numbers. The
accumulator is set to zero initially, each number in turn is
added to the value in the accumulator and only when all
numbers have been added is the result written to main memory.
Modern CPUs usually have many registers, all or many of which
can be used as accumulators. For this reason, the term
"accumulator" is somewhat archaic. Use of it as a synonym for
"register" is a fairly reliable indication that the user has
been around for quite a while and/or that the architecture
under discussion is quite old. The term in full is almost
never used of microprocessor registers, for example, though
symbolic names for arithmetic registers beginning in "A"
derive from historical use of the term "accumulator" (and not,
actually, from "arithmetic"). Confusingly, though, an "A"
register name prefix may also stand for "address", as for
2. programming A register, memory location or variable being
used for arithmetic or logic (as opposed to addressing or a
loop index), especially one being used to accumulate a sum or
count of many items. This use is in context of a particular
routine or stretch of code. "The FOOBAZ routine uses A3 as an
accumulator."
(1999-04-20)