累加器简介

在中央处理器中,累加器(accumulator) 是一种寄存器,用来储存计算产生的中间结果。如果没有像累加器这样的寄存器,那么在每次计算 (加法,乘法,移位等等) 后就必须要把结果写回到内存,也许马上就得读回来。然而存取主存的速度是比从算术逻辑单元到有直接路径的累加器存取更慢。

中央处理器简介

中央处理器(Central Processing Unit,CPU),是电子计算机的主要设备之一。其功能主要是解释计算机指令以及处理计算机软件中的数据。所谓的计算机的可编程性主要是指对CPU的编程。 CPU CPU是计算机中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和控制核心。计算机中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。 CPU、内部存储器和输入/输出设备是电子计算机的三大核心部件。

累加器的作用

1、在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位、循环移位和求补等操作。是运算器的主要部分。

2、在中央处理器CPU中,累加器(accumulator)是一种暂存器,它用来储存计算所产生的中间结果。如果没有像累加器这样的暂存器,那么在每次计算(加法,乘法,移位等等)后就必须要把结果写回到内存,然后再读回来。然而存取主内存的速度是比从数学逻辑单元(ALU)到有直接路径的累加器存取更慢。

3、在汇编语言程序中,累加器——AX是一个非常重要的寄存器,但在程序中用它来保存临时数据时,最后将其转存到其它寄存器或内存单元中,以防止在其它指令的执行过程中使其中的数据被修改,从而得到不正确的结果,为程序的调试带来不必要的麻烦。

累加器A的主要作用是什么

累加器的符号是A,顾名思义,其意思是加,但是其除了能做累加器外,(A)还能做寄存器。以下两点是累加器累加器A的主要作用:

1、存储临时的数据,比如做算术运算时候的临时结果

2、存放函数的返回值,比如WINDOWS 的API函数中,返回植一般都是放在累加器中的。

累加器ACC简介

ACC(Accumulator)是累加器A缩写。累加器A是一个具有特殊用途的二进制8位寄存器,专门用来存放操作数或运算结果。在CPU执行某种运算前,两个操作数中的一个通常应放在累加器A中,运算完成后累加器A中便可得到运算结果。

累加器a和acc的区别

累加器写成A或ACC在51汇编语言指令中是有区别的。

ACC在汇编后的机器码必有一个字节的操作数,是累加器的字节地址E0H,A在汇编后则隐含在指令操作码中。

所以在指令中A不能用ACC来替代,而对A的特殊功能寄存器直接寻址和累加器某一位的寻址要用ACC,而不能写成A。

例如,指令INC A的机器码是04H,属于寄存器寻址,写成ACC后则成了INC DIRECT的格式,对应机器码为05E0H。

A和ACC都表示累加器,但A是累加器的代号,在指令中默认是无地址的,而ACC是累加器在中的直接地址(OEH),可出现在用直接寻址的任何地方,例如:

类似:工作寄存器R0~R7在指令中也有两种不同的写法,生成的机器码也不同,如:

假设当前工作寄存器为0组,前者属于寄存器寻址,后者属于存储器直接寻址。但R0和00H的级别不同,00H只是RAM区的一个普通单元,其读写速度要比慢得多。微型计算机内部通常设置工作寄存器组,运算的结果可以放在寄存器中而不必每次都放到存储器里,可以提高机器的工作速度。其实寄存器也是一种存储器,只不过它是CPU中的部件,速度最快而已。

寄存器和一般的存储器是混叠的,同一单元用不同的指令,它就会执行不同的功能。

一般的说法:A表示了累加器中的内容【寄存器寻址】;ACC表示了累加器的地址【直接寻址】。

A和ACC的实质是一样的,对应地址都是0E0H,只是汇编在使用时,在格式上取了两个名字。使用有一定的规律:

当其要进行位表示时,必须用ACC,比如要写成ACC.7,而不能写成A.7; 但当其作为8位二进制数时,ACC和A都能用,但还是有区别:比如 INC ACC和INC A 都能用,还有PUSH ACC,POP ACC不可以写成PUSH A和POP A

在Keil C中用了这样一个命令:PUSH A ,汇编时提示错误,后来我把PUSH A 改为 PUSH ACC 就可以通过了,请问这是什么回事?A与ACC是同一个寄存器吗?

所谓“A”是相关指令对累加器A的缺省指定(不占操作数指令),而PUSH和POP没有缺省指定累加器,要访问累加器就必须采用其所允许的直接寻址方式,“ACC”就是累加器A的地址。PUSH 是直接寻址,后面一定跟的是直接地址。你可以看到reg51.h中ACC的直接地址是0xe0;也可以PUSH E0h;累加器有A、ACC和E0H三种表示形式,分属两种不同的寻址方法,使用A时,为寄存器寻址,指令码为04H,使用ACC和E0H时,为直接寻址,指令码为05E0H。可A的位7,为什么非得用ACC.7而不用A.7。这与位寻址有关系,位地址有四种:直接位地址;字节地址加位序号;位名称;特殊寄存器加位序号。

为什么push acc必须用acc,而不能用a,相反movx @dptr,a只能用a,而不能用ac?acc和a有什么区别?ACC is register。A is a unseparatable part of opcode。 在mov指令中可通用,用“a”时为2字节1周期;用“acc”时为3字节2周期。 尽管物理地址相同,但push是对寄存器操作,而movx是对累加器操作。 汇编结果:“inc a”为“04h”运行时间1周期;“inc acc”为“05h,e0h”运行时间2周期。 通俗的解释为:acc是地址为E0H的寄存器,A是标准的无地址的累加器,自然后者便捷,但两者在值上互为镜像。

计算机硬件acc作用,累加器A的主要作用是什么_一文解析累加器a和acc的区别相关推荐

  1. 累加器A用c语言,累加器A的主要作用是什么_一文解析累加器a和acc的区别

    描述 累加器简介 在中央处理器中,累加器(accumulator) 是一种寄存器,用来储存计算产生的中间结果.如果没有像累加器这样的寄存器,那么在每次计算 (加法,乘法,移位等等) 后就必须要把结果写 ...

  2. php文件的作用,php入口文件的作用-PHP问题

    php入口文件的作用 php入口文件能够完成主动加载性能. 解析PHP入口文件的主动加载性能 php的主动加载: 正在php5之前,咱们要用某个类或类的办法,那必需include或许require,之 ...

  3. 计算机硬件acc作用,详细为你解析什么是汽车ACC自适应巡航,有什么特点和作用...

    随着自动驾驶技术的一天天发展,一些从前从来没有见过.甚至都没有听说过的技术,也都开始在比较高档的车型上出现了.今天小编就跟大家分享汽车自适应巡航(ACC) 什么是ACC自适应巡航? ACC自适应巡航( ...

  4. 运算器和控制器在计算机的作用,运算器和控制器功能作用(修改版).ppt

    运算器和控制器功能作用(修改版) 运算器部件: 是计算机加工处理数据的功能部件是 CPU的重要组成部分. 对数据的加工处理包括: 与.或.非.异或等. ALU是运算器中的核心部件.也是运算器内部传送数 ...

  5. android handler作用,Android中Handler的作用

    * Handler的定义: * 主要接受子线程发送的数据, 并用此数据配合主线程更新UI.当应用程序启动时, * Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控 ...

  6. python init文件作用___init__.py 文件的作用

    包和模块 包(package)是一个文件夹,它里面会有一个__init__.py,还有我们自己定义的.py文件. 而我们自己定义的.py文件,python中称为模块(module),一个模块就是一个p ...

  7. java中execution的作用_一文初步了解Java虚拟机

    大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...

  8. java原子变量的作用_AtomicInteger原子类的作用介绍(代码示例)

    本篇文章给大家带来的内容是关于AtomicInteger原子类的作用介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. AtomicInteger 原子类的作用 多线程操 ...

  9. java数据库连接的作用_java数据库连接池的作用

    1.什么是连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个: 释放空闲时间超过最大空闲时间的数据库连接,来避免因为没有释放数据库连接 ...

  10. 计算机的网络通信软件的作用,网络协议软件的作用是什么

    网络协议软件的作用是什么?网络协议是相互通信的节点之间要实现数据有序的发送和接收,必须遵守事先约定好的规则,这些规则明确规定了通信时数据的格式.数据传送的时序以及相应的控制信息与应答信息等,佰佰安全网 ...

最新文章

  1. iterator的使用和封个问题
  2. 石墨烯可将硬盘容量提高十倍,剑桥在Nature子刊发表最新研究
  3. 选择排序——一般选择排序,堆排序
  4. oracle怎么查询表空间信息,查询Oracle表空间信息
  5. ubuntu没有声音-只有类比立体声输入
  6. php中orm模型,模型model
  7. 计算机网络——速率相关的性能指标
  8. thuinkphp5 input('post.arr1')接收数组出现:variable type error:array
  9. JDK1.8 String常量池详解
  10. 并发网站压力测试工具
  11. 数学建模 - 时间序列分析
  12. feedsky rss更新
  13. autoIt_v3 学习之路
  14. JSON.stringify(value[, replacer [, space]])
  15. Effective C++ 条款13 以对象管理资源
  16. 过年了JAVA类编写烟花爆竹——学习分享下笔者的经验
  17. Linux 磁盘分区(MBR和GPT,loop详细分区方法介绍)
  18. 九年级计算机课程教案,九年级信息技术 5.2.3《计算机网络》教案
  19. 三维星座图查询_微信我的三维星座图测试游戏
  20. 音乐、游戏、教育,谁是字节跳动的下一个“抖音”?

热门文章

  1. 基于MPC5748G的以太网展板通信模块解析
  2. Dukto 文件传输软件(推荐)
  3. html js实现搜索框提示功能,js实现智能提示搜索框
  4. 20款最好的jQuery文件上传插件
  5. 三菱fx2n64mr说明书_三菱PLC模块FX3U-64MR/DS使用手册
  6. Thingsboard hierachy widget 和同一个dashboard不同数据的联动控制
  7. uniapp实现语音识别
  8. Non-static method 'save(java.long.Object)' cannot be referenced from a static context.
  9. sdk寄存器地址linux,S32K SDK使用详解之PinSettings组件配置与使用详解(S32K1xx PORT 和GPIO模块)...
  10. 计算机培训三下乡实践报告,大学生暑假三下乡社会实践报告优秀范文