在西门子S7-300/400PLC的存储区中,除了3个基本存储区(系统存储区、装载存储区和工作存储区)外,在PLC中还有外设I/O存储区、累加器等。
所以累加器(32位)为PLC的存储区之一。累加器(32位)用于处理字节、字或双字的寄存器。S7-300有两个累加器(ACCU1和ACCU2),S7-400有四个累加器(ACCU1--ACCU4)。可以把操作数送入累加器,并在累加器中进行运算和处理,保存在ACCU1中的运算可以传送到存储区。处理8位或16位数据时,数据放在累加器的低端(右对齐)。
举例如下:OPN DB1 //打开数据块DB1,作为共享数据块、L DBW2 //将DB1中的数据字DBW2(16位)装入累加器1(ACCU1)、T W0 //将累加器1低字中的内容传送到存储字MW0、T DBW4 //将累加器1中低字中的内容传送到DB1的数据字DBW4(16位)。
又如:L MB10 //将位存储区字节MB1O装载到累加器1中;、L MB11 //将MB11装载到累加器1中,MB10 自动进入累加器2中;T DBB100 //将累加器1值的值(MB11)传送到DBB100。
扩展资料:
中央处理器
中央处理器(英语:CentralProcessingUnit,缩写:CPU),是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。中央处理器、内部存储器和输入/输出设备是现代电脑的三大核心部件。
1970年代以前,中央处理器由多个独立单元构成,后来发展出由集成电路制造的中央处理器,这些高度收缩的组件就是所谓的微处理器,其中分出的中央处理器最为复杂的电路可以做成单一微小功能强大的单元。
中央处理器广义上指一系列可以执行复杂的计算机程序的逻辑机器。这个空泛的定义很容易地将在“CPU”这个名称被普遍使用之前的早期计算机也包括在内。无论如何,至少从1960年代早期开始(Weik 1961),这个名称及其缩写已开始在电子计算机产业中得到广泛应用。
尽管与早期相比,“中央处理器”在物理形态、设计制造和具体任务的执行上有了极大的发展,但是其基本的操作原理一直没有改变。
早期的中央处理器通常是为大型及特定应用的计算机而定制。但是,这种昂贵的为特定应用定制CPU的方法很大程度上已经让位于开发便宜、标准化、适用于一个或多个目的的处理器类。这个标准化趋势始于由单个晶体管组成的大型机和微机年代,随着集成电路的出现而加速。
IC使得更为复杂的中央处理器可以在很小的空间中设计和制造(在微米的数量级)。中央处理器的标准化和小型化都使得这一类数字设备和电子零件在现代生活中的出现频率远远超过有限应用专用的计算机。现代微处理器出现在包括从汽车到手机到儿童玩具在内的各种物品中。
运算器:算术、逻辑(部件:算术逻辑单元、累加器、寄存器组、路径转换器、数据总线);
控制器:复位、使能(部件:计数器、指令寄存器、指令解码器、状态寄存器、时钟发生器、微操作信号发生器)。
计算机存储器(英语:Computer memory)是一种利用半导体技术制成的存储数据的电子设备。其电子电路中的数据以二进制方式存储,存储器的每一个存储单元称做记忆元。
记忆体又称内存,是CPU能直接寻址的存储空间,由半导体器件制成。内存的特点是访问速率快。内存是电脑中的主要部件,它是相对于外存而言的。我们平常使用的程序,如Windows操作系统、打字软件、游戏软件等,一般都是安装在硬盘等外存上的,但仅此是不能使用其功能的,必须把它们调入内存中运行,才能真正使用其功能。
我们平时输入一段文字,或玩一个游戏,其实都是在内存中进行的。就好比在一个书房里,存放书籍的书架和书柜相当于电脑的外存,而我们工作的办公桌就是内存。通常我们把要永久保存的、大量的数据存储在外存上,而把一些临时的或少量的数据和程序放在内存上,当然内存的好坏会直接影响电脑的运行速度。
参考资料来源:百度百科-累加器
累加器是运算器的组成部分。
运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成,运算器的组成是不包括译码器的,在计算机运行时,运算器的操作和操作种类由控制器决定,运算器处理的数据来自存储器,处理后的结果数据通常送回存储器,或暂时寄存在运算器中。
运算器alu的功能是什么:
Alu的主要功能是执行算术和逻辑运算,Alu主要完成二进制信息的定点运算、逻辑运算和各种移位运算,运算器是计算机进行各种运算和逻辑运算的部分,运算和逻辑单元是中央处理的核心部分。
算术运算器的运算主要是进行二进制运算,如加法、减法和乘法,在运算过程中运算逻辑单元主要利用计算机指令进行运算和逻辑运算。
CY位是累加器的进位、借位标志。下文的叙述按16位机来举例说明,如果是8位机或其它字长,则可换一个例子,但道理相似。
对于无符号数的运算,CY位就可以表示其是否溢出。但如果是有符号数,则不能按CY标志来判断了。为此,设了另一个标志OV,其含义就是“假如是有符号数运算,是否出现了溢出”。
例如对于16位运算器,65534 + 3,(即二进制的1111111111111110 + 0000000000000011),
本该得65537,(即二进制的10000000000000001),但因为寄存器只有16位,最高位的那个1丢掉了(进入了CY标志)。结果寄存器中只剩下了1,(即二进制的0000000000000001)。
此时,我们可以说,16位的无符号数加法,65534+3溢出了,溢出后的答案成了1。
但是对于有符号整数,情况就不同了。有符号整数采用补码表示法。16位有符号整数不可能表示65534,此时如果机内二进制是1111111111111110,程序中认为它是-2,故:
机内的二进制的1111111111111110 + 0000000000000011,代表的是(-2) + 3。
请注意,此时的(-2)+3和上文的无符号数65534+3,在CPU的运算器硬件上完全相同,都是得到和为1,而CY标志也为1。
但是,有符号数(-2)+3=1并无溢出。故此时的CY标志不能代表它溢出了。
另外再举一例:
无符号数32763 + 8 = 32771,没有进位,CY标志为0。此时并不溢出。
但是,如果是有符号数32763 + 8,这就是溢出了,因为32773的二进制为1000000000000011,作为有符号数会被看成负数-32765。16位有符号数不可能表示32773的。
不管是有符号数还是无符号数,CPU的二进制运算器机器加、减操作是一样的,但其“溢出”的条件不同。
现在大多数的计算机中,如果是无符号数,都可以用CY标志来判断其是否溢出;而如果是有符号数,则需要用OV标志来判断其是否溢出。
至于OV标志在逻辑上又是根据什么产生的呢?则不同的计算机上有不同的实现方法,但效果都是一样。
这里介绍一种道理比较容易懂的方法:“双符号位法”。具体是:
作加、减法前,先将两个运算数都按照有符号数的规则扩充成17位。即:符号位是0的前面添一位0,符号位是1的前面添一位1。
然后按17位的机器加、减,得出17位的结果。
如果17位结果的高两位(即双符号位)不同,就置OV标志为1,否则,OV标志为零。
然后取其低16位作为最后结果。
ACC
累加器
B
用于辅助累加器做某些运算的寄存器
PSW
程序状态字
其中最高位是进/借位标志C;PSW.6是辅助进位标志AC,用于标识加减运算中低四位向高四位的进位;PSW.4和PSW.3是寄存器组选择位RS1和RS0,用于从00H--1FH的32个存储器单元(4组)中选出当前准备使用的一组工作寄存器的映射地址;PSW.2是溢出标志OV;PSW.0是ACC的偶校验位P;PSW的其余位不用
IP
中断优先级控制寄存器
在51中IP.0--IP.4依次控制INT0、T0、INT1、T1、UART中断的优先级,高三位不用
IE
中断使能控制器
IE.7是所有中断的总开关EA,IE.0--IE.4依次控制INT0、T0、INT1、T1、UART中断功能的开放或关断
P0、P1、P2、P3
这四个寄存器用于读写51单片机的四个I/O端口
SBUF
串行数据缓冲器
将数据写入SBUF,单片机就自动将数据从UART口发送出去
SCON
串行口功能控制器
最高两位SM0、SM1控制串行口工作模式;第5位SM2通常用于多机通信中区分地址帧和数据帧;第4位REN是控制串口接收数据的使能位;第3位TB8和第2位RB8分别是在串口的相关工作模式下要发送的和接收到的第9位数据;次低位TI和最低位RI分别标识一个发送或接收过程已结束,这两个标志位都会触发串口中断
在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位、循环移位和求补等操作。是运算器的主要部分。
在中央处理器CPU中,累加器(accumulator)是一种暂存器,它用来储存计算所产生的中间结果。如果没有像累加器这样的暂存器,那么在每次计算(加法,乘法,移位等等)后就必须要把结果写回到内存,然后再读回来。然而存取主内存的速度是比从数学逻辑单元(ALU)到有直接路径的累加器存取更慢。
在汇编语言程序中,累加器——AX是一个非常重要的寄存器,但在程序中用它来保存临时数据时,最后将其转存到其它寄存器或内存单元中,以防止在其它指令的执行过程中使其中的数据被修改,从而得到不正确的结果,为程序的调试带来不必要的麻烦。
这是两个问题,现回答关于C语言的累加器的问题。
C/C++语言的累加器,用C++的运算符函数表示,就是
Type operator+=(Type,Type);
这里Type就是具体的类型。
也可以把累加器理解为a+=b代表a=a+b,换了一个表达方式。
因为累加器有返回值,所以累加器可以连着用:a+=b+=c。
这里是从右往左看,用+运算符重新表示为:b=b+c;a=a+b;
当然累加器也可以与其它运算符混用,就不一一举例了。
本文转载自互联网,如有侵权,联系删除