累加器查看源代码讨论查看历史
累加器 | |
---|---|
累加器,是一种暂存器,它用来储存计算所产生的中间结果。如果没有像累加器这样的暂存器,那么在每次计算(加法,乘法,移位等等)后就必须要把结果写回到内存,然后再读回来。 然而存取主内存的速度是比从数学逻辑单元(ALU)到有直接路径的累加器存取更慢。[1]
概述
在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位、循环移位和求补等操作。是运算器的主要部分。
在中央处理器CPU中,累加器(accumulator)是一种暂存器,它用来储存计算所产生的中间结果。如果没有像累加器这样的暂存器,那么在每次计算(加法,乘法,移位等等)后就必须要把结果写回到内存,然后再读回来。然而存取主内存的速度是比从数学逻辑单元(ALU)到有直接路径的累加器存取更慢。
在汇编语言程序中,累加器--AX是一个非常重要的寄存器,但在程序中用它来保存临时数据时,最后将其转存到其它寄存器或内存单元中,以防止在其它指令的执行过程中使其中的数据被修改,从而得到不正确的结果,为程序的调试带来不必要的麻烦。[2]
实例
标准的例子就是把一列的数字加起来。一开始累加器设定为零,每个数字依序地被加到累加器中,当所有的数字都被加入后,结果才写回到主内存中。
现今的 CPU 通常有很多暂存器,所有或多数都可以被用来当作累加器。因为这个原因,"累加器"这名词就显得有些老旧。这个名词已经几乎不在微处理器暂存器中使用,例如,运算暂存器的名称中的符号以 "A" 开头的表示从"accumulator"这个历史因素得来的 (有时候认为并非 "arithmetic")。也可能混淆的是暂存器的名字前置 "A" 也表示 "address",比如说像是Motorola 68000 家族。