问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在51单片机中,A和ACC的具体的关系是什么呢

发布网友 发布时间:2022-04-22 23:03

我来回答

5个回答

热心网友 时间:2023-10-08 15:20

A和ACC的实质是一样的,对应地址都是0E0H,
只是汇编在使用时,在格式上取了两个名字。
你看看它们的使用方法,有的地方用A,有的地方用ACC,会发现有一定的规律。
当其要进行位表示时,必须用ACC,
比如要写成ACC.7,而不能写成A.7
但当其作为8位二进制数时,ACC和A都能用
但还是有区别
比如 INC ACC和INC A 都能用
还有PUSH ACC POP ACC也可以写成PUSH A和POP A
当然,我们学汇编时,它主要是讲了一个格式,可能书上只讲到PUSH ACC,没有讲到PUSH A,没讲到并不代表它不能用。

热心网友 时间:2023-10-08 15:21

A和ACC的实质是一样的,对应地址都是0E0H,
只是汇编在使用时,在格式上取了两个名字。
你看看它们的使用方法,有的地方用A,有的地方用ACC,会发现有一定的规律。
当其要进行位表示时,必须用ACC,
比如要写成ACC.7,而不能写成A.7
但当其作为8位二进制数时,ACC和A都能用
但还是有区别
比如 INC ACC和INC A 都能用
还有PUSH ACC POP ACC也可以写成PUSH A和POP A
当然,我们学汇编时,它主要是讲了一个格式,可能书上只讲到PUSH ACC,没有讲到PUSH A,没讲到并不代表它不能用。
我对它们的理解是:除位操作以外,其余通用。

热心网友 时间:2023-10-08 15:21

累加器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),可出现在用直接寻址的任何地方,例如:   

PUSH    ACC                               POP    ACC

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

MOV       40H,R0       , 

MOV       40H,00H

假设当前工作寄存器为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是标准的无地址的累加器,自然后者便捷,但两者在值上互为镜像

热心网友 时间:2023-10-08 15:22

还有一点,在一下指令中只能使用ACC作为累加器的符号
INC ACC
POP ACC
PUSH ACC
访问ACC的某一位时

热心网友 时间:2023-10-08 15:23

PUSH ACC正确PUSH A错误
因为A是作为寄存器来用,是寄存器寻址方式;第一条指令是直接寻址方式,因此是正确的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
联想服务器u盘启动装系统教程视频 联想服务器如何做系统 三色翡翠手镯价格三色翡翠手镯是哪三种颜色 许昌天悦广场售楼热线是多少? 填食品生产许可证申请书时,申请人各项质量安全管理制度清单及其... 最新二手房网签合同范本 房地产网签合同范本 上海房地产网签合同怎么写 如何将数学题用程序解出答案? 数学:编写一个程序,输出数字1,2,3,4,5。 怎么把电脑版本更新 单片机指令中A是什么意思啊?不懂,求高手指点…… MOV A,80H;80H->A,机器码7480 51单片机片内硬件结构中的a是什么意思 单片机中寄存器A和B有什么区别? 单片机中A与Acc有什么区别? 厨柜怎么做?高手自制橱柜五步详解 橱柜怎样安装 整体橱柜安装方法是什么 海尔橱柜怎么样?质量好吗? 整体橱柜应该如何选择? 橱柜什么样的好,怎么选择合适的? 不锈钢整体橱柜怎么样? 如何选择橱柜? 如何选择橱柜 橱柜怎么设计最实用? 橱柜怎样才能更耐用? 橱柜如何合理设计 厨房整体橱柜如何选购 整体欧派橱柜怎么样? 橱柜怎么选 橱柜选购技巧 厨房橱柜如何保养以及厨房橱柜如何挑选 电脑版最新的版本,是哪个版本 单片机中“A”跟“ACC”,到底是不是同一会事 8051单片机中,a表示一个register还是什么?? 有谁知道单片机中RR,A是什么意思啊 电脑如何更新最新版本 单片机 A中内容为63H,A中的1的个数怎么算 微信电脑版最新版是什么?? 单片机的A口是什么?在哪里 单片机a×b最大值多少 电脑最新版本是windows几? 单片机ACALL是什么意思 请问现在电脑版的我的世界最新版本是多少? 单片机A/D接口功能是什么 电脑版微信如何升级到最新版本 51单片机复位后(A)等于什么 电脑版本太低,怎么升级 单片机(A)? 单片机汇编语言中A是什么意思 单片机里的A? 单片机a[i].type=0; 是什么意思