在51单片机中,需要使用命令将ACC的值写入A吗??本人初学者。谢谢。

2024-10-30 15:32:11
有1个网友回答
网友(1):

这是汇编指令才用到ACC和A,其实,就是一个累加器A,只是在不同的指令中写法不同。ACC是属于直接寻址指令,例如:MOV ACC , #10H ,这里的ACC是按物理E0H地址来寻址的,与MOV 0E0H , #10H 指令的寻址方式相同的,这指令编译后是3个字节。这指令的功能是把立即数送到累加器A中。
所以,这种写法很少。而通常都写成A,这是汇编指令中使用率最高的指令了,这是寄存器寻址。而且汇编指令中针对A 的指令也是最多的。
同样,用指令 MOV A , #10H,也是把立即数送到累加器A 中,可以编译后是两个字节。
回到你的提问上来:需要使用命令将ACC的值写入A吗?
那就是:MOV A , ACC,很显然是毫无意义的,就是把累加器的值再送回给自己,有意思吗?
但,ACC的写法还是有用的,对于累加器的8个位寻址时,需要这样写了
SETB ACC.1 ; 这是累加器A中第1位置1 , ACC.0是最低位
CLR ACC.0 ;这是累加器A中第0位清0, 就是最低位清0
如果写成: SETB A.1
CLR A.4
这就是错误了.