汇编语言怎么给累加器ACC赋值

作者&投稿:弓刚 (若有异议请与网页底部的电邮联系)
汇编语言中 POP ACC是什么操作~

出栈操作,前面应该有PUSH ACC,
并且在push acc和pop acc之间,你又用到了累加器a,此操作避免累加器出错,保护好数据

这是51的系统架构决定的。因为51累加器有2个地址,一是特殊功能寄存器地址,指令使用这个地址访问累加器,是已明确知道访问对象就是累加器,是专指的,这是用A表示。比如ADD A,03H,因为在51中,ADD 的第一对象就是累加器,而不能用别的寄存器,用A可以少打俩字母CC。
另外一个是累加器的直接内存地址,指令访问时并不明确访问对象是什么,因为访问地址是程序员编程决定的。比如PUSH/POP指令,在51的定义里是PUSH/POP direct,这个direct可以是0~255。指令事前并不知direct到底是多少,这时将direct写成ACC,编译器就找到默认的地址E0H,而将它编译出来。
如果你熟悉51单片机,应不会有这样的疑问。不过,不管是否熟悉51系统,开始时尽管讲累加器些成A.,而不写成ACC。当编译器提示出错时,将A 改成ACC即可。所以这样做的原因,是因为大多数51中访问特殊功能寄存器的速度要比访问直接地址内存快,特别累加器的特殊功能寄存器地址,访问速度时最快的。
类似的情况还存在通用寄存器组R0~R7上。它们跟累加器一样同时有寄存器地址和直接内存地址,有的编译器如果 Keil 将它们的直接内存地址写成AR0~AR7。访问寄存器地址也比访问内存地址快。

亲,这个就用指令MOV就可以了。比如:
立即数:MOV A,#30H
寄存器:MOV A,30H

MOV A,#0H


关于汇编语言中累加器的问题
呵呵,好像是MCS-51单片机的汇编语言呐,大家别误解了。在Keil编译系统里面,累加器A,有时也可以写成ACC;另外,也可以使用它的地址进行数据传送,地址是E0H。使用地址代替A的时候,指令代码会多一个字节。

累加器verilog语言编程问题
accum_k从0开始到14一共才是十五个,即accum_k==14时就应该输出并清零了。2、else accum_k <= 0;你的使能信号是怎么定义的?使能的作用应该是:有效时正常工作;无效时什么都不做,但保持原有状态(即寄存器的值)。使能无效时对仅仅计数器清零是不对的,如果要清零,累加器也应该一起清零,...

用c语言编写程序计算2-4+6-8+…+98-100的?
在C语言中,可以使用循环语句和条件语句来实现对序列2-4+6-8+…+98-100的求和。可以通过判断当前项的值和前一项的值符号是否相同来实现正负号的交替。以上代码中,我们定义了变量 i、sum、sign 和 term,其中 i 表示循环计数器,sum 表示求和的结果,sign 表示正负号,term 表示当前项的值。在循环...

C语言的累加器怎么理解?例:s+=a;s=0;以下这题如何解?
这是两个问题,现回答关于C语言的累加器的问题。C\/C++语言的累加器,用C++的运算符函数表示,就是 Type operator+=(Type,Type);这里Type就是具体的类型。也可以把累加器理解为a+=b代表a=a+b,换了一个表达方式。因为累加器有返回值,所以累加器可以连着用:a+=b+=c。这里是从右往左看,用+...

汇编语言中@,#是什么含义啊
表示立即数寻址,采用立即寻址方式的指令,在立即数前面加上立即寻址符“#”。例如指令MOV A,#30H中30H就是立即数,指令功能为将30H赋给累加器A。表示寄存器的间接寻址。用汇编语言写程序,就得用汇编编译器,不同的汇编编译器对汇编语法有些异,@,#都是linux操作系统中常用的汇编编译器所使用的汇编...

1+2+3+4+5+6+…+100的简便计算用汇川ST语言编程是?
VAR i : INT; \/\/ 定义循环计数器 sum : INT; \/\/ 定义累加器 END_VAR sum := 0; \/\/ 初始化累加器为0 FOR i:=1 TO 100 DO sum := sum + i; \/\/ 累加每个数到累加器中 END_FOR \/\/ 输出累加器中的值 \/\/ 这里可以使用任何适合的方式来输出结果,比如在PLC HMI上显示、写...

汇编语言编程,写明注释。
ADD16:MOV A,30H ;加数低字节送累加器 ADD A,32H ;与被加数低字节相加 MOV 34H,A ;结果送34H MOV A,31H ;加数高字节送累加器 ADDC A,33H ;与被加数的高字节做带进位加 MOV 35H,A ;结果送35H RET

汇编语言中,“@”,“#”,都有什么含义?
表示立即数寻址。采用立即寻址方式的指令,在立即数前面加上立即寻址符“#”。例如指令MOV A,#30H中30H就是立即数,指令功能为将30H赋给累加器A。表示寄存器的间接寻址。例如指令MOV A,@R0就使用了寄存器间接寻址方式,这条指令的意义为将地址指针R0指向的内部数据存储器单元中的数据送入累加器A中...

汇编语言编写子程序时要将那些寄存器中的内容保护?
汇编语言写 子程序 时,一般需要将该子程序中用到的寄存器加以保护,比如最常用到的累加器A。举例说明:GETDAT:PUSH ACC ;压栈保护累加器,因为子程序中会改变其值 PUSH DPL ;压栈保护数据指针,子程序中会改变数据指针 PUSH DPH MOV DPTR,#1000H MOVX A,@DPTR MOV 30H,A INC DPTR MOVX A,@...

编程求dx累加器和bx寄存器中两个有符号数之差的绝对值
以上代码中,使用了SUB指令将bx寄存器中的值从dx累加器中的值中减去,结果存储在ax寄存器中。然后,使用了CMP指令将ax与0进行比较,如果ax小于0,则使用NEG指令对其进行取反操作,否则不做处理。最终结果就存储在ax寄存器中。需要注意的是,这只是汇编语言的实现,如果需要在Python中实现,可以使用以下代码...

金湖县13089581365: 汇编语言怎么给累加器ACC赋值 -
塞官炎立: 亲,这个就用指令MOV就可以了.比如: 立即数:MOV A,#30H 寄存器:MOV A,30H

金湖县13089581365: 51单片机汇编语言中的A和ACC,这是同一个寄存器呀.同一个寄存器可以有2个名称么? -
塞官炎立: 是同一个.写成 A,是寄存器寻址. 写成 ACC,是直接寻址.在 PUSH、POP 指令中,必须使用直接寻址,写成 A 就错了. 在必须使用寄存器寻址的时候,也不可用 ACC 来代替.

金湖县13089581365: 在51单片机中,需要使用命令将ACC的值写入A吗??本人初学者.谢谢. -
塞官炎立: 这是汇编指令才用到ACC和A,其实,就是一个累加器A,只是在不同的指令中写法不同.ACC是属于直接寻址指令,例如:MOV ACC , #10H ,这里的ACC是按物理E0H地址来寻址的,与MOV 0E0H , #10H 指令的寻址方式相同的,这指令编...

金湖县13089581365: “如果ACC.0=1则是奇数,如果ACC.0=0就是偶数.”这个思路不错,能给出C8051单片机汇编语言代码吗? -
塞官炎立: MOV A,DAT JB ACC.0,LAB1 ;如果ACC.0=1,为奇数,跳转到LAB1进行其他处理 JNB ACC.0,LAB2 ;如果ACC.0=0,为偶数,跳转到LAB2进行其他处理 这汇编程序有什么难的?你没学过啊》

金湖县13089581365: 单片机MCS - 51汇编语言中的ACC.7,OV,ACC是什么意思 -
塞官炎立: ACC就是A,是8位累加器,要具体对A上的每一位操作的时候,就要用ACC.*. ACC.7就是ACC的第七位,比如说A的值是11011010,那么ACC.7就等于1(第七位就是左数第二位). OV是psw上的溢出标志位,开始为0,如果之前的运算结果溢出,OV就会变成1

金湖县13089581365: 汇编语言 为什么不能用立即数给段地址赋值 用通过寄存器间接赋值呢(应该有特殊的原因,是为什么呢) -
塞官炎立: 没什么特殊的原因 只是有些芯片不支持立即数直接搬移到寄存器要通过工作寄存器(work)(累加器ACC) 这个大部分芯片用的ACC 要累加器搬移进入寄存器 芯片内部才可以识别 一般好的芯片不存在这种问题的

金湖县13089581365: 在keil的C语言嵌入了汇编,如何将汇编部分中,累加器的值赋值到f1,方便之后的C语言程序用 -
塞官炎立: C源文件中加入 #pragma asm mov F1,A (具体各个汇编不一样,你查指令手册) #pragma endasm

金湖县13089581365: 单片机中,ACC寄存器是什么用途?怎么使用?具体存在哪个地方? -
塞官炎立: 你说的是51单片机么?累加器ACC是一个8位的存储单元,是用来放数据的.但是,这个存储单元有其特殊的地位,是单片机中一个非常关键的单元,很多运算都要通过ACC来进行.以后在学习指令时,常用A来表示累加器.但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字.一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址,一般的,A也可看作是ACC的简写

金湖县13089581365: 单片机 汇编语言 怎样给某一位赋值 比如给P3.2赋1 ? 问题二:有位寄存器吗?能够存放位累加器C中的值
塞官炎立: 位赋值:setb P3.2MOV C,bit 将直接地址的某位值存入进位C.MOV bit,C 将进位C的值存入直接地址的某位.

金湖县13089581365: 51单片机中“ACC”怎么用? -
塞官炎立: A和ACC的实质是一样的,对应地址都是0E0H, 只是汇编在使用时,在格式上取了两个名字. 你看看它们的使用方法,有的地方用A,有的地方用ACC,会发现有一定的规律. 当其要进行位表示时,必须用ACC, 比如要写成ACC.7,而不能...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网